Ubuntu 安装 VNC 远程桌面完整指南(搭配 XFCE 桌面)
一、准备工作
- 一台运行 Ubuntu 的服务器(可以是云服务器或本地虚拟机),拥有 root 权限或 sudo 用户。
- 服务器已安装轻量级桌面环境(如 XFCE),若未安装,请先执行以下命令:bash复制下载sudo apt update sudo apt install xfce4 xfce4-goodies -y
- 本地电脑(Windows / macOS / Linux)用于远程连接。
二、安装 VNC 服务器
2.1 安装 TightVNC 服务器
bash
复制
下载
sudo apt install tightvncserver -y
tightvncserver 是一个轻量且稳定的 VNC 服务器软件。
三、首次启动并设置 VNC 密码
3.1 启动 VNC 服务器(不要用 sudo)
bash
复制
下载
vncserver
首次运行会提示:
- 设置 6~8 位密码(用于客户端连接),并确认一次。
- 是否设置仅查看(view-only)密码?输入
n跳过(除非你需要只读权限)。
成功启动后,终端会显示类似:
text
复制
下载
New 'X' desktop is your-hostname:1 Starting applications specified in /home/your-user/.vnc/xstartup Log file is /home/your-user/.vnc/your-hostname:1.log
其中 :1 表示第一个 VNC 会话,对应的端口为 5901(端口号 = 5900 + 显示编号)。
3.2 停止默认会话(以便修改配置文件)
初次启动会自动生成配置文件 ~/.vnc/xstartup,我们需要修改它以启动 XFCE 桌面。
bash
复制
下载
vncserver -kill :1
输出应为:Killing Xtightvnc process ID xxxx
四、配置 VNC 启动桌面(修改 xstartup)
4.1 编辑 ~/.vnc/xstartup 文件
bash
复制
下载
nano ~/.vnc/xstartup
初始内容可能是类似下面的默认脚本:
bash
复制
下载
#!/bin/sh xrdb $HOME/.Xresources xsetroot -solid grey #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & #x-window-manager & # Fix to make GNOME work export XKL_XMODMAP_DISABLE=1 /etc/X11/Xsession
将其替换为以下内容:
bash
复制
下载
#!/bin/bash xrdb $HOME/.Xresources startxfce4 &
保存并退出(Ctrl+O,回车,Ctrl+X)。
4.2 赋予执行权限
bash
复制
下载
chmod +x ~/.vnc/xstartup
五(重要)、防火墙与云平台安全组配置
5.1 Ubuntu 防火墙(ufw)放行端口
bash
复制
下载
sudo ufw allow 5901/tcp sudo ufw reload
5.2 云平台安全组设置(至关重要!)
登录你的云服务商控制台(阿里云、腾讯云、华为云等),找到实例对应的安全组,添加入方向规则:
- 优先级:1(默认)
- 策略:允许
- 协议类型:TCP
- 端口范围:5901
- 源地址:
0.0.0.0/0(表示允许所有 IP 访问,用于测试;生产环境建议限制为你的本地公网 IP,如123.123.123.123/32) - 描述:VNC(可选)
⚠️ 易错点:源地址务必选择 CIDR 并填写 0.0.0.0/0,而不是“安全组”或“前缀列表”,否则仅允许同安全组内机器访问,导致外部连接超时。六、重新启动 VNC 会话
bash
复制
下载
vncserver -geometry 1280x720 -depth 24
参数说明:
-geometry:指定分辨率(可调整为1920x1080等)。-depth:颜色深度(24 位真彩色)。
启动后,端口 5901 应处于监听状态,可用以下命令确认:
bash
复制
下载
sudo ss -lntp | grep 5901
输出应包含 LISTEN 0 128 0.0.0.0:5901。
七、从本地电脑连接
7.1 下载 VNC Viewer
- 官网下载(可能较慢):RealVNC Viewer 官网
- 国内镜像(推荐):多特软件站 RealVNC 下载
7.2 安装并运行 VNC Viewer
- 安装后打开,无需登录或注册,直接关闭弹出的登录窗口。
- 在顶部地址栏输入:
你的服务器公网IP:5901(例如123.123.123.123:5901),回车。 - 输入你在步骤 3.1 设置的 VNC 密码,即可进入 XFCE 桌面。
八、常见问题及解决方法
8.1 连接超时(Timed out waiting for a response)
现象:VNC Viewer 提示 “Timed out waiting for a response from the computer”。
排查步骤:
- 检查 VNC 服务是否运行bash复制下载ps aux | grep vnc若无进程,重新启动:
vncserver -geometry 1280x720 -depth 24 :1。 - 检查端口监听bash复制下载sudo ss -lntp | grep 5901若没有输出,说明 VNC 未绑定端口,需检查服务启动情况。
- 检查云平台安全组
确认入方向规则已正确添加,源地址为0.0.0.0/0(或你的本地 IP),协议 TCP,端口 5901。 - 检查 Ubuntu 防火墙bash复制下载sudo ufw status若防火墙开启,确保 5901/tcp 已放行。
- 网络连通性测试
在本地电脑打开命令提示符(CMD),执行:cmd复制下载telnet 你的服务器公网IP 5901- 如果卡住或进入黑屏:网络通,问题可能出在 VNC 服务本身。
- 如果提示连接失败:网络不通,重点检查安全组/防火墙。
8.2 连接成功但屏幕灰色或只有一个终端
现象:输入密码后进入桌面,但只有灰色背景或一个终端窗口。
原因:~/.vnc/xstartup 文件未正确配置或未赋予执行权限。
解决:
- 确认
~/.vnc/xstartup内容以startxfce4 &结尾。 - 重新赋予权限:
chmod +x ~/.vnc/xstartup - 杀掉会话并重启:
vncserver -kill :1然后vncserver -geometry 1280x720 -depth 24 :1
8.3 忘记 VNC 密码
解决:直接运行 vncpasswd,按提示设置新密码即可覆盖原密码。
8.4 如何让 VNC 服务开机自动启动
可以通过 crontab 实现(以当前用户身份):
bash
复制
下载
crontab -e
添加一行:
text
复制
下载
@reboot /usr/bin/vncserver -geometry 1280x720 -depth 24 :1
九、总结
至此,你已成功在 Ubuntu 服务器上通过 VNC 搭建了远程桌面。