温馨提示×

如何用TigerVNC远程控制Linux

小樊
46
2025-11-11 03:18:13
栏目: 智能运维

一、前置准备

  • 服务器要求:确保Linux服务器已联网,具备root或sudo权限;建议安装图形界面(如Ubuntu Desktop、CentOS GNOME),若为无头服务器需提前安装桌面环境(如sudo apt install xfce4)。
  • 客户端要求:准备一台Windows/macOS/Linux客户端,下载TigerVNC Viewer(官网或应用商店获取)。

二、服务器端安装TigerVNC Server 根据Linux发行版选择对应命令安装:

  • Ubuntu/Debian
    sudo apt update && sudo apt install tigervnc-standalone-server tigervnc-xorg-extension -y
    
  • CentOS/RHEL/Fedora
    sudo yum install tigervnc-server -y  # CentOS 7及以下
    sudo dnf install tigervnc-server -y  # CentOS 8+/Fedora
    

三、配置VNC密码 在服务器上切换至需要远程登录的用户(如ubuntu),运行以下命令设置密码(最多8位,区分大小写):

vncpasswd

输入密码后确认,密码会加密保存至~/.vnc/passwd(与系统密码无关)。

四、定制桌面启动配置

  1. 编辑xstartup文件(关键步骤,决定远程桌面环境):
    打开用户目录下的.vnc/xstartup文件:

    nano ~/.vnc/xstartup
    

    根据桌面环境修改内容(以下为常见配置):

    • XFCE(轻量级,推荐)
      #!/bin/sh
      unset SESSION_MANAGER
      unset DBUS_SESSION_BUS_ADDRESS
      exec startxfce4 &
      
    • GNOME(Ubuntu默认)
      #!/bin/sh
      export GNOME_SHELL_SESSION_MODE=ubuntu
      export XDG_CURRENT_DESKTOP=ubuntu:GNOME
      exec /etc/X11/Xsession ubuntu-xsession &
      
    • KDE Plasma
      #!/bin/sh
      exec startplasma-x11 &
      

    保存后赋予执行权限:

    chmod +x ~/.vnc/xstartup
    
  2. 创建系统服务(实现开机自启)
    以用户ubuntu、显示编号:1(对应端口5901)为例,复制模板并修改:

    sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
    sudo nano /etc/systemd/system/vncserver@:1.service
    

    <USER>替换为实际用户名(如ubuntu),修改ExecStart行(添加分辨率、颜色深度):

    [Service]
    Type=forking
    User=ubuntu
    Group=ubuntu
    WorkingDirectory=/home/ubuntu
    ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 || :
    ExecStart=/usr/bin/vncserver :1 -geometry 1920x1080 -depth 24 -localhost no
    ExecStop=/usr/bin/vncserver -kill :1
    PIDFile=/home/ubuntu/.vnc/%H:1.pid
    [Install]
    WantedBy=multi-user.target
    

    保存后重载systemd并启动服务:

    sudo systemctl daemon-reload
    sudo systemctl enable vncserver@:1.service  # 开机自启
    sudo systemctl start vncserver@:1.service   # 立即启动
    

五、配置防火墙允许访问

  • Ubuntu(UFW)
    sudo ufw allow 5901/tcp  # 5901是:1对应的端口(5900+显示编号)
    sudo ufw reload
    
  • CentOS(Firewalld)
    sudo firewall-cmd --permanent --add-port=5901/tcp
    sudo firewall-cmd --reload
    
  • 临时关闭防火墙(测试用,生产环境不推荐)
    sudo systemctl stop firewalld  # CentOS
    sudo ufw disable               # Ubuntu
    

六、客户端连接

  1. 在客户端打开TigerVNC Viewer,在地址栏输入:
    服务器IP:5901  # 如192.168.1.100:5901
    
  2. 输入步骤三中设置的VNC密码,点击“OK”。
  3. 连接成功后,即可看到远程Linux桌面(如XFCE、GNOME界面)。

七、常见问题排查

  • 黑屏问题:检查~/.vnc/xstartup文件是否有语法错误,确保桌面环境命令正确(如startxfce4而非xfce4-session);若仍黑屏,尝试删除~/.vnc目录下所有文件(除xstartup外)并重启服务。
  • 无法连接:确认服务器IP正确,防火墙已放行端口;使用netstat -tulnp | grep 5901检查服务是否监听端口。
  • 密码错误:通过vncpasswd重新设置密码,确保密码长度≥6位。

八、进阶优化(可选)

  • SSH隧道加密(提升安全性):在客户端执行以下命令,将VNC流量通过SSH加密传输:
    ssh -L 5901:localhost:5901 -N -f -l 服务器用户名 服务器IP
    
    然后在VNC Viewer中连接localhost:5901
  • 调整性能:在vncserver命令中添加-depth 16(降低颜色深度)或-compresslevel 9(提高压缩比),适合网速较慢的环境。
  • 共享桌面:若需共享当前用户的已有桌面(而非新建虚拟桌面),修改vncserver命令为vncserver :1 -localhost no -geometry 1920x1080 -depth 24 -alwaysshared yes

0