本文記錄如何在 Windows 7 環境下,使用 VNC Viewer 遠端連線至安裝於 Red Hat Enterprise Linux AS 5.8(以下簡稱 RHEL 5.8)的 VNC Server。內容涵蓋 VNC 套件安裝、服務啟動、防火牆/連接埠設定、桌面環境修正,以及常見連線錯誤的排除步驟,適合需跨平台遠端管理 Linux 伺服器的系統管理員參考。
以 root 身分登入 Linux,透過 yum 一次安裝所有相關套件:
yum install vnc* -y
首次執行 vncserver 會提示建立密碼(僅供 VNC 連線驗證,非系統帳號密碼):
vncserver
輸入兩次密碼後,系統會在 /root/.vnc/ 目錄下建立 xstartup 啟動腳本與 passwd 密碼檔,並啟動第一個桌面(通常為 :1,對應 TCP 5901)。
netstat -tupln | grep vnc
輸出應包含 0.0.0.0:5901(代表桌面 :1)與 0.0.0.0:6001(X11 轉發)。若看到 :0 被佔用,請改用 :1 或更高編號。
預設的 xstartup 僅啟動簡易視窗管理器(如 twm),導致連線後僅見灰色背景與終端機。需編輯 /root/.vnc/xstartup 以載入完整 GNOME/KDE 桌面。
cp /root/.vnc/xstartup /root/.vnc/xstartup.bak
vi /root/.vnc/xstartup
#!/bin/sh
# 註解掉原有的 twm 啟動行
# twm &
# xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
# 載入使用者資源與鍵盤對應
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
# 啟動 GNOME 桌面會話
exec gnome-session &
關鍵點:最後一行必須用 exec gnome-session(或 startkde 給 KDE),且前面不可加 &,否則桌面程序會在背景結束導致連線立即斷開。
chmod +x /root/.vnc/xstartup
vncserver -kill :1
vncserver :1
伺服器IP:1(例如 192.168.1.100:1),按 Enter。
| 現象 | 可能原因 | 解決方向 |
|---|---|---|
| 連線後僅見灰色背景 | xstartup 未啟動完整桌面環境 | 參考本文第三節修改 xstartup 並重啟 VNC |
| 連線被拒絕 / 逾時 | 防火牆封鎖 5901 埠 | iptables -I INPUT -p tcp --dport 5901 -j ACCEPT 或關閉防火牆測試 |
| 提示「No supported authentication methods» | VNC 密碼檔遺失或權限錯誤 | 重新執行 vncpasswd 產生密碼檔,確認 chmod 600 ~/.vnc/passwd |
| 桌面顯示異常/缺少圖示 | SELinux 阻擋或 D-Bus 未啟動 | 暫時設定 setenforce 0 測試,或檢查 dbus-daemon 狀態 |
ssh -L 5901:localhost:5901 user@server,客戶端連 localhost:1 即可,資料全程加密。-X509Cert 選項)。完成上述步驟後,您即可從 Windows 7 穩定、安全地遠端管理 RHEL 5.8 圖形介面。若環境升級至 RHEL 6/7/8 或 CentOS 7/8,基本流程相同,僅桌面環境指令(gnome-session vs gnome-shell)與 systemd 服務管理方式略有不同,請依版本調整。