
- 接続元ホスト:MacBook Air M4
- 接続先ホスト:Oracle Linux 9.7(OCIの仮想マシン)
LinuxサーバでGUIアプリを起動して、Mac上にLinux上のGUI画面を表示させたいときがあると思います。
XQuartzを使用すれば、SSHのX11転送でMac上にLinux上のGUI画面をそのまま表示できます。
本記事は、Mac上にLinux上のGUI画面を表示するまでの手順をステップごとに解説します。
X11転送とは
X11(X Window System)とは、LinuxやUnix系OSで使われているGUIの基盤となるウィンドウシステムです。
X11の最大の特徴は、描画する側(クライアント)と、画面に表示する側(サーバー)が分離されている点です。
| 役割 | 担当 | 具体例 |
|---|---|---|
| Xクライアント | 描画の処理する側 | LinuxサーバーのGUIアプリ |
| Xサーバ | 入力・出力する側 | Macに入れたXQuartz |
この設計のおかげで、アプリとディスプレイをネットワーク越しに分離して動かすことが可能です。
X11転送(X11 Forwarding)とは、サーバーのGUIアプリケーションの画面を、ネットワーク越しの別サーバへ転送して表示する技術です。
SSHトンネルを使ってX11の通信を暗号化しながら転送するため、セキュリティを保ちながらリモートのGUIを安全に操作できます。
XQuartzのインストール(Mac側の設定)
MacにはデフォルトでX11サーバの機能が含まれていないため、XQuartzをインストールする必要があります。
インストール完了後、一度ログアウトして再ログインすることでXQuartzが有効になります。
XQuartzが正常にインストールされると、環境変数$DISPLAYに値が設定されるので確認してみましょう。
#XQuartzのインストール前
MacBook-Air-3:~ taku$ echo $DISPLAY
#XQuartzのインストール後
MacBook-Air-3:~ taku$ echo $DISPLAY
/private/tmp/com.apple.launchd.5j5lF36lHl/org.xquartz:0SSHの設定(Linux側の設定)
次に、LinuxサーバがX11転送を許可するように、sshd_configファイルを編集します。
[root@node1 ~]# vi /etc/ssh/sshd_config以下の設定を追記してください。
X11Forwarding yes
X11DisplayOffset 10編集後は、忘れずにsshdを再起動します。
[root@node1 ~]# systemctl restart sshdもしこの先GUIアプリの転送がうまくいかない場合の対応
もし、この後の手順を行なっていったが、X11転送がうまく動作せず、GUIアプリが表示されなかった場合は、sshd_configファイルに下記を追記してください。
X11UseLocalhost noこの設定はX11のソケットをすべてのネットワークインターフェースに開放するため、セキュリティリスクが伴います。
デフォルト(記載されていない)の場合は、yesで設定されています。
X11転送のSSH接続(Mac側の接続)
通常のSSH接続はX11転送は有効されていないため、接続時に-Xオプションをつけて接続します。
ssh -X ユーザー名@サーバーのIPアドレスSSH接続後、GUIアプリを起動するとMacの画面にウィンドウが表示されます。
[grid@node1 ~]$ /u01/app/grid_1/gridSetup.sh
Launching Oracle Grid Infrastructure Setup Wizard...
まとめ
本記事では、MacでLinuxのGUI画面を表示するためのX11転送(X11 Forwarding)の仕組みと設定手順を解説しました。
- XQuartzのインストール
- SSHの設定
- X11転送のSSH接続
最後までご愛読ありがとうございました。
