先日、社内の検証環境にActive Directory (AD) サーバを構築すべく、仮想マシンとしてWindows Server 2019をインストールしました。私の場合、社内の規定で、検証セグメントはオフィスセグメントとは切り離されているため、このサーバにはVPN経由かつ仮想マシン管理ツールのWebコンソール経由でしかアクセスできません。
Webコンソールでサーバにアクセスすると、動きが遅いので設定などの操作が困難です。マウスカーソルがだいぶ遅れて動き出します。アイコンをクリックするのも一苦労・・・
そこで、構築・設定が完了するまでは、ngrokを使って社外からアクセスしようと思います。以下は、Windowsにおける設定方法となります。
※この方法で重要サーバを外部公開される方は十分セキュリティにご配慮ください。利用後はすぐにngrokプロセスを落として外部からアクセスできないようにする、などです。
ngrokのインストール
ngrokを不自由なく利用するためにはユーザ登録が必要になります。手順は以前の記事である ngrokでSSHサーバを外部公開 をご参照ください。
ユーザ登録後、Windows用のngrokのパッケージをダウンロードします。ダッシュボードにアクセスすると、画面上部にダウンロードボタンが表示されています。
ダウンロード後はWindows標準の圧縮ファイル解凍ソフトで解凍します。解凍したフォルダにはngrok.exe
が入っています。
ngrokの設定
ngrokのユーザ登録によってトークンが発行されています。ここでは、そのトークンを設定する手順を記します。
コマンドプロンプトを起動し、ngrok.exe
が格納されているフォルダまでカレントディレクトリを移動します。私の場合は、ngrok.exe
をAdministratorフォルダ直下に配置しました。ngrokのダッシュボードに移動し、自分のトークンを確認します。そのトークンを登録するために、ngrok.exe authtoken
コマンドにトークンを引数として指定して実行します。
C:\Users\Administrator>ngrok.exe authtoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Authtoken saved to configuration file: C:\Users\Administrator/.ngrok2/ngrok.yml
あとは、リモートデスクトップのポートへ転送するコマンド(ngrok.exe tcp 3389
)を実行して完了です。
※あらかじめWindows Server 2019上でリモートデスクトップの有効化、およびファイアウォールで許可をする必要があります。
C:\Users\Administrator>ngrok.exe tcp 3389 ngrok by @inconshreveable (Ctrl+C to quit) Session Status online Account xxx (Plan: Free) Version 2.3.35 Region United States (us) Web Interface http://127.0.0.1:4040 Forwarding tcp://4.tcp.ngrok.io:11799 -> localhost:3389 Connections ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00
動作確認
では、インターネット経由でリモートデスクトップ接続をしてみましょう。
Windowsのリモートデスクトップ接続アプリを起動し、コンピュータ欄に上記ForwardingのURL(例:4.tcp.ngrok.io:11799)を入力します。
接続ボタンをクリックします。パスワード入力画面が出てこれば成功です。
おお~、リモートデスクトップ接続ができました。これで快適に作業ができます。
コマンドプロンプトを閉じたり、Ctrl + Cでngrokプロセスを停止すると、接続が切れてしまいますのでご注意ください。