VNCSever debug

好的,我來幫你把這次完整的 VNC 問題排查過程做一個 總結與指令整理,讓你之後可以快速回顧與操作。


📝 問題總結

  1. 初始錯誤:Socket 被佔用
    • Log 顯示 Cannot establish any listening sockets - Make sure an X server isn't already running
    • 原因:殘留的 lock 檔 (/tmp/.X1-lock, /tmp/.X11-unix/X1) 或已有 X server 佔用。
  2. Session 啟動後立刻退出 (signal 15 / cleanly exited too early)
    • VNC server 可以啟動,但桌面環境沒有正確執行。
    • 預設的 ~/.vnc/xstartup 腳本呼叫 /etc/X11/Xsession,在 GNOME 下常常失敗。
  3. TightVNC vs TigerVNC 衝突
    • vncserver -list 出現 Unrecognized option: -list → 系統同時有 TightVNC 舊版。
    • 解法:移除 tightvncserver,保留 tigervnc-standalone-server
  4. 測試成功:xterm 可以跑
    • 使用 tigervncserver -xstartup /usr/bin/xterm → VNC server 正常啟動,證明問題只在桌面環境。
  5. GNOME 桌面啟動失敗
    • 即使安裝了 ubuntu-desktopgnome-session 在 VNC 下可能不穩定。
    • 建議改用 XFCE (startxfce4),相容性更好。
  6. 防火牆與安全性
    • VNC port (590x) 直接對外開放有安全風險。
    • 建議使用防火牆限制來源,或透過 SSH Tunnel 加密。
  7. 警告訊息 (xkbcomp)
    • Could not resolve keysym XF86... → 只是鍵盤符號缺失,不影響 VNC 運作,可忽略。

🛠 指令整理

🔹 清理殘留 lock 檔

sudo rm -f /tmp/.X1-lock /tmp/.X11-unix/X1
sudo rm -f /tmp/.X7-lock /tmp/.X11-unix/X7

🔹 啟動 VNC

vncserver :1
vncserver :7

🔹 停止 VNC

vncserver -kill :1
vncserver -kill :7

🔹 查看 VNC session

vncserver -list

🔹 測試 VNC 本身

tigervncserver -xstartup /usr/bin/xterm :7

🔹 修改 ~/.vnc/xstartup (GNOME)

#!/bin/sh
xrdb $HOME/.Xresources
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec gnome-session

🔹 修改 ~/.vnc/xstartup (XFCE)

#!/bin/sh
xrdb $HOME/.Xresources
startxfce4 &

🔹 安裝桌面環境

GNOME:

sudo apt install ubuntu-desktop

XFCE:

sudo apt install xfce4 xfce4-goodies

🔹 移除 TightVNC,保留 TigerVNC

sudo apt remove tightvncserver
sudo apt autoremove
sudo apt install tigervnc-standalone-server tigervnc-common

🔹 防火牆設定 (UFW)

sudo apt install ufw
sudo ufw allow ssh
sudo ufw allow 5907/tcp
sudo ufw enable
sudo ufw status

🔹 SSH Tunnel (安全連線)

ssh -L 5907:localhost:5907 juiwenhsu@server_ip

然後在 VNC client 連線到 localhost:5907


✅ 總結建議

  1. 確認只安裝 TigerVNC,避免版本衝突。
  2. 測試 xterm → 確認 VNC server 正常。
  3. 修改 xstartup → 優先嘗試 GNOME,若失敗改用 XFCE。
  4. 設定防火牆或 SSH Tunnel → 確保安全性。
  5. 忽略 xkbcomp 警告 → 不影響使用。

太好了 🙌
我幫你把這次完整的 VNC 啟動與排錯速查表整理成一份清單,未來你或團隊遇到相同問題可以快速解決。


🖥️ VNC 啟動與排錯速查表

