Ubuntu Desktop 24.04.3 LTS でのリモートデスクトップ環境セットアップメモ
Ubuntu 24 Desktop インストール
リモートでログインしてWeb開発ができるUbuntu環境が欲しかったので、Ubuntu Desktopで作ってみた。
LTS版からインストール用メディアを作ってインストールした。
以下、設定したもののざっくりメモ
IPアドレス固定
netplan の設定
$ sudo vim /etc/netplan/01-network-manager-all.yaml
IPアドレスを 192.168.100.100 に設定する場合
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
enp4s0:
addresses: [192.168.100.100/24]
routes:
- to: 0.0.0.0/0
via: 192.168.100.1
nameservers:
addresses: [192.168.100.1]
ロケール設定
システムメッセージが全部日本語になってて変な感じがするので、ロケールを en_US.UTF-8 に設定
$ sudo locale-gen en_US.UTF-8
$ sudo update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8
$ source /etc/default/locale
リモートデスクトップ設定
標準のリモートログイン機能
とりあえず標準のRemote Login機能を使ってみた。
動作も快適で問題なく使えそうだと思ったが、VSCode や Slack を起動すると接続が切れてしまう問題があった。
Wayland対応周りで問題があるらしく、このままではまともに開発作業ができなさそうだった。
xrdp インストール
代替として xrdp をインストールして使ってみる。
$ sudo apt install xrdp
$ sudo systemctl enable xrdp
$ sudo systemctl start xrdp
ポート開放
$ sudo ufw allow from 192.168.100.0/24 to any port 3389
パフォーマンスが悪い問題
この時点でWindows 11のリモートデスクトップ接続から接続はできたが、GUIの動作が異常にカクついている。
以下Redditを見て tcp_send_buffer_bytes や net.core.wmem_max を変更してみたが、特に変化なさそう。
どうしたものか……。
ちょっと改善
apt経由だとバージョンが古かったので、ソースコードから最新版をビルドする
古いバージョン↓
$ xrdp -v
xrdp 0.9.24
A Remote Desktop Protocol Server.
Copyright (C) 2004-2020 Jay Sorg, Neutrino Labs, and all contributors.
See https://github.com/neutrinolabs/xrdp for more information.
Configure options:
--enable-ipv6
--enable-jpeg
--enable-fuse
--enable-rfxcodec
--enable-opus
--enable-painter
--enable-vsock
--build=x86_64-linux-gnu
--prefix=/usr
--includedir=${prefix}/include
--mandir=${prefix}/share/man
--infodir=${prefix}/share/info
--sysconfdir=/etc
--localstatedir=/var
--disable-silent-rules
--libdir=${prefix}/lib/x86_64-linux-gnu
--libexecdir=${prefix}/lib/x86_64-linux-gnu
--disable-maintainer-mode
--disable-dependency-tracking
--with-socketdir=/run/xrdp/sockdir
build_alias=x86_64-linux-gnu
CFLAGS=-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/build/xrdp-Fn5kxo/xrdp-0.9.24=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-se
curity -fcf-protection -fdebug-prefix-map=/build/xrdp-Fn5kxo/xrdp-0.9.24=/usr/src/xrdp-0.9.24-4 LDFLAGS=-Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -Wl,--as-needed
CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=3
PKG_CONFIG_PATH=/build/xrdp-Fn5kxo/xrdp-0.9.24/pkgconfig
Compiled with OpenSSL 3.0.13 30 Jan 2024
以下に従って最新版の xrdp と、そのバックグラウンドサービスとして xorgxrdp をインストール
$ xrdp -v
xrdp 0.10.3
A Remote Desktop Protocol Server.
Copyright (C) 2004-2025 Jay Sorg, Neutrino Labs, and all contributors.
See https://github.com/neutrinolabs/xrdp for more information.
Configure options:
--with-systemdsystemunitdir=/usr/lib/systemd/system
--enable-ibus
--enable-ipv6
--enable-jpeg
--enable-fuse
--enable-mp3lame
--enable-fdkaac
--enable-opus
--enable-rfxcodec
--enable-painter
--enable-pixman
--enable-utmp
-with-imlib2
--with-freetype2
--enable-tests
--enable-x264
--enable-openh264
--enable-vsock
Compiled with OpenSSL 3.0.13 30 Jan 2024
Wikiの手順だけだと systemctl enable したときにserviceファイルが作成されなかったため、自前で作成。
$ sudo vim /etc/systemd/system/xrdp.service
[Unit]
Description=xrdp daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/sbin/xrdp
PIDFile=/var/run/xrdp.pid
[Install]
WantedBy=multi-user.target
$ sudo vim /etc/systemd/system/xrdp-sesman.service
[Unit]
Description=xrdp session manager
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/sbin/xrdp-sesman
PIDFile=/var/run/xrdp-sesman.pid
[Install]
WantedBy=multi-user.target
更新後に再度 /etc/xrdp/xrdp.ini を編集
......
tcp_send_buffer_bytes=8388608
......
これでかなり動作感が改善した。
Samba 設定
Samba インストール
$ sudo apt install samba
$ sudo systemctl enable smbd
共有ディスクのマウント設定
ディレクトリ /srv/samba/share にマウントした /dev/sdb を共有し、
ユーザー alpha でアクセスできるようにする。
マウントするディスクの確認
$ sudo fdisk -l
Disk /dev/sdb: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
...
Disk identifier: AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE
マウント時、この Disk identifier を使用する。
マウント先ディレクトリ作成
$ sudo mkdir -p /srv/samba/share
自動マウント設定編集
$ sudo vim /etc/fstab
/etc/fstab に以下追記
UUID=AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE /srv/samba/share ext4 nofail 0 0
UUID に、先程の Disp identifier を指定する。
Sambaの共有設定
ディレクトリ権限設定
$ sudo chown -R root:sambashare /srv/samba
$ sudo chmod -R 2770 /srv/samba
$ sudo setfacl -d -m g:sambashare:rwx /srv/samba
UbuntuユーザーをSamba用グループに追加
$ sudo usermod -aG sambashare alpha
Samba用ユーザーを追加
$ sudo pdbedit -a alpha
Samba用port開放
$ sudo ufw allow samba
Samba設定ファイル編集
$ sudo vim /etc/samba/smb.conf
/etc/samba/smb.conf に以下追記
[Share]
path = /srv/samba/share
writable = yes
browseable=no
validusers=@sambashare
forcegroup=sambashare
createmask=0770
directorymask=0770
forcecreatemode=0770
forcedirectorymask=0770
inheritacls=yes
Discussion