最近 Windows Server にリモート接続 (RDP) をする機会があり,ブラウザ経由で使えるツール「Apache Guacamole」を試すことにした.今までは「Microsoft Remote Desktop」を使っていて,違う選択肢を学んでおくという意図もあった.「Apache Guacamole」の公式ドキュメントを読むと「clientless remote desktop gateway」と書かれている.「クライアントレス」な「リモートデスクトップゲートウェイ」で,RDP 以外に SSH もサポートしているツールと言える.
Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.
Wikipedia を見ると「Guacamole」は「ワカモレ(グワカモーレ)」と読むらしく,メキシコ料理のことだった!確かに「Apache Guacamole」のロゴもアボカド色になっている!
Guacamole with Docker
以下の公式ドキュメントに載っている通り,「Apache Guacamole」を構成するサービスである guacamole-server
と guacenc
は比較的多くのライブラリに依存している.
今回は「Apache Guacamole」をお手軽に試すため,Docker を使うことにした.
ただし,公式ドキュメントに載っている手順を読むと,計3種類のコンテナイメージを起動し,さらに --link
で参照する必要があった.
guacamole/guacamole
guacamole/guacd
mysql
個別に起動するぐらいなら Docker Compose を使えば良さそう!と考えて,今回は雑に docker-compose.yml
を実装した.
version: '3' services: guacd: image: guacamole/guacd:latest expose: - '4822' guacamole: image: guacamole/guacamole:latest ports: - '8080:8080' environment: MYSQL_HOSTNAME: 'mysql' GUACD_HOSTNAME: 'guacd' MYSQL_DATABASE: 'guachamole' MYSQL_USER: 'guachamole' MYSQL_PASSWORD: 'guachamole' mysql: image: mysql:5.7 environment: MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' MYSQL_DATABASE: 'guachamole' MYSQL_USER: 'guachamole' MYSQL_PASSWORD: 'guachamole' volumes: - './initdb.sql:/docker-entrypoint-initdb.d/initdb.sql'
公式ドキュメントの手順通り,MySQL の初期化(マイグレーション)もする.
$ docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql $ docker-compose up -d
起動すると http://localhost:8080/guacamole
にアクセスできる.初期パスワードは guacadmin / guacadmin
になっている.
Windows Server に接続する
Settings
→ Connections
→ New Connection
と画面遷移をし,以下を設定する.
- Name
- Protocol
- Network (Hostname, Port)
- Authentication (Username, Password)
すると Windows Server にリモート接続ができる.インスタンス側の設定は今回は割愛する.
クリップボード共有
ホスト側とリモート側でクリップボードを共有する機能もある.ホスト側で以下のショートカットを押すと,画面左側に「Guacamole メニュー」が表示される.この Clipboard(テキストエリア)を使うと,クリップボードを共有することができる.
- Windows :
Ctrl + Alt + Shift
- Mac :
Ctrl + Command + Shift
(画面左に「Guacamole メニュー」が表示されている)
ショートカットが効かない
環境依存かもしれないけど,今回試した Mac + Guacamole (v0.9.14) 環境だと,Command キーを使うことができず,Command + A
/ Command + C
/ Command + V
など,よく使うショートカットをマウス操作で代替する必要があった.ちなみに「Guacamole メニュー」に Input method という設定があり,ここで Text input を選ぶと,画面右下に「Ctrl / Alt / Esc / Tab」の仮想ボタンが表示されるため,Ctrl を有効にしながら C
を押すとコピーすることはできた.とは言え,操作感は良くなく,根本解決ではない.ショートカットを使う方法があったら是非教えて欲しい!
(右下に仮想ボタンが表示されている)
まとめ
- ブラウザ経由で Windows Server にリモート接続 (RDP) ができる「Apache Guacamole」を試した
- RDP 以外に SSH もサポートしている
- Docker を使うとお手軽にインストールできる
- さらに Docker Compose を使うと便利だった(今回
docker-compose.yml
を実装した)
- さらに Docker Compose を使うと便利だった(今回
- ホスト側とリモート側でクリップボードを共有する機能もあった