在Ubuntu服务器上通过VNC实现图形界面操作,主要有两种方式:使用桌面环境自带的VNC功能或安装独立的VNC服务器。以下是详细步骤:
方法一:使用Ubuntu桌面环境自带的VNC(推荐Ubuntu 20.04+)
适用于已安装桌面环境(如GNOME、Xfce)的服务器。
1. 安装桌面环境(如果未安装)
# 安装GNOME桌面(完整版,较大)
sudo apt update
sudo apt install ubuntu-desktop
# 或安装轻量级桌面(如Xfce)
sudo apt install xfce4 xfce4-goodies
2. 启用内置VNC服务
Ubuntu 20.04+ 默认使用gdm3显示管理器,可通过设置启用VNC:
# 启用VNC登录(使用GNOME)
sudo apt install gnome-remote-desktop
# 通过设置界面启用:
# 进入 Settings > Sharing > Screen Sharing,开启并设置密码
3. 使用VNC客户端连接
- 下载VNC客户端(如RealVNC、TigerVNC、Remmina)。
- 输入服务器IP地址和端口(默认5900)。
- 使用系统用户名和密码登录。
方法二:安装独立VNC服务器(如TigerVNC)
适用于无桌面环境或需要自定义配置的场景。
1. 安装桌面环境和VNC服务器
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装轻量级桌面(以Xfce为例)
sudo apt install xfce4 xfce4-goodies -y
# 安装TigerVNC服务器
sudo apt install tigervnc-standalone-server tigervnc-common -y
2. 配置VNC密码
# 切换到需要运行VNC的用户(如ubuntu)
su - ubuntu
# 设置VNC连接密码(密码文件保存在 ~/.vnc/passwd)
vncpasswd
3. 配置VNC服务文件
创建启动脚本 ~/.vnc/xstartup:
#!/bin/bash
# 如果使用Xfce桌面
startxfce4 &
# 如果使用GNOME桌面(需先安装)
# gnome-session &
赋予执行权限:
chmod +x ~/.vnc/xstartup
4. 启动VNC服务器
# 启动VNC服务(分辨率、端口可自定义)
vncserver -localhost no -geometry 1920x1080 -depth 24 :1
:1表示显示端口为5901(:2为5902,依此类推)。-localhost no允许远程连接(确保防火墙开放端口)。
5. 配置系统服务(开机自启)
创建系统服务文件 /etc/systemd/system/vncserver@.service:
[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target
[Service]
Type=simple
User=ubuntu
PAMName=login
PIDFile=/home/ubuntu/.vnc/%H:%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver -localhost no -geometry 1920x1080 -depth 24 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service
sudo systemctl start vncserver@1
6. 防火墙开放端口
# 开放VNC默认端口(5901为例)
sudo ufw allow 5901/tcp
连接方式
- VNC客户端:输入
服务器IP:5901,使用vncpasswd设置的密码。 - 通过SSH隧道(更安全):
# 本地执行(将服务器5901端口映射到本地5901) ssh -L 5901:localhost:5901 user@服务器IP然后在VNC客户端连接
localhost:5901。
注意事项
- 安全性:
- 避免直接暴露VNC端口到公网,建议使用SSH隧道或XX。
- 设置强密码,并定期更换。
- 性能:
- 轻量级桌面(如Xfce)比GNOME更适合远程图形操作。
- 可调整分辨率和颜色深度以降低带宽占用。
- 多用户:
- 每个用户需单独配置VNC密码和端口(如
:1、:2)。
- 每个用户需单独配置VNC密码和端口(如
故障排查
- 黑屏/灰屏:检查
~/.vnc/xstartup中的桌面环境配置是否正确。 - 连接拒绝:确认防火墙开放端口,VNC服务正在运行:
sudo netstat -tlnp | grep 5901 - 密码错误:重新运行
vncpasswd重置密码。
按照以上步骤,即可在Ubuntu服务器上通过VNC实现图形界面操作。
CLOUD技术笔记