Vnc

使用 VNC 訪問伺服器時出現問題

  • June 9, 2015

我很茫然,我遵循了https://www.linode.com/docs/applications/remote-desktop/using-vnc-to-operate-a-desktop-on-ubuntu-12-04上的指南配置我的無頭伺服器以允許通過vnc. 我還沒有使用任何 ssh 轉發,但只是想直接連接到埠上的伺服器,但5901我不能,我只收到一條消息,說連接到主機主機::5901 已關閉,但我可以確認ps ax | grep vnc我的伺服器正在執行:

$ ps ax | grep vnc
21895 ?        S    158:03 Xtightvnc :1 -desktop X -auth /home/semios/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 120000 -rfbauth /home/semios/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb -localhost
22477 pts/5    S+     0:00 grep --color=auto vnc

並且使用 netstat 我可以確認它正在偵聽埠5901

$ netstat -an | grep 5901
tcp        0      0 127.0.0.1:5901          0.0.0.0:*               LISTEN 

那麼這裡可能有什麼問題?另外,我似乎找不到Xtightvnc可能給我更多資訊的日誌文件……

如果我連接$ ssh -p 2200 -X user@server然後將我的 VNC 客戶端連接到127.0.0.1:5901我會收到相同的消息連接到主機 127.0.0.1::5901 已關閉。

因為您已經使用參數呼叫了 VNC 伺服器-localhost,所以它只接受 localhost 介面上的連接 - 正如127.0.0.1:5901您的輸出中的條目所確認的那樣netstat(外部打開的介面將讀取0.0.0.0:5901)。從Xvnc手冊頁:

  -localhost
         Only  allow connections from the same machine. Useful if you use
         SSH and want to stop non-SSH connections from any  other  hosts.
         See the guide to using VNC with SSH on the web site.

在此配置中,您必須通過隧道連接,否則將被拒絕。要通過 SSH 建立隧道,您可以執行以下操作:

ssh -p 2200 -L5901:localhost:5901 user@remotehost -Nf

(這-Nf是可選的:它只是將隧道放在後台)然後啟動您的 VNC 客戶端並將其指向隧道端點:詳細資訊將取決於您使用的客戶端,例如

vncviewer localhost:1

引用自:https://unix.stackexchange.com/questions/208465