リモートデスクトップ

リモートデスクトップ

手元で電源入れたwindowsパソコンからリモートデスクトップ機能を使う。

以前はvncを使うこともあった。
おかげで社内SEやってるときに、出張の手間を大幅に削減できたこともあった。

vnc使ってた理由は、

  1. homeエディションのwindowsへはRDP使えないから(homeエディションは身の回りから排除したのでもうない)
  2. 複数のクライアントPCから画面共有して閲覧したいから(2007年頃)
  3. linuxのXwindowにつなぎたいから(xrdpをlinuxが実装してくれているのでもうvnc要らない)

vnc使わなくなった理由は、

  1. 普通のvncでは音再生ができない(致命的)
  2. vncviewer.exeがkasperskyの脆弱性判断にひっかかる(これも致命的)
  3. rdpでファイル転送ができる(遅いけど)
  4. vnc接続したGUIがカクカク動く(気持ち悪い)

rdpでファイルコピーができるようになった

windows2003が終わった頃にrdpのバージョンが上がって、ファイル転送ができるようになったのは大きかった。同じ頃にcentosへrdpできるようにもなって、もちろんファイル転送もできるようになった。microsoftの機能は不満に思うことが多いけど、この機能は拍手したい。

不安定になることもあるけど、ローカルのUSBデバイスをリモートデスクトップ先に接続してしまうこともできるようになった。例えばマイク付きのwebカメラをrdp接続先のwindowsに接続するっていうときに便利。linuxでもつながるのかはやったことない・・・。

ファイル操作の実際

redhatがibmに買い取られたからか、centosが8になったときにxrdp起動が不安定になって、yumするとパッケージの衝突起こすようになって「なんやねん面倒くさいわー」ってなった。dockerも標準では動かなくなったのでubuntuに乗り換えて、linuxへのrdp接続を維持してる。

例えば、日常の業務ファイル(excelとかpdfとか)をローカルwindowsで編集してlinuxのsmbファイルサーバに置くけど、昔ならftpで上げることもあった。

smbがあるから何気にGUIでコピーすればいいし、rdpしてたらそのままctrl+c/ctrl+vで済む。さらにクラウドにssh経由やvpn経由で接続してrdp接続しても、同じ操作でファイルを上げることができる。

xrdpで改善できたらなと思うのは、windowsからlinuxにrdp接続したとき、ファイルコピーで2つできないことがある(どこか設定いじったらなおるのかも)。

  1. フォルダのコピーができない
  2. 複数ファイルのコピーをしようとすると1つ目しかコピーされない

ちょっとひと手間入るけど、gitbashを使っているので、例えばfooってフォルダを作っておき、

tar czf foo.tar.gz foo/

とやっておいてfoo.tar.gzをrdpでコピーして接続先で展開する(面倒といえば面倒)。

昔にexplzhとかアーカイバで圧縮してlinux側で展開したら文字化けしたことがあったけど、gitbashでのtar.gzではそういうのはない。

windowsのrdp接続コマンドラインのヘルプ

%windir%\system32\mstsc.exe /?

指定できる内容がいろいろある。使うのは/f, /h, /wぐらい。
rdp

起動したときの実際の表示

シンプル版。単にIPアドレスとポート番号入力したらつながる。
dockerコンテナでポート番号13389でxrdp動かしてるなら、例えば”192.168.1.1:13389″とコロンでポート指定するとつながる。

rdp

オプション表示したとき。設定を作っておき、xxx.rdpっていう名前で保存しとくと便利。
rdp

rdp設定をファイルで保存した時

普通のテキストファイルが保存されているので、エディタで書き換えもできそう。やったことないけど。接続するときの画面サイズを1080じゃなくて1000にしたりできるのかもしれない。
rdp

複数のディスプレイあるときに、全部使えの指示

日常的に「リモートセッションですべてのモニターを使用する」にチェックを入れて使ってる。
「全画面表示」を指定してるけど、スライダー動かせばサイズも指定可能。
rdp

例えば、デスクトップにあるファイルをrdp接続したubuntuにファイルコピーしたい場合、ローカルのデスクトップ画面を少しだけ見えるようにしておいてコピーするときには1280 x 720ぐらいのサイズにしておく。

コマンドラインでサイズ指定するならこんな感じ。

%windir%\system32\mstsc.exe /v:192.168.1.1:13389 /w:1280 /h:720

rdp接続されるwindows側のファイアウォール設定(kasperskyの場合)

セットアップしたてのマシンならファイアウォールで塞がれていることがほとんど。
アンチウィルスソフトのファイアウォール機能で塞がれてることもある。
自分の場合はこのへんからたどってポートの解放した。windowsファイアウォールの設定もあるけど、kaspersky入れたらwindowsファイアウォールを強制的に止めてしまう。
rdp

rdp接続されるwindows側のそもそもの設定

ここをオンにしとかないと、そもそもつながらない。
rdp

スリープしてたらつながらないから、接続される側は省電力モードとかにせずフルパワーで稼働するようにもしとく。

rdp接続されるubuntu側の設定

aptでxrdpを導入しておき、サービス起動しておく。ポートとか変更しないなら、ほぼそのままで動く。centos7ならyumで同じようなことやって使えてたけど、centos8になったらイマイチ動いてくれなくなった。redhatがibmに買い取られた頃からおかしくなってってるんじゃないか。

sudo apt install xrdp

サービス起動結果はこんな感じ。

sudo systemctl status xrdp
rdp

linuxにはxrdpあるけど、macではxrdpなさそう。時々探すんだけどまだ見つからない。無理なのかなぁ。

ubuntuへrdpしてみる

ubuntu側にログインするときのOSユーザ名とパスワード入れるだけ。

rdp

接続するとこんな感じ。最近ubuntu18を20に変えた。

disp

コメント