◆ Windows の VcXsrv で xhost で許可しても認証エラーになった
◆ X0.hosts に直接 IP アドレス書けば接続できた
◆ nautilus を使っても Windows のエクスプローラ間とやりとりできないのであまり意味なかった

WSL で GUI を使った関係で VcXsrv を Windows に入れました
これを使ったら別の PC 上の VM も同じように 1 つの Windows 上の画面で GUI 操作できるんじゃないの?と思って試してみました

xhost

設定は DISPLAY 環境変数に接続先を書くだけなのですが エラーが出て接続できません
調べてみると X server はサーバとクライアントが同じじゃないとダメのようです
別 PC で使うには認証が必要らしく認証エラーになってました

認証トークンみたいのを使う方法と IP 指定で許可する方法があるらしく 楽そうな IP 指定で許可する方法にしました
サーバ側で xhost コマンドを使って指定するようです
+ だけ指定すれば全許可らしいのでやってみたのですが

xhost +

特に効果はなく認証エラーのままです
Windows 版だからなのかもしれません

ぐぐってみると 直接 X0.hosts に書いて対処したという人がいたのでその方法にしてみました
IP を書いてみると別 PC の VM の GUI を表示できるようになりました

C:\Program Files\VcXsrv\X0.hosts

に 「192.168.1.20」 のような IP アドレスを追記します

できることが少ない

nautilus を起動してドラッグアンドドロップやコピー・ペーストで Windows 間と連携できたら楽そうと思ったのですが 無理でした
nautilus 内のみでしか使えません

また nautilus からテキストファイルを gedit で起動しようにも ファイルを開いても gedit は起動しませんでした
コマンドで別に gedit を起動すれば普通に起動できるのですが nautilus からはダメみたいです

制限の必要性

X server でサーバが許可しないとクライアントが同じ PC でしか使えないって結構不便なのですが この制限はなんであるのでしょう
他人の PC に GUI 表示しても勝手に操作されるくらいですし それで困るのは クライアント側なので この制限はクライアント側にあるべきな気がします
サーバ側にいっぱいウィンドウ表示されて邪魔っていう嫌がらせはできそうですが 理由としては弱そうです

Web サーバとかは用途的に他人に見せるためなので デフォルトで公開されてるだけで 基本的にはサーバと言っても自分用で外部公開しないほうが普通なのでしょうか
サーバ系のツールは外部 PC から接続してもらうためにサーバという形を取ってるのだと思ってましたけど