X Window System 的架构可以支持网络,也就是说,在remote端的机器,只需要有X Window相关运行库,不需要有显示器键盘鼠标,就可以在另一台机器(workstation端)上进行图形化交互。换句话说,程序可以在remote端跑,绘图以及响应鼠标键盘部分可以在workstation端进行。
将remote端的X forward到workstation端有多种方法,这里举例两种方法:一是用SSH,二是直接用X11 Remote Connection.
实验环境
1. 用runlevel 5 的主机作为Workstation,用一台runlevel 3 的虚拟机作为Remote Machine.(Remote端没有显示器键盘鼠标哦)
2. Remote Machine需要装有X Window System,可以用以下方法安装.
# yum groupinstall "X Window System"
3. Remote端还需要安装一个xclock,用于实验,可以用以下方法安装。
# yum install xclock
4. 我们要做的是,在Remote端运行xclock,但图形在workstation端显示。
5. 下面实验中,Workstation端的ip是192.168.100.1, Remote端的ip是192.168.100.50
SSH方式
用SSH方式,Remote端的X数据通过SSH通道传送到Workstation, 所以它大概是最简单的一种方法了。
1. 用开启X11 forwarding的SSH连接到Remote端。
# ssh -X root@192.168.100.50
2. 执行remote的xclock
# xclock
然后,Workstation的xclock就弹出来了,就介么简单!
X11 Remote Connection方式
用X11 Remote Connection的方法可能稍微麻烦点。
在Workstation端(X Server):
1. 防火墙允许X remote(开启6000端口),这里我直接禁用防火墙;
# iptables -F # setenforce 0
2. 开启Xorg TCP监听;
# vim /etc/gdm/custom.conf
在security一栏加上
[security] DisallowTCP=false
3. xhost加上remote端的地址;
# xhost +192.168.100.50
4. 重启图形
# init 3 # init 5
在Remote端(X Client):
1. 将DISPLAY forward到Workstation.
先查看Workstation的DISPLAY
$ echo $DISPLAY :0.0
在Remote端执行
# DISPLAY=192.168.100.1:0.0; xclock &
如果运行在init 3下,默认是没有DISPLAY这个全局变量的,需要加上export.
# export DISPLAY=192.168.100.1:0.0; xclock &
好啦,Workstation上应该就出现一个图形的时钟啦。