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
)。