通过 VNC 进行虚拟监控

通过 VNC 进行虚拟监控

我有两台笔记本电脑,都安装了 Ubuntu。在同一个网络中,我想将其中一台转换为简单的显示器(就像主笔记本电脑的从属显示器,但不仅仅是像屏障一样共享键盘和鼠标,它应该成为从属显示器,换句话说,我应该能够拖放另一台显示器)。

谢谢。

答案1

协同作用是一个价值 30 至 40 美元的商业支持开源应用程序(你可以下载源代码自己编译并构建)就可以完成这个操作。

免费?Synergy 有一个免费分支,名为障碍审查) 和适用于 18.04 的软件包现在 20.04

x2vnc也可用,并且需要x2x或者x11vnc在下属 PC 上,但与 Barrier 不同,它处于维护状态。

答案2

解决方案在这里。我找到了这个项目(没有获得 MIT 许可,但很酷)。

其原理是:

  1. 创建一个虚拟屏幕并启动 x11(这是通过虚拟屏幕

  2. 从从属笔记本电脑通过查看器连接(我正在使用vnc查看器

答案3

通过 VNC 进行虚拟监控

与给出的几个答案类似,我能够使用x11vnc通过使用我自己的代码VNC 虚拟显示链接器python 代码。我在使用这段代码时遇到了一些问题,但我设法让它正常工作,如下所示。

简化说明:

请注意本答案末尾的注释和注意事项。

  1. 定义:“服务器”将是您想要扩展屏幕的计算机,“客户端”将是您想要用作屏幕的计算机(或平板电脑,任何能够部署 VNC 客户端的设备)。
  2. 所需软件:在服务器上安装x11vncgtf在客户端上安装 vnc 客户端。
  3. 您需要知道客户端的屏幕尺寸(我们称之为:CLIENT_WIDTHCLIENT_HEIGHT)和服务器的屏幕尺寸(我们称之为:SERVER_WIDTHSERVER_HEIGHT)。
  4. 在服务器中,在终端中运行gtf CLIENT_WIDTH CLIENT_HEIGHT 60(将CLIENT_WIDTH和替换为相应的CLIENT_HEIGHT值)。例如gtf CLIENT_WIDTH CLIENT_HEIGHT 60
# 1384x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 86.62 MHz
Modeline "1384x768_60.00"  86.62  1384 1456 1600 1816  768 769 772 795  -HSync +Vsync
  1. 从上一个结果中复制 前面的内容Modeline(在本例中为"1384x768_60.00" 86.62 1384 1456 1600 1816 768 769 772 795 -HSync +Vsync),并将其用作命令的参数xrandr --newmode。例如,在本例中,我们必须在服务器中运行xrandr --newmode "1368x768_60.00" 85.86 1368 1440 1584 1800 768 769 772 795 -HSync +Vsync
  2. 在5中我们已经创建了一个新的模式xrandr,现在我们需要将它添加到虚拟屏幕中,如下所示xrandr --addmode VIRTUAL1 "1368x768_60.00"(请记住使用自己新创建的模式名称,也就是5中包括引号的值)。
  3. 运行x11vnc -usepw -nocursorshape -nocursorpos -noxinerama -solid -repeat -forever -clip CLIENT_WIDTHxCLIENT_HEIGHT+SERVER_WIDTH+0。例如: 。这将在您可以连接的x11vnc -usepw -nocursorshape -nocursorpos -noxinerama -solid -repeat -forever -clip 1368x768+1920+0端口中创建一个 VNC 服务器。5900
  4. 最后,从另一台计算机(或任何 VNC 客户端,推荐用于 Linux 计算机)连接到服务器krdc。现在您应该可以享受扩展屏幕了。

注意事项和考虑事项:

  • 在步骤 8 中,使用 krdc 时,建议使用“中等质量”选项,即使您使用电缆:“低”和“高”质量选项都会产生错误。
  • 我尝试通过 WiFi 网络进行此操作,并且它运行正常,但在有线网络上则更顺畅。
  • 在第 7 步启动 VNC 服务器时,我遇到了问题,屏幕开始闪烁,我看不到屏幕上正在做什么。为了解决这个问题,我通过 VNC 服务器连接(此时扩展屏幕已经可以工作),打开该Displays工具(系统附带的工具,您可以在其中看到已连接的显示器),Unify Outputs然后Break Unified Outputs (下面显示了 Kubuntu 中此选项的示例)。然后一切正常。

统一输出

答案4

如果您的显卡虚拟屏幕遇到问题,您可以使用虚拟 HDMI 设备。

就我而言,由于我手头有 hdmi2vga 适配器,因此我将引脚与一些电阻器连接起来,如下所示: https://www.geeks3d.com/20170609/simple-display-emulator-with-an-hdmi-vga-adapter/

一旦检测到虚拟设备,就调整其分辨率以匹配从属笔记本电脑的分辨率。

在服务器上运行 x11vnc:x11vnc -ncache 10 -usepw -nocursorshape -nocursorpos -solid -repeat -forever -clip xinerama1

在从属笔记本电脑上:运行 remmina 并以中等质量连接到服务器

注意:我使用的是 Ubuntu 20.04

相关内容