X11-forwarding是什么

许多时候 X server 和 X client 在同一台主机上,这看起来没什么。但是, X server 和 X client 完全可以运行在不同的机器上,只要彼此通过 X 协议通信即可。 于是,我们就可以做一些“神奇”的事情,在本地显示 (X server)运行在服务器上的 GUI 程序 (X client)。这样的操作可以通过 SSH X11 Forwarding 来实现。X11 中的 X 指的就是 X 协议,11 指的是采用 X 协议的第 11 个版本。 有了X11 Forwarding,通过SSH连接并运行Linux上有GUI的程序,就像是在Windows下运行GUI程序一样方便。很多时候,这样的机制可以方便有图形显示的程序的调试。但是要实现X11 Forwording,需要具备X Server的SSH客户端,推荐使用MobaXTerm软件,默认就带X Server程序,免费的非常好用。 X Client部分,要安装一下软件包,要打开SSH的配置文件,将X11Forwarding修改为Yes。

安装X11-Forwarding

安装 X Window System

yum groupinstall “X Window System”

安装X11-Forwarding的支持

yum install xorg-x11-xauth xorg-x11-fonts-* xclock

远程CentOS主机配置

启用X11 Forwarding OpenSSH的配置

启用X11 Forwarding OpenSSH的配置文件中(/etc/ssh/sshd_config)
AllowTcpForwarding yes
X11Forwarding yes

CentOS 5.x系列这两项是默认打开的。如果没有的话,打开这两个选项,然后重启sshd服务。

yum -y install xorg-x11-xauth xclock
#xclock 是用来测试gui输出的
/etc/init.d/sshd restart

注意: 使用X11 Forwarding并不需要在远程主机上运行桌面系统,即执行startx。 使用X11 Forwarding需要安装rpm包xorg-x11-xauth,如果你在安装CentOS系统时,选择了安装X Window System,那这个包是默认安装的。

在Ubuntu桌面下,对OpenSSH-Client的配置文件(/etc/ssh/ssh_config)修改,打开如下三项:

ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes
#同时允许远程连接
xhost +