RHEL6: 执行远程X应用(Remote X to Linux)

X Window System

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上应该就出现一个图形的时钟啦。