温馨提示×

ubuntu tigervnc远程桌面如何使用

小樊
46
2025-10-29 15:51:27
栏目: 智能运维

Ubuntu上使用TigerVNC配置远程桌面的完整步骤

1. 安装TigerVNC服务器

打开终端,依次执行以下命令更新系统软件包列表并安装TigerVNC核心组件:

sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common

2. 设置VNC连接密码

运行vncpasswd命令设置远程连接密码(需输入两次确认):

vncpasswd

注意:密码长度需为6-8位,不支持特殊字符(如@#等)。

3. 配置桌面启动脚本(解决灰屏问题)

TigerVNC需要~/.vnc/xstartup文件定义启动的桌面环境。若该文件不存在,可通过以下步骤创建:

  • 首次运行vncserver :1:1表示显示编号,对应端口5901)生成默认目录;
  • 编辑xstartup文件(以GNOME桌面为例):
    nano ~/.vnc/xstartup
    
  • 删除原有内容,粘贴以下配置(关键:取消unset行注释,避免桌面环境无法启动):
    #!/bin/sh
    unset SESSION_MANAGER
    unset DBUS_SESSION_BUS_ADDRESS
    exec /etc/X11/xinit/xinitrc  # 加载系统默认桌面环境
    
  • 保存文件并赋予执行权限:
    chmod +x ~/.vnc/xstartup
    

4. 启动VNC服务器

使用以下命令启动VNC服务(:1对应端口5901,:2对应5902,依此类推):

vncserver :1

启动后,终端会显示类似信息:

New 'X' desktop is ubuntu:1 (192.168.1.100:1)

此时可通过vncserver -list查看当前运行的会话,vncserver -kill :1停止指定会话。

5. 配置防火墙(允许VNC连接)

若系统启用了UFW防火墙,需开放VNC端口(默认5901):

sudo ufw allow 5901/tcp
sudo ufw enable  # 若未启用防火墙,可跳过此步

6. 连接VNC服务器(Windows客户端为例)

  • 在Windows电脑上下载并安装TigerVNC Viewer(官网下载);
  • 打开TigerVNC Viewer,在地址栏输入<Ubuntu服务器IP>:1(如192.168.1.100:1);
  • 输入步骤2中设置的VNC密码,点击“OK”即可连接远程桌面。

7. 可选:设置开机自启动

若需VNC服务器随系统启动,需创建Systemd服务文件:

sudo nano /etc/systemd/system/vncserver@.service

粘贴以下内容(替换your_username为实际用户名):

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=your_username
ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -depth 24 -geometry 1920x1080
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

保存后执行以下命令启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service  # :1对应端口5901
sudo systemctl start vncserver@1.service

常见问题解决

  • 灰屏/黑屏:检查~/.vnc/xstartup文件是否正确配置(需取消unset行注释),并确保桌面环境已安装(如GNOME:sudo apt install gnome-session);
  • 无法远程连接:确认防火墙是否开放VNC端口,或使用ssh -L 5901:localhost:5901 your_username@your_server_ip创建SSH隧道提升安全性;
  • 锁屏后无法解锁:通过SSH登录服务器,执行loginctl unlock-session <ID><ID>可通过loginctl list-sessions查看)解锁会话。

0