背景
- 在宅勤務の際、自宅から会社PC(Windows)へ ssh トンネル経由でリモートデスクトップで接続していた。
- だが、ある接続の際、ssh が落ちたと思ったら、以後の接続では次のようなエラーが出て、二度と接続できなくなってしまった(別に ssh サーバー側にはプロセスは残っていない)
- ssh のサーバーを再起動すれば直るようだが、そこまではさすがに頼めない
another session still running. Connection to svn.xxxxxx.co.jp closed.
というわけで、かわりに Chrome Remote Desktop で接続しているが、より広い解像度の Windows へノートPCで接続すると、スクロールバーだらけになって非常に使い勝手が悪い。やはり、セッションごとに画面サイズが設定される Windows のネイティブのリモートデスクトップ最強
ならば、LAN内のホストPCにリモートデスクトップで接続できなくとも、ホストPC内の VMware 内のゲストPCにリモートデスクトップで直接接続してもいいんではなかろうか
手順
(1)ゲストWindows の設定
- 「コンピュータ」→「システムのプロパティー」→「リモート」→「リモートデスクトップを実行しているコンピュータからの接続を許可する」にチェック
- 「コントロールパネル」→「Windows ファイアウォール」→「Windowsファイアウォールを介したプログラムまたは機能を許可する」→「設定の変更」→「リモートデスクトップ」を許可する
- ゲストPCのIP アドレスを控えておく
- この状態で、
mstsc /v:(IPアドレス)
で接続できることを確認する
(2)VMware の設定
- 「編集」→「仮想ネットワークエディター」→「NAT設定」→「追加」:以下を追加
mstsc /v:127.0.0.1:9999
でいけるかチェック
(3) ngrok のセットアップ
- ngrok のアカウントを作成
- ngrok.exe をダウンロード
- アカウントを作成した時に表示されるコマンドを実行して、ホストPCに ngセットアップする
ngrok authtoken ******************
(4)いざ接続!
LAN内PCのホストWindowsから、ポートを ngrok へ接続する。
ngrok tcp 9999
コンソールに ngrok ドメインの接続先が表示されるので、そこに LAN外のPCからリモートデスクトップで接続する
mstsc /v:接続先:ポート番号
終了する時はリモートデスクトップ内でゲストOSをシャットダウンしてから、実行中の ngrok を Ctrl-C で終了すればよい