Linux Mint 上开启 VNC 远程桌面

在 Linux Mint 上开启 VNC 远程桌面主要有两种主流方案。你需要根据自己的需求选择:

  • 方案一(推荐新手/共享屏幕):使用 x11vnc
    • 特点 :连接到你当前正在使用的物理屏幕。你在那边操作,本地屏幕也会同步显示。适合远程协助或查看本机状态。
  • 方案二(适合服务器/多用户):使用 TigerVNC
    • 特点 :创建一个全新的虚拟桌面。连接后是一个独立的会话,不会干扰本地物理屏幕(甚至本地可以黑屏),且支持多用户同时连接。

以下是详细的操作步骤:


方案一:使用 x11vnc(共享当前物理桌面)

这种方法最简单,适合只想远程控制这台电脑当前画面的用户。

1. 安装 x11vnc

打开终端,输入以下命令:

bash 复制代码
sudo apt update
sudo apt install x11vnc -y
2. 设置连接密码

你需要设置一个密码,以便远程连接时验证:

bash 复制代码
x11vnc -storepasswd

输入两次密码后,系统会询问是否保存到默认位置,输入 y 确认。

3. 启动服务

在终端直接运行以下命令即可立即启动服务(端口默认为 5900):

bash 复制代码
x11vnc -display :0 -auth /home/你的用户名/.Xauthority -forever -loop -noxdamage -repeat -rfbauth /root/.vnc/passwd -rfbport 5900 -shared

注意:只要这个终端窗口不关闭,VNC 服务就会一直运行。

4. 设置开机自启(可选)

要让 x11vnc 在后台持续运行,不受终端关闭影响,最标准、最可靠的方法是将其配置为一个 systemd 系统服务。这样它就能像 SSH 服务一样,在后台默默运行,并支持开机自启。

创建一个 systemd 服务

这个操作会创建一个系统级的服务,让 x11vnc 在后台独立运行。

  1. 创建服务配置文件

    在终端中执行以下命令,创建一个新的服务文件:

    bash 复制代码
    sudo nano /etc/systemd/system/x11vnc.service
  2. 粘贴配置内容

    将下面这段内容完整复制并粘贴到打开的编辑器中。请务必将 YourUsername 替换成你自己的用户名 (就是你家目录 /home/ 下的那个名字,比如 mintx)。

    ini 复制代码
    [Unit]
    Description=Start x11vnc at startup to share the physical display
    After=multi-user.target
    
    [Service]
    Type=simple
    ExecStart=/usr/bin/x11vnc -display :0 -auth /home/YourUsername/.Xauthority -forever -loop -noxdamage -repeat -rfbauth /root/.vnc/passwd -rfbport 5900 -shared
    ExecStop=/usr/bin/killall x11vnc
    Restart=on-failure
    RestartSec=2
    
    [Install]
    WantedBy=multi-user.target
  3. 保存并退出

    • Ctrl + O 保存文件。
    • Enter 确认文件名。
    • Ctrl + X 退出编辑器。

启动并启用服务

现在创建好了服务,接下来需要启动它,并设置开机自动运行。

  1. 重新加载 systemd 配置

    让系统识别刚刚创建的新服务。

    bash 复制代码
    sudo systemctl daemon-reload
  2. 启动 x11vnc 服务

    立即启动服务,无需重启电脑。

    bash 复制代码
    sudo systemctl start x11vnc
  3. 设置开机自启

    这样以后每次开机,VNC 服务都会自动在后台运行。

    bash 复制代码
    sudo systemctl enable x11vnc

验证服务状态

执行以下命令,检查服务是否已成功运行。如果看到 active (running),就说明一切正常了。

bash 复制代码
sudo systemctl status x11vnc

完成以上步骤后,你就可以放心地关闭终端了。x11vnc 服务会继续在后台运行,你的 VNC 连接不会再因此中断。

方案二:使用 TigerVNC(创建独立虚拟桌面)

这种方法更稳定,适合需要长期后台运行、不希望被本地操作干扰的场景。

1. 安装 TigerVNC
bash 复制代码
sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common -y
2. 初始化并设置密码

运行以下命令设置 VNC 登录密码(注意:这与系统登录密码无关,是独立的):

bash 复制代码
vncserver

首次运行会让你设置密码,并生成配置文件。设置完后,你可以先关闭它:

bash 复制代码
vncserver -kill :1
3. 配置桌面环境(关键步骤)

如果不配置,连接后可能会遇到"灰屏"只有鼠标。我们需要告诉 VNC 启动哪个桌面(Linux Mint 默认使用 Cinnamon,但为了兼容性,推荐配置为 XFCE 或 MATE,或者确保 Cinnamon 配置正确)。

编辑启动脚本:

bash 复制代码
nano ~/.vnc/xstartup

将内容修改为(以启动 XFCE 桌面为例,需先安装 xfce4,或者直接尝试启动 cinnamon-session):

bash 复制代码
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
# 如果你要使用 Cinnamon 桌面,请确保安装了 cinnamon-session 并取消下面注释
# exec cinnamon-session &
# 或者使用 XFCE(推荐,更轻量稳定)
exec startxfce4 &

保存并赋予执行权限:

bash 复制代码
chmod +x ~/.vnc/xstartup
4. 启动服务

再次启动 VNC 服务:

bash 复制代码
vncserver :1 -geometry 1920x1080

这将启动一个分辨率为 1920x1080 的桌面,对应端口 5901


第三步:配置防火墙(必须)

无论你使用哪种方案,如果开启了防火墙,都需要放行端口。

  • 方案一 (x11vnc) 默认使用端口 5900
  • 方案二 (TigerVNC) 默认使用端口 5901 (对应 :1 桌面)。

打开防火墙端口:

bash 复制代码
# 放行 5900 和 5901 端口
sudo ufw allow 5900/tcp
sudo ufw allow 5901/tcp

💡 安全提示

VNC 协议默认传输是不加密的。如果在局域网内使用问题不大;如果需要**跨互联网(外网)**访问,强烈建议配合 SSH 隧道 使用,或者使用 VPN,以防止密码和屏幕画面被窃听。

相关推荐
清平乐的技术专栏2 小时前
Python依赖包实现window下载上传到Linux
linux·开发语言·python
ywgcsxue2 小时前
在麒麟V10上源码编译安装Nginx
linux·运维·服务器·nginx
Warren983 小时前
Windows本地部署n8n完整教程(基于Docker,新手友好)
运维·windows·python·测试工具·docker·容器·可用性测试
somi73 小时前
ARM-05-Platform + DTS + GPIO子系统 + 中断 + 等待队列 + 错误处理
linux·运维·arm开发
满天星83035773 小时前
【MySQL】索引
linux·服务器·数据库·mysql
T0uken3 小时前
【Linux】耗时任务执行并邮件通知
linux·运维·服务器
c++逐梦人3 小时前
Linux生产者消费者模型
linux
Yolo566Q4 小时前
从机理到实践告别“黑箱”模拟:OpenGeoSys(OGS6)多物理场THMC 全耦合建模与Python自动化分析
运维·自动化
网络安全许木4 小时前
自学渗透测试第16天(Linux文本处理进阶)
linux·运维·服务器·网络安全·渗透测试