このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】X11フォワーディング(CentOS 7)

X11フォワーディング(CentOS 7)

 X11フォワーディングは、リモートサーバ上で動作するGUIアプリケーションを、ローカルマシン上で表示・操作するための技術です。これにより、物理的に離れた場所にあるサーバのリソースを活用しつつ、ユーザーフレンドリーなインターフェースを享受することが可能になります。ここでは、CentOS 7を使用したX11フォワーディングの設定方法と実践的な演習を通じて、その基本的な操作手順を詳しく解説します。

X11プロトコルとは

 X11プロトコルは、ネットワークを介してGUIアプリケーションを表示・操作するための標準的なプロトコルです。これにより、アプリケーションの描画命令がクライアント(表示側)からサーバ(実行側)へ送信され、実際の描画はサーバ側で行われます。

X11フォワーディングの利点

  • リモート管理の効率化: GUIアプリケーションをリモートサーバ上で動作させながら、ローカルマシンで操作できるため、管理作業が容易になります。
  • セキュアな通信: SSHを利用することで、通信が暗号化され、安全にデータをやり取りできます。
  • 柔軟なリソース活用: ローカルマシンの性能に依存せず、リモートサーバの強力なハードウェアリソースを活用できます。

X11フォワーディングの構成要素

  • Xサーバ: GUIを表示する側。通常はローカルマシンがXサーバとして機能します。
  • Xクライアント: GUIアプリケーションを実行する側。リモートサーバーがXクライアントとして動作します。
  • SSH: セキュアな通信プロトコルとして、X11フォワーディングを実現するために使用されます。

X11フォワーディング演習(CentOS 7)

演習概要

この演習では、以下の構成でX11フォワーディングを設定・実行します。

  • CentOS1(Xサーバ): IPアドレス: 192.168.1.173/24
  • CentOS2(Xクライアント): IPアドレス: 192.168.1.174/24

環境準備

この演習で使用する環境を準備するには、以下のコンテンツを参考にしてみてください。

【Linux】SSH実践演習の準備(仮想マシンのクローン作成)

このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。 【Linux】SSH実践演習の準備(仮想マシンのクローン作成) ここでは、「SSH実践演習…

【Linux】SSH実践演習①(ホスト名とIPアドレスの確認と変更)

このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。 【Linux】SSH実践演習①(ホスト名とIPアドレスの確認と変更) SSH実践演習では、以下…

CentOS 7のクローンを2台用意

ホスト名とIPアドレスを以下のように設定します。

マシン名ホスト名IPアドレス役割
CentOS1xserver192.168.1.173/24Xサーバ
CentOS2xclient192.168.1.174/24Xクライアント
ホスト名とIPアドレス

ネットワークアダプターの設定

 仮想マシンのネットワークアダプターを「ブリッジアダプター」に変更します。これにより、ホストマシンと同じネットワーク上で通信が可能になります。

演習手順

1.Xサーバ側のSSH設定確認

 X11フォワーディングを行うためには、Xサーバ側(CentOS1)のSSH設定ファイルでX11Forwardingが有効になっている必要があります。

rootユーザーに切り替えます。

・「su -」コマンドを実行します。

[user01@CentOS1 ~]$ su -
パスワード:
最終ログイン: 2024/09/06 (金) 01:50:48 JST日時 pts/0

sshd_configファイルの定義内容を確認します。

・「cat /etc/ssh/sshd_config | grep X11Forwarding」コマンドを実行します。

 X11Forwardingyesになっていることを確認します。もしnoになっている場合は、yesに変更します。ここでは、yesとなっているため、次の手順「2」に進みます。

[root@CentOS1 ~]# cat /etc/ssh/sshd_config | grep X11Forwarding
X11Forwarding yes
#	X11Forwarding no

 X11Forwardingyesに変更した場合は、次のコマンドを実行してSSHサーバを再起動して設定を反映させます。

・「systemctl restart sshd」コマンドを実行します。

[root@CentOS1 ~]# systemctl restart sshd

2.Xサーバ側からのSSH接続

 Xサーバ(CentOS1)からXクライアント(CentOS2)にX11フォワーディングを有効にして接続します。

