温馨提示×

Ubuntu VNC怎么使用教程

小樊
39
2025-12-10 09:51:47
栏目: 智能运维

Ubuntu VNC 使用教程

一 准备与安装

  • 更新软件源并安装桌面环境与 VNC 服务器(以Ubuntu 20.04/22.04为例,服务器版通常默认无图形界面):
    • 安装轻量桌面环境:sudo apt update && sudo apt install xfce4 xfce4-goodies
    • 安装 VNC 服务器:sudo apt install tightvncserver
  • 首次运行设置访问密码(VNC 密码长度通常为6–8个字符,超出部分会被截断):vncserver
  • 记录端口信息:VNC 的显示号与端口关系为“:X → 5900+X”,例如 :1 → 5901。以上步骤完成后,已具备基本运行环境。

二 配置 VNC 服务器

  • 停止默认实例以便修改配置:vncserver -kill :1
  • 编辑启动脚本:nano ~/.vnc/xstartup,写入以下内容并保存:
    #!/bin/sh
    xrdb $HOME/.Xresources
    startxfce4 &
    
  • 赋予执行权限:chmod +x ~/.vnc/xstartup
  • 重新启动 VNC 实例:vncserver。如需指定分辨率与色深,可使用:vncserver -geometry 1280x800 -depth 24。常见做法是将服务仅绑定本地,提升安全性(见下一节)。

三 安全连接与客户端使用

  • 推荐通过 SSH 隧道转发 VNC,避免明文传输:
    • Linux/macOS 终端:ssh -L 5901:127.0.0.1:5901 -C -N -l <用户名> <服务器IP>
    • Windows 可用 PuTTY:在 Connection → SSH → Tunnels 中添加源端口 5901,目标 localhost:5901,然后连接。
  • 使用 VNC Viewer 连接:地址填写 localhost:5901(若使用其他显示号,则为 5900+显示号)。macOS 可用“屏幕共享”应用,地址形如 vnc://localhost:5901

四 开机自启与多用户管理

  • 创建 systemd 服务单元:sudo nano /etc/systemd/system/vncserver@.service,示例内容(按需替换 ):
    [Unit]
    Description=Start TightVNC server at startup
    After=syslog.target network.target
    
    [Service]
    Type=forking
    User=<USER>
    Group=<GROUP>
    WorkingDirectory=/home/<USER>
    PIDFile=/home/<USER>/.vnc/%H:%i.pid
    ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
    ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
    ExecStop=/usr/bin/vncserver -kill :%i
    
    [Install]
    WantedBy=multi-user.target
    
  • 启用并启动服务:
    • 重载配置:sudo systemctl daemon-reload
    • 开机自启:sudo systemctl enable vncserver@1.service
    • 立即启动:sudo systemctl start vncserver@1.service
  • 多实例:如需同时运行多个桌面,创建 vncserver@2.service 等,注意端口为 5902、5903…

五 常见问题与排错

  • 灰屏或黑屏:检查 ~/.vnc/xstartup 是否正确、是否具有可执行权限;必要时恢复默认后仅保留 startxfce4 & 再重启实例。
  • 端口占用:若提示 :1 is taken,先 vncserver -kill :1 再启动,或改用 :2 等未占用显示号。
  • 字体缺失提示:安装字体包 sudo apt install -y xfonts-75dpi xfonts-100dpi
  • 直接开放公网端口风险高:建议保持 -localhost 绑定并通过 SSH 隧道访问;如确需开放,仅允许可信来源并限制端口范围。

0