2012年6月13日 星期三

Failed to allocate internet-domain X11 display socket

今天突然有狀況需要在Ubuntu server上跑個vncviewer,
想當然爾就是利用 SSH X11 forwarding,但沒想到莫名奇妙失敗,
連試了好幾臺都自己裝的Ubuntu全一樣,倒是連別人裝的機器都OK...

ssh client的debug 訊息只簡單的寫X11 Forwarding refused,
後來發現/var/log/authlog有:
error: Failed to allocate internet-domain X11 display socket

Google找到一篇討論
原來是因為我裝的Ubuntu全都停用所有界面的IPv6
而這時 sshd_config 的 AddressFamily就必須指定用 inet (IPv4) (預設是any),
不然大概是想先用 IPv6 開 port 但開不起來吧...

不過我馬上就覺得奇怪,我裝FreeBSD時也沒手動設定IPv6,
但X11 Forwarding就沒問題,
再仔細看一下,原來FreeBSD預設是lo有IPv6其他界面無,
而 X11 Forwarding時通常都用localhost,所以之前都沒遇到問題,
試著把Linux改成lo保留IPv6而sshd_confing不動,果然就OK了~.~