2015年9月2日水曜日

[cygwin] cygwin版X server(XWin)にリモートクライアントから接続できない問題の対処方法

cygwinを最新バージョンにアップデートしたところ、リモートのX clientからwindows上のcygwin版X serverに接続できなくなってしまいました。
対処方法は簡単でXWin起動時に"-listen tcp"オプションを付けてあげればよいだけです。cygwinバージョンアップ前にはオプション指定なしで接続できていたため、デフォルトの設定が変わったのだと思われます。

cygwin環境:

uname -aで表示されるcygwinバージョン情報です。
% uname -a
CYGWIN_NT-6.1 xxx 2.2.1(0.289/5/3) 2015-08-20 11:42 x86_64 Cygwin

問題発生時の症状:

クライアント側で起動したxtermをサーバー側で表示しようとすると、以下のようなエラーになっていました。
% xterm
xterm Xt error: Can't open display: xxx:0.0

解決方法:

XWin.exeの起動パラメタに"-listen tcp"を追加します。Cygwin-Xのアイコン(ショートカット)のプロパティを開き、「リンク先」を以下のように変更してください。
  • (デフォルト)
    • C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/startxwin"
  • (修正後)
    • C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/XWin.exe :0 -multiwindow -listen tcp"

関連情報:

これ以外にもいろいろとハマリどころはあるので、上記オプションで解決しない場合は以下のケースも疑ってみてください。
  • サーバー(windows/cygwin)側の問題
    • xhostへのクライアント登録ができていない
    • ファイアウォール設定が有効になっている
    • ssh起動時の引数に-Xを指定していない
  • クライアント側の問題
    • DISPLAY環境変数が不正
    • sshdの設定不正(X11Forwardingがnoとなっている)
    • xauthがインストールされていない

参考:

0 件のコメント:

コメントを投稿