Ubuntu VNC与远程服务器配合使用的完整流程
确保远程Ubuntu服务器已联网,且具备sudo权限(用于安装软件和修改系统配置)。远程服务器需安装图形界面(若未安装,可通过sudo apt install ubuntu-desktop安装Ubuntu默认桌面,或sudo apt install xfce4安装轻量级XFCE桌面)。
推荐使用TigerVNC(性能优)或TightVNC(轻量),以下以TigerVNC为例:
打开终端,执行以下命令更新软件包并安装:
sudo apt update sudo apt install tigervnc-standalone-server tigervnc-common -y 首次运行VNC服务器时需设置访问密码(仅用于VNC连接,与系统用户密码无关):
vncpasswd 按照提示输入密码(至少6位),确认后密码会加密保存至~/.vnc/passwd。
编辑~/.vnc/xstartup文件(若不存在则创建),指定启动的桌面环境(如GNOME、XFCE),避免黑屏问题:
nano ~/.vnc/xstartup #!/bin/sh export GNOME_SHELL_SESSION_MODE=ubuntu export XDG_CURRENT_DESKTOP=ubuntu:GNOME export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg exec /etc/X11/Xsession ubuntu-xsession #!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4 保存文件后,赋予可执行权限:
chmod +x ~/.vnc/xstartup 通过vncserver命令启动服务,指定显示号(如:1,对应端口号5901;:2对应5902,依此类推):
vncserver :1 -geometry 1920x1080 -depth 24 -geometry:设置远程桌面分辨率(如1920x1080);-depth:设置颜色深度(如24位,支持真彩色)。New 'X' desktop is your_server_ip:1)。通过systemd创建服务文件,实现VNC服务器随系统启动:
sudo nano /etc/systemd/system/vncserver@.service 粘贴以下内容(替换<USER>为你的Ubuntu用户名,:1为显示号):
[Unit] Description=Start TigerVNC server at startup After=syslog.target network.target [Service] Type=forking User=<USER> WorkingDirectory=/home/<USER> ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24 ExecStop=/usr/bin/vncserver -kill :%i Restart=on-failure [Install] WantedBy=multi-user.target 保存后,执行以下命令启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable vncserver@1.service sudo systemctl start vncserver@1.service 若远程服务器启用了UFW(Ubuntu默认防火墙),需允许VNC端口通过:
sudo ufw allow 5901/tcp # :1对应5901端口,:2对应5902,依此类推 sudo ufw reload 在本地计算机(Windows/macOS/Linux均可)安装VNC客户端(如TightVNC Viewer、RealVNC Viewer或Remmina),输入以下地址连接:
<远程服务器IP>:1 (例如:192.168.1.100:1)
连接后,输入之前设置的VNC密码,即可远程访问Ubuntu服务器的桌面。
VNC默认传输未加密,建议通过SSH隧道加密通信,防止密码泄露或数据被窃取:
在本地计算机终端执行以下命令(替换<USER>为远程服务器用户名,<服务器IP>为远程服务器IP):
ssh -L 5901:localhost:5901 <USER>@<服务器IP> -L:表示本地端口转发(将本地的5901端口映射到远程服务器的localhost:5901);Ctrl+C终止)。localhost:1,即可通过SSH隧道安全连接远程VNC服务器。~/.vnc/xstartup文件是否正确配置了桌面环境,确保文件有可执行权限(chmod +x ~/.vnc/xstartup);查看VNC日志(cat ~/.vnc/*.log)定位错误。ss -tulnp | grep vnc),防火墙是否放行端口(sudo ufw status)。vncpasswd命令重新设置密码(需停止VNC服务:vncserver -kill :1)。