2013年3月9日 星期六

解決「啟動 VNC 伺服器,會停一下並有 xauth 警告」

筆者在使用「遠端電腦」時,常利用 VNC 將遠端桌面帶到「本機電腦」。筆者偏好使用 SSH 先連線進入遠端電腦,再啟動 VNC 伺服器。一方面 SSH 安全,一方面系統只要安裝 VNC 伺服器,幾乎不需額外設定即可使用。
    但是在啟動 VNC 伺服器時,多會出現警告訊息,在 Fedora 17 以後還會停頓一下。但是,還是能成功啟動 VNC, 並由遠端連線,也就不太在意它。
[SiB@Core-i7 ~]$ vncserver :1234
xauth: (stdin):1:  bad display name "Core-i7:1234" in "add" command

New 'Core-i7:1234 (SiB)' desktop is Core-i7:1234

Starting applications specified in /home/SiB/.vnc/xstartup
Log file is /home/SiB/.vnc/Core-i7:1234.log

[SiB@Core-i7 ~]$
上例中,『停頓』是在下完啟動 VNC sever 的命令後,在『xauth: (stdio):1: . . .』那列警告訊息出現之前。看久了,就想修正這個警告訊息,且停頓一下這問題也想把它解決,太浪費時間了。
    由於這些電腦都只使用「網路地址」(即:IP 位址),網路環境內也沒有設 DNS 伺服器,或未將電腦的「主機名稱(host name)」登載,所以 xauth 在查詢「主機名稱」與「網路地址」時,發生找不到的情形。

解決辦法:

在 VNC 伺服器所在電腦中,以手動方式加入「本機電腦」的「網路地址」參照設定。先切換成 root 身份,再下命令
[root@Core-i7 ~]# echo "192.168.10.51 Core-i7" >> /etc/hosts
或使用習慣的文字編輯器編輯。如果要馬上生效,需令系統的網路功能重新啟動,
[root@Core-i7 ~]# systemctl restart network.service
或舊系統(Fedora 14 以前版本)用的命令
[root@Core-i7 ~]# /etc/init.d/network restart
網路重啟或重新開機後,以 SSH 連線進入遠端電腦,再啟動 VNC 伺服器,就不會出現警告訊息了。
[SiB@Core-i7 ~]$ vncserver :1234

New 'Core-i7:1234 (SiB)' desktop is Core-i7:1234

Starting applications specified in /home/SiB/.vnc/xstartup
Log file is /home/SiB/.vnc/Core-i7:1234.log

[SiB@Core-i7 ~]$
幾個相關的發文列在下面,有需要的讀者請自行參考:

已測試版本:

  • Fedora: 17, 18

沒有留言:

張貼留言

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)