リモートデスクトップ
手元で電源入れた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 サービス起動結果はこんな感じ。 ...