VNC (Virtual Network Computing) 是跨平台遠程桌面標準協議。本文以 RHEL/CentOS/Fedora (dnf/yum) 為例,完整演示 安裝 tigervnc-server → 配置 /etc/sysconfig/vncservers → 設定 VNC 密碼 → 啟動服務 → 防火牆放行 → Windows VNC Viewer 連線 全流程,並補充 systemd 管理、多用戶、SSH 隧道加密、分辨率調整等進階主題。

@gnome-desktop 等)# CentOS 7 / RHEL 7
sudo yum -y install tigervnc-server
# Fedora / CentOS 8+ / RHEL 8+
sudo dnf -y install tigervnc-server
# Ubuntu / Debian
sudo apt update && sudo apt install tigervnc-standalone-server

sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
# 編輯 /etc/sysconfig/vncservers (舊版集中配置,仍被 service 腳本讀取)
sudo vim /etc/sysconfig/vncservers
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768 -depth 24"
1:root:顯示器編號 :1 對應用戶 root-geometry:桌面解析度-depth 24:24 位色彩VNCSERVERS="1:user1 2:user2",對應端口 5901、5902sudo su - root
vncpasswd
# 輸入兩次密碼 (僅前 8 字元有效)
# 會在 ~/.vnc/passwd 建立加密密碼檔

# 重載 systemd
sudo systemctl daemon-reload
# 啟動顯示器 :1 (對應 root)
sudo systemctl start vncserver@:1.service
# 開機自啟
sudo systemctl enable vncserver@:1.service
# 查看狀態
sudo systemctl status vncserver@:1.service
sudo /etc/init.d/vncserver start
sudo chkconfig vncserver on

# 顯示器 :1 → 端口 5901
# firewalld
sudo firewall-cmd --permanent --add-port=5901/tcp
sudo firewall-cmd --reload
# iptables
sudo iptables -A INPUT -p tcp --dport 5901 -j ACCEPT
sudo service iptables save
VNC Server: 192.168.1.100:1 (IP:顯示器號) 或 192.168.1.100:5901 (IP:端口)# Windows (PowerShell/OpenSSH)
ssh -L 5901:localhost:5901 user@192.168.1.100
# VNC Viewer 連線目標改為 localhost:1 或 localhost:5901
# /etc/sysconfig/vncservers
VNCSERVERS="1:alice 2:bob"
VNCSERVERARGS[1]="-geometry 1920x1080"
VNCSERVERARGS[2]="-geometry 1366x768"
# 各用戶分別執行 vncpasswd 設定密碼
# systemctl start vncserver@:1.service vncserver@:2.service
# VNC 會話內執行
xrandr -s 1920x1080
# 或啟動時指定 -geometry 1920x1080
# /etc/systemd/system/vncserver@:1.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=alice
Group=alice
WorkingDirectory=/home/alice
PIDFile=/home/alice/.vnc/%H%i.pid
ExecStartPre=-/usr/bin/vncserver -kill %i
ExecStart=/usr/bin/vncserver %i -geometry 1920x1080 -depth 24
ExecStop=/usr/bin/vncserver -kill %i
[Install]
WantedBy=multi-user.target
| 現象 | 可能原因 | 解決 |
|---|---|---|
| 連線後灰屏/只有終端 | 桌面環境未啟動、~/.vnc/xstartup 錯誤 | 確保安裝桌面套件,xstartup 含 exec gnome-session 等 |
| Authentication failed | 密碼錯誤、~/.vnc/passwd 權限非 600 | chmod 600 ~/.vnc/passwd、重新 vncpasswd |
| Connection refused | 服務未啟動、防火牆阻擋、端口號錯誤 | systemctl status vncserver@:1、firewall-cmd --list-ports |
| 鍵盤/滑鼠失效 | 客戶端/伺服器版本不匹配 | 統一使用 TigerVNC 或 RealVNC 兩端 |
完成 安裝 → 配置顯示器/用戶 → 設定密碼 → systemd 啟動 → 防火牆放行 → SSH 隧道加密 → Viewer 連線 七步,即可獲得安全、流暢的 Linux 遠程桌面體驗。生產環境務必啟用 SSH 隧道或 VPN,切勿直接暴露 5900+ 端口至公網。
Linux 安裝 OpenLDAP 服務器從套件安裝到 slapd.conf 配置初始化
Linux 函數庫構建完全指南:靜態庫與動態庫創建、鏈接、版本管理、部署最佳實踐
CentOS MPlayer 播放有畫面無聲音?安裝 alsa-lib + 完整解碼包編譯支援
Linux 系統死機安全重啟:Magic SysRq Key 完整操作指南
RedHat 6.5 網卡常見問題解決:Auto_eth0 改名 eth0、70-persistent-net.rules 同步、NetworkManager 衝突
Linux reconfig 指令使用教學:轉換 XFree86 舊版配置檔