x11ポートフォワード

提供: とある社畜の頭脳整理
ナビゲーションに移動 検索に移動

先ずはx11forwordingでLinuxアプリケーションをWindows上で起動してみます。
ちなみにLinuxをクライント、Windowsをサーバーと表現しています。
ご注意願います…

クライアントの設定変更

先ずはsshの設定を変更します。
nano等のエディタで「/etc/ssh/sshd_config」を以下の様に編集します。

【変更前】

84 #AllowAgentForwarding yes
85 #AllowTcpForwarding yes
86 #GatewayPorts no
87 #X11Forwarding no
88 #X11DisplayOffset 10
89 #X11UseLocalhost yes
90 #PermitTTY yes

【変更後】

84 #AllowAgentForwarding yes
85 AllowTcpForwarding yes
86 #GatewayPorts no
87 X11Forwarding yes
88 X11DisplayOffset 10
89 X11UseLocalhost yes
90 #PermitTTY yes

次に、x11forwordingに必要なパッケージをインストールします。
必要なパッケージは「xorg-xauth」と「xorg-xhost」です。
以下のコマンドを実行して、インストールしてください。

pacman -S xorg-xauth xorg-xhost

また、テスト用として「xeyes」をインストールします。

pacman -Ss xorg-xeyes

ここで、ArchLinuxを一旦再起動します。
再起動している間に、サーバー側の設定をします。

サーバーの設定

今回はXサーバーとして「VcXsrv」を使用します。
インストール方法はこちらを参照してください。

次にターミナルソフトの設定を変更します。
最近のターミナルソフトにはx11forwordingの設定があるかと思います。
x11forwordingの設定をディスプレイ番号?10で有効にします。
これはクライアント側の「X11DisplayOffset 10」に紐付いています。


最後にXサーバーを起動します。
起動時にディスプレイ番号のテキストボックスがあるのでそこに「10」を入力します。
(初期値は「-1」になっています)
後はデフォルトのままで問題ありません。

xeyesの起動

ターミナルソフトからArchLinuxにログインします。
確認のため以下のコマンドを実行してください。

echo $DISPLAY

これで以下の様に表示されれば、OKです。

localhost:10.0

ターミナルソフトによって多少表示される内容が異なる場合があるかもしれません。 (例えば…「:10」「127.0.0.1:10.0」「:10.0」など…) 特に気にしなくても大丈夫です。
もし、何も出ない場合は、ターミナルソフトの設定や、ArchLinuxを再起動してみてください。

では…「xeyes」を起動してみます。
以下のコマンドを実行してみてください。

xeyes

どうでしょう?Windows上に目玉が出てくれば成功です。

デスクトップまるごとx11forwording

今度はデスクトップまるごとx11forwordingしてみます。
セッションを開始するコマンドを実行すれば、デスクトップを持ってこれます。

LXDEの場合

まずは軽量なデスクトップ環境(LXDE)を使用します。
クライアント側で作業してください。

LXDEのインストール

以下のコマンドを実行して、LXDEをインストールします。
(「じゃあ、初めっからGNOMEなんて入れないで、LXDEにすれば良いじゃん!」というツッコミは無しで…)

pacman -S lxde

実行

以下のコマンドを実行すれば、デスクトップまるごと持ってこれます。

lxsession

簡単でした…

GNOMEの場合

Xorgセッションの場合

以下のコマンドで、デスクトップまるごと持ってこれます。

gnome-session

Classicセッションの場合

以下のコマンドで、デスクトップまるごと持ってこれます。

export XDG_CURRENT_DESKTOP=GNOME-Classic:GNOME
export GNOME_SHELL_SESSION_MODE=classic
exec gnome-session --session=gnome-classic

見た目が…

見た目があれで扱いづらい場合は、VcXservの設定を見直してみてください。
うまくやれば、以下の様に表示できます。
Archlinux-x11for-001.png

参考サイト

WSL上にXサーバをインストールしてGUIを実現する(VcXsrv編):Tech TIPS - @IT
Secure Shell - ArchWiki