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.03.Linux (Server端)设置这里的设置和上一篇博客Windows转发Linux系统的X11一By XMing中关于Linux设置一样。3.1 ssh/sshd配置设置进入Linux使用管理员(root)权限进行如下操作:[rootxxx]vi /etc/ssh/ssh_config将ssh_config中和X11相关条目进行如下设置(注意记得去掉前面的注释符号)ForwardAgent yes ForwardX11 yes ForwardX11Trusted yes为了保险起见将sshd_config(注意和ssh_config不是一个文件)中的相关内容也进行改变[rootxxx]vi /etc/ssh/sshd_configAllowAgentForwarding yes X11Forwarding yes编辑完成后重启sshd服务systemctrl restart sshd3.2 添加DISPLAY变量设置将DISPLAY变量增加到bash环境中。a.假如想让所有用户都生效则编辑/etc/profile文件[rootxxx]vi /etc/profile增加如下内容if [[ -n $SSH_CONNECTION ]]; then export DISPLAYWindowsIP:0.0 #这里Windows IP即为能够前面安装了XMing的windows的IP fi编辑完成/etc/profile后一定要记得重新配置权限[rootxxx]chmod x /etc/profile注意千万不要将去掉if语句这将会导致Linux系统图形界面/xrdp远程界面无法登录或闪退。source一下/etc/profile 使得环境变量生效或者重新打开一个terminal登录进Linux[rootxxx]source /etc/profileb.假如只想让某个用户生效那么编辑该用户~目录下的.bashrc文件[someonexxx]vi ~/.bashrcif [[ -n $SSH_CONNECTION ]]; then export DISPLAYWindowsIP:0.0 #这里Windows IP即为能够前面安装了XMing的windows的IP fi注意千万不要将去掉if语句这将会导致Linux系统图形界面/xrdp远程界面无法登录或闪退。source一下~/.bashrc使得环境变量生效或者重新打开一个terminal登录进Linux[someonexxx]source ~/.bashrc注也可以不适用系统变量SSH_CONNECTION直接在~/.ssh/rc中编辑export命令使得环境变量DISSPLAY生效这儿不再赘述。4.windows端SSH命令:C:\Users\winuserssh -Y someOneLinuxIP5.打开Spyder在Windows MobaXterm连接中输入Spyder打开[someonexxx]sypder

本月热点