1️⃣ 常見問題與解法

  • Socket 被佔用
    • 錯誤訊息:Cannot establish any listening sockets
    • 解法:刪除殘留 lock 檔
      sudo rm -f /tmp/.X1-lock /tmp/.X11-unix/X1
      sudo rm -f /tmp/.X7-lock /tmp/.X11-unix/X7
      
  • Session 啟動後立刻退出 (signal 15 / cleanly exited too early)
    • 原因:~/.vnc/xstartup 腳本沒有正確呼叫桌面環境。
    • 解法:修改 xstartup,呼叫 gnome-sessionstartxfce4
  • TightVNC vs TigerVNC 衝突
    • 錯誤訊息:Unrecognized option: -list
    • 解法:移除 TightVNC,保留 TigerVNC。
      sudo apt remove tightvncserver
      sudo apt autoremove
      sudo apt install tigervnc-standalone-server tigervnc-common
      
  • 測試成功但桌面失敗
    • 測試指令:
      tigervncserver -xstartup /usr/bin/xterm :7
      
    • 如果能顯示 xterm,代表 VNC server 正常,問題只在桌面環境。
  • GNOME 桌面啟動失敗
    • 解法:改用 XFCE,輕量且相容性好。
      sudo apt install xfce4 xfce4-goodies
      
  • 防火牆與安全性
    • 建議不要直接開放 VNC port,改用 SSH Tunnel
    • 如果要用防火牆 (UFW):
      sudo apt install ufw
      sudo ufw allow ssh
      sudo ufw allow 5907/tcp
      sudo ufw enable
      sudo ufw status
      
  • 警告訊息 (xkbcomp)
    • Could not resolve keysym XF86... → 只是鍵盤符號缺失,不影響使用,可忽略。

2️⃣ 常用指令整理

啟動 VNC

vncserver :1
vncserver :7

停止 VNC

vncserver -kill :1
vncserver -kill :7

查看 VNC session

vncserver -list

清理殘留 lock 檔

sudo rm -f /tmp/.X1-lock /tmp/.X11-unix/X1
sudo rm -f /tmp/.X7-lock /tmp/.X11-unix/X7

測試 VNC 本身

tigervncserver -xstartup /usr/bin/xterm :7

修改 ~/.vnc/xstartup (GNOME)

#!/bin/sh
xrdb $HOME/.Xresources
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec gnome-session

修改 ~/.vnc/xstartup (XFCE)

#!/bin/sh
xrdb $HOME/.Xresources
startxfce4 &

SSH Tunnel (安全連線)

ssh -L 5907:localhost:5907 juiwenhsu@server_ip

然後在 VNC client 連線到 localhost:5907


✅ 最佳實踐

  1. 只保留 TigerVNC,避免版本衝突。
  2. 先測試 xterm → 確認 VNC server 正常。
  3. 修改 xstartup → 優先嘗試 GNOME,若失敗改用 XFCE。
  4. 設定防火牆或 SSH Tunnel → 確保安全性。
  5. 忽略 xkbcomp 警告 → 不影響使用。

這份速查表可以當作 團隊的 VNC 啟動與排錯指南,遇到問題時照著跑就能快速定位。

Also See

File9FileLast Modified
連線到 Asustor Linux Center 建立的 Debian Desktop 12連線到 Asustor Linux Center 建立的 Debian Desktop 122:24 PM - January 12, 2026
透過 systemd service管理 VNC server透過 systemd service管理 VNC server2:24 PM - January 12, 2026
將 x11vnc 與 noVNC 整合在一起將 x11vnc 與 noVNC 整合在一起2:24 PM - January 12, 2026
ZFS 檔案系統簡介ZFS 檔案系統簡介2:24 PM - January 12, 2026
VNC viewer via SSH tunnel connectionVNC viewer via SSH tunnel connection2:24 PM - January 12, 2026
UntitledUntitled2:24 PM - January 12, 2026
LXDE 一個輕量級的桌面環境LXDE 一個輕量級的桌面環境2:24 PM - January 12, 2026
Asustor NAS Linux CenterAsustor NAS Linux Center2:24 PM - January 12, 2026
AS6508T 上使用 UbuntuAS6508T 上使用 Ubuntu2:24 PM - January 12, 2026