リモートデスクトップ
手元で電源入れたwindowsパソコンからリモートデスクトップ機能を使う。
以前はvncを使うこともあった。
おかげで社内SEやってるときに、出張の手間を大幅に削減できたこともあった。
vnc使ってた理由は、
- homeエディションのwindowsへはRDP使えないから(homeエディションは身の回りから排除したのでもうない)
- 複数のクライアントPCから画面共有して閲覧したいから(2007年頃)
- linuxのXwindowにつなぎたいから(xrdpをlinuxが実装してくれているのでもうvnc要らない)
vnc使わなくなった理由は、
- 普通のvncでは音再生ができない(致命的)
- vncviewer.exeがkasperskyの脆弱性判断にひっかかる(これも致命的)
- rdpでファイル転送ができる(遅いけど)
- 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つ目しかコピーされない
ちょっとひと手間入るけど、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ぐらい。
起動したときの実際の表示
シンプル版。単にIPアドレスとポート番号入力したらつながる。
dockerコンテナでポート番号13389でxrdp動かしてるなら、例えば”192.168.1.1:13389″とコロンでポート指定するとつながる。
オプション表示したとき。設定を作っておき、xxx.rdpっていう名前で保存しとくと便利。
rdp設定をファイルで保存した時
普通のテキストファイルが保存されているので、エディタで書き換えもできそう。やったことないけど。接続するときの画面サイズを1080じゃなくて1000にしたりできるのかもしれない。
複数のディスプレイあるときに、全部使えの指示
日常的に「リモートセッションですべてのモニターを使用する」にチェックを入れて使ってる。
「全画面表示」を指定してるけど、スライダー動かせばサイズも指定可能。
例えば、デスクトップにあるファイルを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接続されるwindows側のそもそもの設定
ここをオンにしとかないと、そもそもつながらない。
スリープしてたらつながらないから、接続される側は省電力モードとかにせずフルパワーで稼働するようにもしとく。
rdp接続されるubuntu側の設定
aptでxrdpを導入しておき、サービス起動しておく。ポートとか変更しないなら、ほぼそのままで動く。centos7ならyumで同じようなことやって使えてたけど、centos8になったらイマイチ動いてくれなくなった。redhatがibmに買い取られた頃からおかしくなってってるんじゃないか。
sudo apt install xrdp
サービス起動結果はこんな感じ。
sudo systemctl status xrdp
linuxにはxrdpあるけど、macではxrdpなさそう。時々探すんだけどまだ見つからない。無理なのかなぁ。
ubuntuへrdpしてみる
ubuntu側にログインするときのOSユーザ名とパスワード入れるだけ。
接続するとこんな感じ。最近ubuntu18を20に変えた。