Unix Like, Windows, 操作系统

Cygwin/X X Server TCP direct connection

网络上大都是SSH X11 Forward的资料,鲜有Client直连Server的,某些环境下,还是希望能直接一点。

安装Cygwin/X

首先要安装Cygwin/X,具体步骤,官方文档已经写得很清楚了:Installing Cygwin/X

启动Cygwin/X X Server

Cygwin/X X Server默认仅监听Unix Socket,非本地的Client连接需要启用TCP协议,加入启动参数”-listen tcp”即可,详见官方文档:xserver-nolisten-tcp-default

可以通过修改快捷方式XWin Server加入该启动参数:

或者直接通过CLI启动XServer:

startxwin -- -listen tcp

允许X Client连接X Server

这个有两种方法,一种是在Cygwin/X上添加允许连接的IP,另一种是手动在X Client上设置MIT-MAGIC-COOKIE-1。

方法一:使用xhost添加允许连接X Server的IP

在Cygwin Terminal下执行:

DISPLAY=:0.0 xhost +XClient的IP

Cygwin/X X Server默认的Display是0,如果你改成了其它的话,请自行修改DISPLAY的值。

方法二:MIT-MAGIC-COOKIE-1

方法一偶尔用着用着,就报MIT-MAGIC-COOKIE-1的错误,所以有了方法二……

查看MIT-MAGIC-COOKIE-1

在Cygwin Terminal下执行:

xauth -n list | grep "本机IP"

如图,我X Server的IP是192.168.1.5,copy输出的那行记录:

到X Client上添加MIT-MAGIC-COOKIE-1

进入要连接到此Cygwin/X X Server的系统,也就是X Client的系统的终端,执行:

xauth add Paste上一步copy的那行

如图:

设置DISPLAY环境变量

在X Client上执行(记得修改XServerIP):

export DISPLAY=XServerIP:0.0

Cygwin/X X Server默认的Display是0,如果你改成了其它的话,请自行修改命令。

运行X programs

在X Client的系统上直接执行X programs即可,例如xclock。

由于不是使用SSH X11 Forward,因此断开SSH后仍可以继续使用,当然你得保证SSH断开后,X programs还能继续运行,可以借助screen实现:

 

TIP:C/S之间链接一断,X programs就会退出,所以用IDE记得设置自动保存(最好是周期性自动保存)。

105 Posts

自信、努力、活出精彩;以前未所见的颜色,绘大千世界!
View all posts

Leave a reply

Your email address will not be published. Required fields are marked *