Ubuntu服务器装了桌面环境后如何通过VNC登录?

在 Ubuntu 服务器安装桌面环境后,通过 VNC 登录需要完成三个核心步骤:安装并配置 VNC 服务端设置密码启动服务。以下是基于最常见场景(使用 tigervnc-server)的详细操作指南。

1. 安装 VNC 服务端

Ubuntu 官方源中通常提供 tigervnc-standalone-servervino,推荐使用 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 客户端连接了:

  1. 获取 IP:在服务器运行 ip addr 查看内网或公网 IP。
  2. 客户端连接
    • 打开 VNC Viewer (Windows/Mac/Linux)。
    • 地址格式:服务器IP:1服务器IP:5901
    • 输入第 2 步设置的 VNC 密码。
  3. 首次连接:第一次连接可能会提示你选择桌面环境或调整分辨率,确认后即可看到桌面。

常见问题排查

  • 连接失败/黑屏:检查 ~/.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

云服务器