温馨提示×

如何使用TigerVNC在Debian上进行屏幕共享

小樊
45
2025-12-27 02:10:20
栏目: 智能运维

在 Debian 上使用 TigerVNC 进行屏幕共享

一 安装与准备

  • 更新软件源并安装 TigerVNC 组件:
    • sudo apt update
    • sudo apt install tigervnc-standalone-server tigervnc-common
  • 为当前用户设置 VNC 访问密码(仅用于 VNC 登录,非系统密码):
    • vncpasswd
    • 可按需设置只读密码,用于仅观看的会话。

二 配置桌面会话

  • 创建或编辑会话启动脚本:
    • mkdir -p ~/.vnc && nano ~/.vnc/xstartup
  • 赋予执行权限:
    • chmod +x ~/.vnc/xstartup
  • 按桌面环境写入启动命令(示例,任选其一或按你的实际环境调整):
    • XFCE(轻量稳定,推荐):
      • #!/bin/sh
      • unset SESSION_MANAGER
      • unset DBUS_SESSION_BUS_ADDRESS
      • exec startxfce4
    • GNOME(Debian 11/12 常见):
      • #!/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
    • KDE Plasma:
      • #!/bin/sh
      • exec startplasma-x11
    • 通用回退(使用系统 xinitrc):
      • #!/bin/sh
      • unset SESSION_MANAGER
      • unset DBUS_SESSION_BUS_ADDRESS
      • exec /etc/X11/xinit/xinitrc

三 启动与防火墙

  • 启动 VNC 会话(显示号与端口映射:显示号 N 对应端口 5900+N):
    • vncserver :1 -geometry 1920x1080 -depth 24
    • 停止会话:vncserver -kill :1
  • 开放防火墙端口(示例为显示号 :15901/tcp):
    • UFW:sudo ufw allow 5901/tcp && sudo ufw reload
    • firewalld:sudo firewall-cmd --permanent --add-port=5901/tcp && sudo firewall-cmd --reload

四 客户端连接

  • 在另一台机器安装 VNC 客户端(如 TigerVNC Viewer、RealVNC Viewer、TightVNC Viewer)。
  • 连接到服务器:
    • 地址格式:<服务器IP>:<显示号>,例如:192.168.1.100:1
    • 在弹出的窗口中输入第 2 步设置的 VNC 密码即可进入远程桌面。

五 进阶 自启动与安全性

  • 使用 systemd 管理并按需自启(将 <your_username> 替换为实际用户名,显示号示例为 :1):
    • 新建服务:sudo nano /etc/systemd/system/vncserver@.service
    • 内容示例:
      • [Unit]
        • Description=Start TigerVNC server at startup
        • After=syslog.target network.target
      • [Service]
        • Type=forking
        • User=<your_username>
        • Group=<your_username>
        • WorkingDirectory=/home/<your_username>
        • PIDFile=/home/<your_username>/.vnc/%H:%i.pid
        • ExecStartPre=-/usr/bin/vncserver -kill :%i > /devref/null 2>&1
        • ExecStart=/usr/bin/vncserver -depth 24 -geometry 1920x1080 :%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.service
  • 安全建议:
    • 优先通过 SSH 隧道转发 VNC(例如本地端口 5901 转发到远端 localhost:5901),再连接 localhost:1,可避免明文暴露 VNC 端口。
    • 仅开放必要端口,保持系统与 VNC 组件更新,避免使用 root 远程登录。

0