假设你有一台没有显示器的机器(Linux系统),并且你只能通过SSH连接它。为了能够使用它,你认真学习了很多命令,然而就在你以为再也不需要什么图形界面的时候,你遇到了一个必须使用浏览器登录认证身份联网的问题(等有空补上这篇博客 👉 使用selenium模拟浏览器登录校园网)。

命令行再厉害,遇到浏览器,也只能认输,桌面才是最适合浏览器使用的环境。但是SSH怎么弄一个桌面出来?!

X11 Forwarding

X client (Linux) <---> X Server (Windows)

原理大概就是Linux上设置转发路径,将图形程序的数据转发给Windows显示。

Linux设置DISPLAY环境变量

export DISPLAY=192.168.23.46:0.0  # hostname填X Server的ip
# export DISPLAY=hostname:display_number.screen_number

测试用的图形程序:

# Ubuntu/Debian
sudo apt update
sudo apt install x11-apps

Windows安装X Server

推荐安装Xming(轻量且易用)

安装过程可以根据需要选择性安装(例如:已经可以通过终端SSH登录就不需要再安装Putty了)

安装完成后,不要直接打开Xming。打开XLaunch完成配置,它会自动打开Xming,运行服务器程序。

配置XLaunch只需要注意勾选No Access Control,其他默认即可。

XLaunch_config.jpg
勾选No Access Control

验证

在设置好DISPLAY环境变量的Linux命令行界面运行X11图形测试程序

xeyes