MobaXterm x11-forwarding
Linux系统也是有图像界面的。它的方式和Windows不一样,叫做 X Window,采用的是X11协议。X11 中的 X 指的就是 X 协议;11 指的是采用 X 协议的第 11 个版本 客户端是X server,用MobaXterm登录Ubuntu服务器,MobaXterm就是X Server,Ubuntu服务器是X Client 登陆ECS时,最开始这个图像界面是不可用的:X11-forwarding : ✘ (disabled or not supported by server)
在服务器上运行一个要展示图形界面的程序,结果会是失败的
[root@ecs-d589 ~]# xclock
Error: Can't open display:
安装x11
sudo apt-get install xorg
sudo apt-get install xauth
sudo apt-get install openbox
sudo apt-get install xserver-xorg-legacy
安装xclock(图形钟表程序,用于测试)
sudo apt install x11-apps
需要打开x11转发,修改 /etc/ssh/sshd_config
AllowTcpForwarding yes
X11Forwarding yes
重启sshd服务
service sshd restart
关闭客户端防火墙(MobaxTerm运行的机器),或者开发特定端口(这个没成功,有知道的大佬欢迎留言)
退出MobaxTerm后重新进入 可以看到X11-forwarding已经正常打开,这时直接运行图形程序还不行
把鼠标放到MobaXterm的右上角 点击X server开启 x11 转发,127.0.0.1:0.0 下面为本地客户端ip,这时候,在服务器开启ip映射
在命令行输入,即可在本地机器调用图形界面
export DISPLAY="ip:0.0"
xclock
如果工作是固定使用当前机器,不想每次都输入上述命令,可以在 .bashrc 中直接加入上述命令
vim ~/.bashrc
export DISPLAY="ip:0.0"
这里ip后面接的0.0的第一个0表示图形界面显示的屏幕序号,从0-10,分别对应端口6000-6010(尝试过只开放端口,没成功)
如果想在pycharm调用图形界面,则在编译器中添加DISPLAY参数即可