・「ssh -X user01@192.168.1.174」コマンドを実行します。

[root@CentOS1 ~]# ssh -X user01@192.168.1.174
user01@192.168.1.174's password: 
Last login: Fri Sep  6 23:32:46 2024 from 192.168.1.173
[user01@CentOS2 ~]$ 
  • -Xオプション: X11フォワーディングを有効にします。
  • user01: CentOS2のユーザー名。
  • 192.168.1.174: CentOS2のIPアドレス。

オプションの説明

オプション説明
-XX11フォワーディングを有効にする
-Y信頼できるX11フォワーディングを有効にする
オプションの説明

補足: -Yオプションは-Xよりも信頼性が高く、特定の環境ではこちらを使用することが推奨されます。

3.Xクライアント側の設定確認

SSH接続が成功した後、X11フォワーディングが正しく設定されているか確認します。

DISPLAY環境変数の確認

DISPLAY環境変数を確認します。

・「echo $DISPLAY」コマンドを実行します。

[user01@CentOS2 ~]$ echo $DISPLAY
localhost:10.0
  • localhost: 自分自身を指します。
  • 10: ディスプレイ番号。sshd_configX11DisplayOffsetの値に基づきます。
  • 0: スクリーン番号。通常は0が使用されます。

注意点

 DISPLAY変数が空の場合、X11フォワーディングが正しく設定されていません。トラブルシューティングを行う必要があります。

4.GUIアプリケーションの実行

X11フォワーディングが正常に動作していることを確認するため、簡単なGUIアプリケーションを実行します。

・「xeyes &」コマンドを実行します。

 xeyesとは簡単なGUIアプリケーションで、目が画面上を動きます。X11フォワーディングの動作確認に適しています。

[user01@CentOS2 ~]$ xeyes &
  • &: バックグラウンドで実行するためのオプションです。

5.表示の確認

CentOS1側(Xサーバ)の画面にxeyesウィンドウが表示されます。

6.Xクライアント側のプロセス確認

xeyesが正しく実行されているか確認します。

・「ps -ef | grep xeyes」コマンドを実行します。

xeyesプロセスが表示されていることを確認します。x

 xeyesプロセスが実行されています。これは、xeysがXクライアントであるCentOS2側で動作していることを意味します。

[user01@CentOS2 ~]$ ps -ef | grep xeyes
user01    3928  3763  0 23:44 pts/0    00:00:00 xeyes
user01    3967  3763  0 23:47 pts/0    00:00:00 grep --color=auto xeyes

xeyesを終了させます。

  • xeyesウィンドウの[X]ボタンをクリックして終了させます。

7.X11フォワーディングの終了

SSHセッションを終了して、X11フォワーディングを停止します。

・「exit」コマンドを実行します。

[user01@CentOS2 ~]$ exit
ログアウト
Connection to 192.168.1.174 closed.
[root@CentOS1 ~]# 

まとめ

 本演習では、CentOS 7環境におけるX11フォワーディングの設定と実行方法について学びました。以下に主要なポイントをまとめます。

  • 環境準備: CentOS1をXサーバ、CentOS2をXクライアントとして設定し、ネットワーク接続を確立しました。
  • SSH設定の確認: Xサーバ側のsshd_configX11Forwardingを有効にし、SSHサービスを再起動しました。
  • SSH接続ssh -Xオプションを使用して、XクライアントからXサーバへ接続しました。
  • 環境変数の確認DISPLAY環境変数が正しく設定されていることを確認しました。
  • GUIアプリケーションの実行xeyesを実行し、X11フォワーディングが正常に機能していることを確認しました。
  • プロセスの確認と終了: 実行中のxeyesプロセスを確認し、適切に終了させました。

 これらの手順を通じて、CentOS 7におけるX11フォワーディングの基本的な設定と操作方法が理解できたかと思います。X11フォワーディングを活用することで、リモートサーバ上の強力なリソースを効率的に利用しつつ、柔軟なGUI操作が可能になります。今後、より高度な設定やセキュリティ強化を行うことで、さらに実用的な環境を構築することができます。