写在前面
博主最近在做一个类似于网络聊天室的东西,需要在服务器端把哪个客户机加入了、客户机之间发送的什么消息打印出来。本来以为是个挺简单的东西,没想到卡在了第一步!!!linux本身并没有自带图形化界面,需要我们进行设置。
博主使用的SSH终端是MobaXterm。
X11转发
首先需要设置X11-forwarding,MobaXterm打开后,在最开始会弹出这个页面
请一定要看清楚这里的X11-forwarding是不是已经打上对勾了,博主就是没认真看!!!
在登陆连接页面,MobaXterm会自动勾选上X11,于是我就以为已经打开了X11转发,结果到后面一直连接不上显示,总是如下报错
如果你的X11也没有打开的话,就跟着我继续做吧!
- 第一步,安装X认证包
输入如下命令:sudo yum install xorg-x11-xauth
可能有的小伙伴在这一步会报错: ERROR:GPG check FAILED
没关系!!!既然GPG检查失败了,那我们不要GPG检查就好了!!!(没错!就是这么简单粗暴)
再次输入sudo yum install xorg-x11-xauth --nogpgcheck
,之后再确认一遍,等待一段时间后看到输出complete,恭喜你!安装成功了!
(多嘴一句,如果安装别的软件,也遇到了GPG检查失败的情况,都可以使用sudo yum install packagename --nogpgcheck
,把packagename替换成自己需要安装的包的名字就好了!)
- 第二步,打开ssh转发
在控制台输入:vim /etc/ssh/sshd_config
,把 AllowTcpForwarding 和 X11Forwarding 取消注释,并赋值yes
#AllowAgentForwarding yes
AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
然后重启sshd服务:service sshd restart
此时可以重新打开连接的会话,会发现X11已经打上对勾了。
XMing下载
由于Linux并没有自带图形化界面,所以需要通过X11转发,而我们本地需要下载一个X-windows工具来查看。XMing就是一个X-windows工具
附上官网下载链接:https://sourceforge.net/projects/xming
可以先向下看一下需要注意的选项,选择一下自己的安装路径,其他的无脑点next就好!
注意:这里选 Don't install an SSH client
可以勾选几个,生成快捷方式(第一个是在桌面生成快捷方式)
这里建议还是生成一下快捷方式,因为后续要再次开启Xming时,进到安装的文件夹下,有太多可执行文件,博主在这里就一个手快点成了Xlaunch,再次设置了一遍Xming
安装完成(可以勾选上launch,直接开始运行)
运行代码
如果你是要使用TKinter生成图形化界面,需要先在SSH终端安装一下包,输入如下指令:sudo yum install python3-tkinter
(P.S.博主使用的是华为云的服务器,镜像源是OpenEuler,如果是Ubuntu则使用sudo apt-get install python3-tk
,可以先了解一下自己需要使用什么命令)
输入echo $DISPLAY
,查看一下自己有没有输出源。如果为空的话,需要设置一下输出源。
export DISPLAY=localhost:10.0
如何检验
相信你在查资料的时候,都会遇到让你输入xclock验证自己是否配置成功。但是直接在Linux上运行,是找不到这个命令的。需要先安装sudo yum install x11-apps
,如果GPG检查失败了,请再次参考前面的教程。
安装结束后,再输入xclock,如果配置成功的话,是会跳出一个时钟界面的~
写在最后
由于博主在第一次弹出图形化界面后,关闭不掉,直接用了资源管理器强制关闭。结果导致Xming出了一些奇怪的问题。要么是直接不弹出;要么是弹出后闪退了,报错X connection to localhost:10.0 broken (explicit kill or server shutdown).
解决办法:重启计算机
以上也是博主今天尝试的经验,如果出现什么问题请见谅~也可以在评论区留言
参考资料
MobaXterm里的X11-forwarding
windows下Xming调用linux的图形界面