切断したセッションに再接続する(xrdp)

Linux

はじめに

WindowsからLinuxにリモートデスクトップ接続を行った際、ログアウトせずに「リモートデスクトップ接続」プログラムの「×」を押して切断する場合があります。
「xrdp.ini」で「port=-1」に設定していると、接続するたびに空いているポートを使うので新規接続となり、以前のセッションがプロセスに残るのが無駄と思っていたので調べました。

環境

- Debian bookworm
- xrdp 0.9.21.1-1

GUIのインストール

ビデオカードがNVIDIA製の場合、OSのインストール時にGUIをインストールすると、GUIが起動したときに液晶モニタが真っ黒になり何も表示されない場合があります。

そのため、以下の方法のいづれかで対応します。
・OSのインストールはGUIをインストールせずに行い、後からGUIをインストールする。
・OSのインストールはGUIで行って画面が真っ黒の場合に「Ctrl + Alt + F1」の3つのキーを同時に押してCUIでログインする。

GUIを後からインストールする場合は下記となります。

sudo apt install task-gnome-desktop
sudo apt install xrdp tigervnc-standalone-server

NVIDIAのドライバ

ビデオカードがNVIDIA製の場合で、液晶モニタが真っ黒になり何も表示されない場合に行います。
/etc/apt/sources.listに「contrib non-free」を追記します。

vi /etc/apt/sources.list
deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free
deb http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free
deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware contrib non-free

以下のコマンドを実行します。

sudo apt update

LINUX_HEADERS=$(uname -r)

sudo apt -y install nvidia-driver firmware-misc-nonfree linux-headers-$LINUX_HEADERS dkms

sudo reboot

xrdp.iniの設定

Xvncの部分を抜粋しています。
「port=ask-1」に変更します。

 [Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1

#port=-1
port=ask-1

#xserverbpp=24
#delay_ms=2000
; Disable requested encodings to support buggy VNC servers
; (1 = ExtendedDesktopSize)
#disabled_encodings_mask=0
; Use this to connect to a chansrv instance created outside of sesman
; (e.g. as part of an x11vnc console session). Replace '0' with the
; display number of the session
#chansrvport=DISPLAY(0)

設定の反映

上記の修正を反映させます。

sudo systemctl restart xrdp

テスト

リモートデスクトップ接続して、何かプログラムを起動後に「×」で切断して、再接続します。
前回と同様の状態が表示されれば完了です。

Comments