前言:


多智能体项目,在不同的操作系统里面需要频繁远程切换,之前的博客提到了windows下构建多个VNC的链接的事情,绕过了Todesk等,商业软件。这里,我们遇到的另外一个问题,就是,环境现在是多个系统下的VNC操作:

VNC有多种方式,我们采用x11vnc的方式


第一步:Ubuntu 安装 x11vnc

sudo apt update
sudo apt install x11vnc -y

第二步:设置 VNC 密码

x11vnc -storepasswd
# 按提示输入密码,保存到默认位置 ~/.vnc/passwd

第三步:防火墙放行

sudo ufw allow 5900/tcp

第四步:测试手动启动(先验证能连)

4.1 先确认当前 display:

echo $DISPLAY
# 通常是 :0 或 :1

4.2 启动 x11vnc

x11vnc -noxdamage -forever -shared -rfbauth ~/.vnc/passwd -display :0

[笔者案】这里,作者遇到一个显示器ID的设置问题,我设定为0的时候,通过windows去访问ubuntu是可以访问的,但是是黑屏,可以看到鼠标的运动,但是屏幕是黑屏,后来发现是选择的时候,ID设定错误,有时候,ID需要设定为1,这个要看4.1的结果:
 

如果 echo $DISPLAY 输出 :1,就把上面命令里的 -display :0 改成 -display :1

x11vnc -noxdamage -forever -shared -rfbauth ~/.vnc/passwd -display :1

第五步,windows上去访问:

5.1 先确认IP通:

5.2 用VNC Viewer来连接:

Windows 侧:VNC Viewer 输入 Ubuntu的IP:5900 连接。这里注意,有可能需要在后面跟上端口号5900

连接成功后:


第六步:配置开机自启

创建 systemd 服务:

sudo nano /etc/systemd/system/x11vnc.service

服务内容填写如下:
 

[Unit]
Description=x11vnc remote desktop server
After=display-manager.service network.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -noxdamage -forever -shared -rfbauth /home/你的用户名/.vnc/passwd -display :0
Restart=on-failure
User=root

[Install]
WantedBy=multi-user.target

注意替换:

  • 你的用户名 → 你的实际用户名(看你历史是 frankhill 或类似)

  • -display :0 → 如果之前测试 :1 才能用,就改成 :1

启用服务:
 

sudo systemctl daemon-reload
sudo systemctl enable x11vnc
sudo systemctl start x11vnc

更多推荐