xrdp を利用したリモートデスクトップ接続で同じセッションに再接続する方法!

問題点

xrdp を利用すると Windows から Linux など他の OS に対してリモートデスクトップ接続ができます。ただ、再接続した際に新しいセッションを張るため作業中だったセッションに再度接続したい場合に不便です。ちなみに、Windows 同士なら mstsc /console 、mstsc /admin でコンソール・セッションに、tscon でセッションの切り替え接続ができますが、本稿では扱いませんので、xrdp を利用したリモートデスクトップ接続方法を知りたい方は RHEL 向け手順Ubuntu/Lubuntu 向け手順OSX 向け手順あたりを参考にしてみてください。

原因

Ubuntu / Lubuntu 14.04 LTS, 16.04 LTS, 18.04 LTS あたりの環境で確認した限り、デフォルトでは Xvnc セッションを利用して RDP 接続をした場合、規定で tcp/5910 を利用していることが分かります。

$ sudo netstat -anop | grep 5910
tcp        0      0 127.0.0.1:5910          0.0.0.0:*               LISTEN      1511/Xvnc        off (0.00/0/0)
tcp        0      0 127.0.0.1:5910          127.0.0.1:33455         ESTABLISHED 1511/Xvnc        off (0.00/0/0)
tcp        0      0 127.0.0.1:33455         127.0.0.1:5910          ESTABLISHED 2955/xrdp        off (0.00/0/0)

RDP だから tcp/3389 じゃないの?とお思いかもしれませんが、xrdp ではセッションを選択できるようになっており既定では Xvnc を起動して RDP 接続しているため、同じセッションに接続するためには Xvnc の利用ポートを指定してあげる必要があります。

対策

xrdp.ini の [xrdp1] セクションにある port=-1 となっている箇所を port=ask に変更の上、xrdp サービスを再起動します。この状態で RDP 接続を行うと以下のように接続時のダイアログに port の項目が指定できるようになりますので、上記で確認した Xvnc の利用ポートを指定することで同じ画面に接続することができます。

xrdp_Xvnc-sesson-port

xrdp を利用したリモートデスクトップ接続時に port に Xvnc セッションポートを指定することで同一セッションに接続できます。

xrdp.ini の編集

$ sudo vi /etc/xrdp/xrdp.ini

変更前の xrdp.ini

[xrdp1]
name=sesman-Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1

変更後の xrdp.ini

[xrdp1]
name=sesman-Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=ask

サービス再起動

$ sudo /etc/init.d/xrdp restart

$ sudo /etc/init.d/xrdp restart
 * Stopping RDP Session manager                   [ OK ] 
 * Starting Remote Desktop Protocol server        [ OK ] 

トラブルシューティング

リモートデスクトップ接続時に同じポートを指定することでいつでも同じ画面に接続できることを確認してみてください。指定ポートが分からない場合は下記コマンドで Xvnc プロセスが LISTEN しているポートを確認すると良いでしょう。Ubuntu 系では tcp/5911 を利用していることもあるようですね。
$ sudo netstat -anop | grep Xvnc

$ sudo netstat -anop | grep Xvnc
tcp        0      0 127.0.0.1:5910          0.0.0.0:*               LISTEN      1511/Xvnc        off (0.00/0/0)
tcp        0      0 127.0.0.1:5911          0.0.0.0:*               LISTEN      1817/Xvnc        off (0.00/0/0)
tcp        0      0 127.0.0.1:5910          127.0.0.1:33455         ESTABLISHED 1511/Xvnc        off (0.00/0/0)
...
スポンサーリンク