通过VPN使用Xming X Window Server

时间:2020-03-05 18:38:16  来源:igfitidea点击:

我在运行Windows XP的笔记本电脑上安装了Xming X Window Server,以连接到某些UNIX开发服务器。

当我直接连接到办公室中的公司网络时,它可以正常工作。但是,当我通过VPN远程连接到网络时,它不起作用。

当我远程连接时启动Xming时,不会显示任何终端Windows。

我认为这可能与DISPLAY环境变量有关,因为它在连接笔记本电脑时未正确设置为笔记本电脑的IP地址。

我注意到,当我在远程连接时执行ipconfig时,我的笔记本电脑有两个IP地址,一个是从公司网络分配给它的,另一个是我从我的"本地网络"上为其设置的本地IP地址。调制解调器/路由器。

我需要在Xming中进行一些配置更改以支持通过VPN使用它吗?

解决方案

回答

还没有确切的问题,但是我认为我们需要查看xhost并确保允许vpn远程将数据发送到x服务器。

该链接可能有帮助:
http://www.straightrunning.com/XmingNotes/trouble.php

回答

除了Xming,我什么都没有。当我可以使用它时,它的运行速度非常慢(通过VPN)。 IMO X并非旨在通过慢速连接来运行,因为它过于健谈。通过慢速连接,我的意思是LAN连接以外的任何东西。

我的解决方案是使用x11vnc。它使我们可以通过VNC访问现有的X11会话。我只是通过VPN进入我的盒子并启动:

$ x11vnc -display :0

这样,我就可以访问白天打开的所有内容。然后,当我不这样做时,我只是在终端中退出(Ctrl-C)以关闭x11vnc。

回答

可能是X身份验证,绑定到接口的X服务器或者DISPLAY变量。我自己不使用Xming,但有一些一般现象需要检查。我们可以手动验证DISPLAY变量正确的一项测试是:

  • 启动VPN。运行ipconfig以确保我们拥有提到的两个IP地址(本地IP和VPN IP)。
  • 启动Xming。运行" netstat -n"以查看其如何绑定到接口。我们应该看到显示localIP:6000或者VPNIP:6000的内容。可能不是6000,但是很有可能会是这样。如果没有VPNIP:6000,则它可能仅绑定到localIP甚至127.0.0.1. 那可能无法在VPN上工作。检查是否存在一些Xming设置以使其绑定到其他或者所有接口。
  • 如果看到VPNIP:6000或者类似的内容,请记下它所说的内容,然后将远程Shell插入UNIX主机(希望是ssh之类的东西,如果不需要获得文本终端,则不需要此东西)。
  • 在UNIX终端上,键入'echo $ DISPLAY'。如果未显示任何内容,请尝试使用'export DISPLAY = VPNIP:0.0',其中VPNIP是VPN IP地址,0.0是我们在步骤3中看到的端口减去6000并以.0结尾(即6000 = 0.0,6010 = 10.0)。
  • 在UNIX主机上,运行" xclock"或者" xterm"之类的内容以查看其是否运行。该错误信息应该是有用的。它会告诉我们它或者无法连接到主机(连接问题),或者身份验证失败(我们需要在主机和本地计算机上协调Xauth或者在本地计算机上协调Xhost)。

如果我们有本地保护的网络并且要通过VPN,则打开Xhost(所有主机都带有+或者类似名称)并不算太坏。希望这将使我们开始跟踪问题。当它通过VPN或者简单的ssh连接工作时,通常有用的另一个选项是ssh隧道或者ssh上的X11转发。通过将UNIX主机上的端口重定向到X服务器盒上的本地端口,可以模拟到本地盒上的X服务器的连接。对于本地6010端口,显示通常类似于localhost:10.0。

X设置起来很麻烦,但是一旦掌握了它,通常效果很好。

回答

通过SSH进行X11转发,而不是直接摆弄DISPLAY变量,可能会更好。 X11与SSH的转发是安全的,并且使用现有的SSH连接来建立隧道,因此通过VPN进行工作应该没有问题。

幸运的是,这对于Xming而言相当简单。如果我们从Xming内部打开连接(例如plink选项),那么我相信默认情况下会设置X11转发。如果我们使用其他SSH客户端(例如PuTTY)进行连接,则只需启用X11转发(例如'ssh -X user @ host')。在PuTTY中,该选项位于"连接"->" SSH"->" X11"->"启用X11转发"下。

确保Xming在笔记本电脑的后台运行,并执行标准的X测试" xclock"。如果收到诸如"与localhost:19.0的X连接断开(显式终止或者服务器关闭)"之类的消息。那么Xming很可能没有运行。

另外,请确保没有在任何启动脚本中显式设置DISPLAY变量。 SSH将为X11隧道设置一个别名(类似于localhost:10或者在上面的示例中的localhost:19),并自动将DISPLAY设置为该值。覆盖DISPLAY显然将意味着我们将不再指向正确的X11隧道。不利的一面是,没有设置SSH X11转发的其他终端可以使用相同的DISPLAY值并利用隧道。

我倾向于使用PuTTY选项,但是我的一些同事使用Xming内部的plink。

回答

感谢@Stephen和@Greg Castle的帮助,使用它,我设法解决了我的问题。

为其他人(从头开始)提供基本指南:

在Windows PC上使用Xwindows通过VPN连接到UNIX服务器

我们需要从以下内容开始:

  • Putty Telnet / SSH客户端,可从以下网址免费下载putty.exe:http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
  • Xming X服务器,可从以下网址免费下载Xming:http://sourceforge.net/project/showfiles.php?group_id = 156984

该怎么办:

  • 在Windows PC上安装以上两项
  • 从Windows开始菜单中选择:程序-> Xming-> Xming
  • 在将Putty.exe程序下载到的位置运行
  • 选择SSH协议单选按钮
  • 单击配置屏幕左窗格中的" SSH:隧道"类别
  • 单击启用X11转发复选框
  • 点击打开按钮
  • 照常登录到UNIX服务器
  • 检查包含X Windows实用程序的目录在路径中,例如在Solaris上为/ usr / X / bin
  • 在腻子窗口中运行X Windows命令,它们将在桌面上生成新窗口

回答

putty + XMing我必须手动设置DISPLAY环境变量才能使事情运行(以及在putty Connection / SSH / X11中选中"启用X11转发")

出口DISPLAY = 0:10.0

(将其设置为" localhost:10.0",此方法无效)