在 Ubuntu 服务器安装桌面环境后,通过 VNC 登录需要完成三个核心步骤:安装并配置 VNC 服务端、设置密码、启动服务。以下是基于最常见场景(使用 tigervnc-server)的详细操作指南。
1. 安装 VNC 服务端
Ubuntu 官方源中通常提供 tigervnc-standalone-server 或 vino,推荐使用 tigervnc,因为它性能更好且配置更灵活。
sudo apt update
sudo apt install tigervnc-standalone-server -y
注意:如果你之前安装过其他桌面环境(如 GNOME),请确保系统已正确加载图形界面。如果只安装了轻量级桌面(如 XFCE),建议优先配置 XFCE 作为默认会话,因为 GNOME 在 VNC 下可能占用较高资源或出现显示异常。
2. 设置 VNC 访问密码
VNC 需要独立于系统用户密码之外的专用密码。执行以下命令:
vncpasswd
- 输入两次密码(该密码用于客户端连接)。
- 可以选择是否设置“查看权限”密码(只读模式),直接回车跳过即可。
此命令会在当前用户目录下生成 .vnc 文件夹及配置文件。
3. 配置自动启动脚本 (可选但推荐)
为了每次重启后自动启动 VNC 服务,可以创建一个 systemd 服务文件,或者简单地使用 xstartup 脚本指定桌面环境。
方法 A:修改 ~/.vnc/xstartup 文件(最常用)
编辑该文件以定义启动时的桌面环境:
nano ~/.vnc/xstartup
将内容修改为以下内容(以 XFCE 为例,如果是 GNOME 则改为 gnome-session):
#!/bin/sh
# 取消注释下面的行以启用 XFCE
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4
# 如果是 GNOME,请替换为 exec gnome-session
# 如果是 KDE,请替换为 exec startkde
赋予执行权限并保存退出:
chmod +x ~/.vnc/xstartup
方法 B:创建 systemd 服务(推荐用于开机自启)
创建服务文件 /etc/systemd/system/vncserver@.service:
sudo nano /etc/systemd/system/vncserver@.service
粘贴以下内容(将 :1 对应端口改为 5901,即端口号 = 5900 + 显示号):
[Unit]
Description=Start VNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=your_username
Group=your_group
PIDFile=/home/your_username/.vnc/%H:1.pid
ExecStartPre=-/usr/bin/vncserver -kill :1 > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24
ExecStop=/usr/bin/vncserver -kill :1
Restart=on-failure
[Install]
WantedBy=multi-user.target
重要:请将
your_username替换为你的实际用户名。
然后启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service
sudo systemctl start vncserver@1.service
4. 防火墙配置
如果服务器开启了防火墙(如 ufw),需要放行 VNC 端口。VNC 默认端口为 5900 + 显示号(例如显示号为 :1,端口即为 5901)。
sudo ufw allow 5901/tcp
# 如果不确定显示号,也可以开放整个范围 (不推荐生产环境)
# sudo ufw allow 5900:5910/tcp
5. 连接与验证
现在你可以从本地电脑使用 VNC 客户端连接了:
- 获取 IP:在服务器运行
ip addr查看内网或公网 IP。 - 客户端连接:
- 打开 VNC Viewer (Windows/Mac/Linux)。
- 地址格式:
服务器IP:1或服务器IP:5901。 - 输入第 2 步设置的 VNC 密码。
- 首次连接:第一次连接可能会提示你选择桌面环境或调整分辨率,确认后即可看到桌面。
常见问题排查
- 连接失败/黑屏:检查
~/.vnc/*.log日志文件,查看是否有 X11 启动错误。常见原因是xstartup脚本没有执行权限或未正确指定桌面环境。 - GNOME 闪退:Ubuntu 默认的 GNOME 对 VNC 支持不佳,容易出现闪烁或无法登录。建议在服务器上安装 XFCE (
sudo apt install xfce4) 并在xstartup中调用它。 - 安全性:VNC 协议本身是明文传输的。强烈建议不要直接将 VNC 端口暴露在公网上,而是通过 SSH 隧道连接:
ssh -L 5901:localhost:5901 user@服务器IP然后在本地 VNC 客户端连接
localhost:5901。
CLOUD技术笔记