Windows转发Linux系统的X11(二):By MobaXterm
1、背景
在上一篇博客(Windows转发Linux系统的X11(一):By XMing)中,笔者展示了如何使用XMing来实现X11 server的转发,但是在文章的最后,笔者提到,在使用XMing转发某些大型GUI程序(例如Spyder)时,就会产生奔溃错误(The X11 connection broke (error 1). Did the X11 server die?):
笔者猜测,这可能是XMing程序对于这种大型的GUI程序转发存在一些缺陷。
解决这个问题的一个方法,就是使用MobaXterm自带的内置X11 forwarding工具来实现Linux GUI的转发。
2.Windows (Client端)设置
2.1安装Mobaxterm
在Mobaxterm的官网MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Download上下载一个免费版本的Mobaxterm,然后安装。
这里不多赘述,一步一步往下就好。
2.2设置Mobaxterm
点击Session->SSH,在Remote host中输入Linux服务器IP,如A.A.A.A,点击“OK”,输入用户名和密码,连接到Linux服务器。
2.3查看Mobaxterm的监听端口设置
一般来说,此时,Mobaxterm右上角的标致已经亮了,表示此时Mobaxterm已经在监听X11 server了,(如果没亮请点击这个标志来启动监听服务)。启动后,鼠标放到这个标志上,右键,可以看到Mobaxterm的所有监听端口:
找到Windows主机对应的IP(上面红色遮挡的IP及端口),记下IP及后面的端口号,例如:
B.B.B.B:0.0
3.Linux (Server端)设置
这里的设置和上一篇博客(Windows转发Linux系统的X11(一):By XMing)中关于Linux设置一样。
3.1 ssh/sshd配置设置
进入Linux,使用管理员(root)权限进行如下操作:
[root@xxx]vi /etc/ssh/ssh_config将ssh_config中和X11相关条目进行如下设置(注意记得去掉前面的注释符号):
ForwardAgent yes ForwardX11 yes ForwardX11Trusted yes为了保险起见,将sshd_config(注意和ssh_config不是一个文件)中的相关内容也进行改变:
[root@xxx]vi /etc/ssh/sshd_configAllowAgentForwarding yes X11Forwarding yes编辑完成后,重启sshd服务:
systemctrl restart sshd3.2 添加DISPLAY变量设置
将DISPLAY变量增加到bash环境中。
a.假如想让所有用户都生效,则编辑/etc/profile文件;
[root@xxx]vi /etc/profile增加如下内容:
if [[ -n $SSH_CONNECTION ]]; then export DISPLAY="WindowsIP:0.0" #这里Windows IP即为能够前面安装了XMing的windows的IP fi编辑完成/etc/profile后一定要记得重新配置权限:
[root@xxx]chmod +x /etc/profile注意千万不要将去掉if语句,这将会导致Linux系统图形界面/xrdp远程界面无法登录或闪退。
source一下/etc/profile 使得环境变量生效,或者重新打开一个terminal登录进Linux
[root@xxx]source /etc/profileb.假如只想让某个用户生效,那么编辑该用户~目录下的.bashrc文件
[someone@xxx]vi ~/.bashrcif [[ -n $SSH_CONNECTION ]]; then export DISPLAY="WindowsIP:0.0" #这里Windows IP即为能够前面安装了XMing的windows的IP fi注意千万不要将去掉if语句,这将会导致Linux系统图形界面/xrdp远程界面无法登录或闪退。
source一下~/.bashrc使得环境变量生效,或者重新打开一个terminal登录进Linux
[someone@xxx]source ~/.bashrc注:也可以不适用系统变量SSH_CONNECTION,直接在~/.ssh/rc中编辑export命令使得环境变量DISSPLAY生效,这儿不再赘述。
4.windows端SSH命令:
C:\Users\winuser>ssh -Y someOne@LinuxIP5.打开Spyder
在Windows MobaXterm连接中输入Spyder打开:
[someone@xxx]sypder &