在無顯示器的伺服器環境中,VNC 提供圖形化遠端管理能力。本文以 CentOS 5.5 為例,涵蓋套件安裝、多使用者配置、密碼設定、桌面環境啟用、服務管理與防火牆開放全流程。
rpm -q vnc vnc-server
# 若缺失
yum install vnc-server vnc
yum groupinstall "GNOME Desktop Environment" # 安裝圖形桌面 (必要)
VNCSERVERS="1:root 2:user1"
VNCSERVERARGS[1]="-geometry 1024x768 -depth 24"
VNCSERVERARGS[2]="-geometry 1280x800 -depth 24"
關鍵點:
1/2 為 顯示器編號,對應連接埠 5901/5902IP:1 (root)、IP:2 (user1)-geometry 設定解析度,-depth 設定色深# 以 root 身分
vncpasswd
# 切換至 user1
su - user1
vncpasswd
密碼獨立於系統登入密碼,建議設定不同強密碼。
首次啟動服務產生初始檔案:
service vncserver start
service vncserver stop
編輯 ~/.vnc/xstartup (以 root 為例 /root/.vnc/xstartup):
#!/bin/sh
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
# twm & # 註解掉簡易視窗管理器
gnome-session & # 啟用 GNOME 完整桌面
service vncserver start
chkconfig vncserver on
# iptables 範例 (開放 5901-5903)
iptables -A INPUT -p tcp --dport 5901:5903 -j ACCEPT
service iptables save
vncviewer IP:1 或 vinagre| 症狀 | 原因/解決 |
|---|---|
| 灰底只有終端機 | xstartup 未啟用 gnome-session 或缺少桌面套件 |
| 連線黑畫面 | 解析度過高超出記憶體、-depth 不支援、SELinux 阻擋 |
| 密碼錯誤 | 確認在正確使用者下執行 vncpasswd,重啟服務 |
| 無法連線 | 檢查防火牆、SELinux (setenforce 0 測試)、netstat -an | grep 590 確認監聽 |
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 5901 -j ACCEPTssh -L 5901:localhost:5901 user@server 本地連 localhost:1CentOS 5.5 部署 VNC 核心在於:安裝桌面套件 → 多使用者顯示器編號規劃 → xstartup 啟用 gnome-session → 防火牆/SELinux 放行。掌握此流程,升級版 CentOS 6/7、RHEL 同理可循。