Windows转发Linux系统的X11(二):By MobaXterm

📅 2026/7/23 19:30:39 👁️ 阅读次数 📝 编程学习
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_config
AllowAgentForwarding yes X11Forwarding yes

编辑完成后,重启sshd服务:

systemctrl restart sshd

3.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/profile

b.假如只想让某个用户生效,那么编辑该用户~目录下的.bashrc文件

[someone@xxx]vi ~/.bashrc
if [[ -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@LinuxIP

5.打开Spyder

在Windows MobaXterm连接中输入Spyder打开:

[someone@xxx]sypder &