Window远程连接Linux桌面版
卸载RealVNC Server
一、确认是否安装了 VNC Server
先检查是否已安装:
which vncserver
# 或
dpkg -l | grep vnc
# 或
rpm -qa | grep vnc
二、在 Debian / Ubuntu 上卸载(.deb
安装)
1. 卸载 RealVNC Server 软件包
sudo apt remove realvnc-vnc-server
# 或完全删除(包括配置文件)
sudo apt purge realvnc-vnc-server
2. 删除残余文件(可选)
sudo rm -rf /etc/vnc /root/.vnc ~/.vnc
3. 关闭并禁用服务(如未自动移除)
sudo systemctl stop vncserver-x11-serviced.service
sudo systemctl disable vncserver-x11-serviced.service
四、验证卸载结果
运行命令确认:
which vncserver
若无输出说明已卸载干净。
卸载TigerVNC Server
一、彻底卸载所有 TigerVNC 组件
执行以下命令:
sudo apt purge tigervnc-common tigervnc-viewer tigervnc-standalo
purge
会删除包括配置文件在内的所有内容;standalone-server
虽然已被移除(rc
状态),仍可清理其残留配置。
然后清理依赖:
sudo apt autoremove
二、确认是否已卸载干净
检查是否还有相关残留:
dpkg -l | grep vnc
which vncserver
若无输出,则说明卸载成功。
三、(可选)删除用户配置目录(残留)
有些 VNC 工具会在用户主目录创建 .vnc
文件夹:
rm -rf ~/.vnc
sudo rm -rf /root/.vnc
安装VNC Server
笔者使用的是 VNC Viewer 桌面版(客户端),目标是从 Windows 远程控制 Linux 机器的桌面。
那么在 Linux 上需要安装和配置的是 VNC Server,使其开放桌面服务供远程访问,下面是操作步骤。
一、Linux 上安装 VNC Server(供 Windows 控制)
这里推荐安装 TigerVNC Server,开源、稳定,适用于大多数 Linux 桌面环境。
(也可选用 RealVNC、x11vnc 等,但 TigerVNC 兼容性较好)
1. 安装 TigerVNC Server
sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common
二、配置 VNC Server 用户会话
1. 设置 VNC 密码(每个用户执行一次)
vncpasswd
2. 启动一次 VNC Server 以生成配置目录
vncserver
你将看到类似输出:
New 'hostname:1 (username)' desktop is hostname:1
这表示你可以通过端口 5901
(=5900+1)访问。
三. 配置启动的Window桌面环境
1. 访问官网下载页面
打开浏览器,进入:
👉 https://www.realvnc.com/en/connect/download/viewer/
选择对应系统(Windows),点击 “Download VNC Viewer” 按钮。
2. 安装程序
- 下载完成后,双击
.exe
安装文件 - 按提示点击 “下一步(Next)”、“安装(Install)”,安装过程非常快
- 安装完成后可从桌面图标或开始菜单启动
3. 连接远程 Linux 桌面
- 启动 VNC Viewer
- 在“Enter a VNC Server”输入框中输入你 Linux 主机的 IP 和会话号,例如:
192.168.123.222:1
- 回车
- 在弹出的窗口中输入你在 Linux 上运行
vncpasswd
设置的 VNC 密码 - 点击“OK”进入桌面
提示
- 端口说明:
:1
表示 TCP 端口5901
,如果你启动的是:2
,那对应的是5902
,以此类推。 - 如果你仍然无法连接,请确保:
- Linux 的 VNC Server 启动且监听了局域网(
-localhost no
) - 防火墙允许 5901 端口
- Windows 与 Linux 在同一网段(如都在
192.168.123.x
)
- Linux 的 VNC Server 启动且监听了局域网(
四、防火墙与端口开放
确保 Linux 的防火墙允许 5901 端口(或更多):
sudo ufw allow 5901/tcp
如果你使用其他显示号,如 :2
,则对应 5902
。
五、停止 VNC 会话
vncserver -kill :1
过程性问题
一、查看linux的主机IP
1.推荐命令
ip a
或更简洁:
ip addr show
你会看到类似输出:
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
inet 192.168.123.161/24 brd 192.168.123.255 scope global dynamic eth0
其中:
inet
后的192.168.123.161
就是你的本机 IP 地址。eth0
、enp0s3
或wlan0
表示有线或无线网卡接口。
2.只显示本机 IP(不含其他信息)
hostname -I
输出类似:
192.168.123.161
二、VNC Viewer显示拒绝连接
当你在 VNC Viewer 中看到报错:
“The connection was refused by the computer”
这意味着 VNC Viewer 客户端 成功找到目标 IP,但目标主机没有在对应端口上运行 VNC 服务。
1.查看VNC是否已经成功启动
vncserver -list
输出类似:
TigerVNC server sessions:
X DISPLAY # RFB PORT # PROCESS ID
:1 5901 1832105
(base) phm@Robot:~/Soft$ ss -tlnp | grep 5901
LISTEN 0 5 127.0.0.1:5901 0.0.0.0:* users:(("Xtigervnc",pid=1832105,fd=7))
LISTEN 0 5 [::1]:5901 [::]:* users:(("Xtigervnc",pid=1832105,fd=8))
这说明已经成功启动了 VNC Server,但仍然 无法通过 Windows 的 VNC Viewer 远程连接,原因是:
当前 VNC 仅监听在 127.0.0.1
(本地回环地址),此时VNC Server 只接受来自本机的连接请求,不接受局域网中其他设备的连接(如你的 Windows PC)。
2.让 VNC Server 监听所有网络接口(0.0.0.0)
你需要在启动 VNC Server 时加参数或配置,使其监听外部连接。
🔧 用 -localhost no
参数启动
执行以下命令停止 VNC Server:
vncserver -kill :1
然后重新启动,禁用 localhost 限制:
vncserver :1 -localhost no
然后再执行:
ss -tlnp | grep 5901
你应该看到:
LISTEN 0 5 0.0.0.0:5901 ...
这就表示 VNC 已开放给局域网访问。
🧠 可选:设置默认参数(以后不需要每次加 -localhost no
)
编辑配置文件:
nano ~/.vnc/config
添加:
localhost no
保存后,以后你每次执行 vncserver :1
就会默认监听所有地址。
✅ 再次测试连接
从 Windows VNC Viewer 连接:
192.168.123.222:1
输入密码,即可远程桌面控制。
🛡️ 如果仍无法连接,请确保防火墙允许
sudo ufw allow 5901/tcp
三、进入linux远程桌面后卡在了显示器颜色配置
程连接后遇到的这个弹窗:
“Authentication is required to create a color profile”
是 Linux 图形系统尝试为显示器配置颜色管理(Color Management)时触发的权限请求。在 VNC 环境中,它其实是无用的,完全可以禁止提示或绕过。
1.解决方法一(推荐):禁止 colord 服务的色彩管理弹窗
- 编辑 PolicyKit 权限文件(需 sudo):
sudo nano /etc/polkit-1/localauthority.conf.d/02-allow-colord.conf
- 添加如下内容:
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device
ResultAny=no
ResultInactive=no
ResultActive=no
- 保存退出,重启 VNC:
vncserver -kill :1
vncserver :1
2.解决方法二:直接禁用 colord 服务(彻底关闭色彩管理)
⚠️ 适用于你不需要任何色彩管理功能的环境(比如机器人或服务器远程 GUI)。
bash复制代码sudo systemctl stop colord
sudo systemctl disable colord
然后重新启动 VNC 会话。
4.方法三(临时):忽略该提示
你也可以不理会此提示,直接拖到一边;它不会影响大多数功能。但每次连接时都会弹出,比较烦人。