Xmanager Enterprise 是一个优秀的 X 窗口服务器。Linux 服务器作为一个X 客户端把资料发给 Xmanager,由它负责解释并且作图。所以,这就带来一个问题,Linux 本机登录时已经安装的字体,但是 X 窗口服务器可能不认识。
解决方案是在 X 窗口服务器上安装对应的字体(厂家提供,不好找),或者是在 Linux 服务器(也就是 X 客户端)建立一个 Font Server。这样当 X 服务 器碰到解释不了的字体,就会到 Font Server 去查询并下载,然后显示出来。
用 root 登陆,RH菜单--->系统设置--->登录屏幕--->XDMCP,选"启用XDMCP"。你可以用 Broadcast 方式去搜索 XDMCP,也可以用 Passive 接受主机数据。
考虑到 Redhat AS3_U6 作为服务器,通常都启动了防火墙,那么我们首先要把一些端口打开。xdmcp 是 UDP 177,x11 是 TCP 6000,xfs 是 TCP 7100。
Vnc 一般是用 TCP 5900,但在 Linux 里从 5901 开始,每加一个端口递增。
如果上面的文字过于简略导致不便理解,请参考下面这篇文章,作者:laptop。service iptables stop
service iptables status
![]()
less /etc/rc.d/init.d/iptables
<-----
IPTABLES=iptables
IPTABLES_DATA=/etc/sysconfig/$IPTABLES
IPTABLES_CONFIG=/etc/sysconfig/$...{IPTABLES}-config
----->
![]()
vi /etc/sysconfig/iptables
<-----
# Firewall configuration written by redhat-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7778 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7777 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7100 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6000 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 177 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
----->
![]()
vi /etc/services ...{用vi的"/数字"找到端口号附近的区域,填加下列信息}
<-----
oratns 1521/tcp # Oracle listener
......
vnc+0 5900/tcp # VNC Server Port + 0
vnc+1 5901/tcp # VNC Server Port + 1
vnc+2 5902/tcp # VNC Server Port + 2
......
oraSSL 4443/tcp # Oracle Apache 1.3.22
......
oraweb 7777/tcp # Oracle Apache 1.3.22
orassl 7778/tcp # Oracle Apache 1.3.22
----->
![]()
service iptables start
service iptables status
<-----
Chain RH-Firewall-1-INPUT (2 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere icmp any
ACCEPT ipv6-crypt-- anywhere anywhere
ACCEPT ipv6-auth-- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:orassl
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:oraweb
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:xfs
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:x11
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:vnc+2
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:vnc+1
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:vnc+0
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:oraSSL
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:oratns
ACCEPT udp -- anywhere anywhere state NEW udp dpt:xdmcp
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:smtp
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:telnet
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ftp
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
----->
![]()
cat /etc/rc.d/init.d/xfs | grep -e config -e daemon
<-----
# chkconfig: 2345 90 10
# config: /etc/X11/fs/config
daemon xfs -droppriv -daemon
----->
![]()
vi /etc/rc.d/init.d/xfs
...{备注:一些资料说Unix默认是 -1,最好强制指定为 7100 断绝隐患}
<-----
daemon xfs -droppriv -daemon -port 7100
----->
![]()
vi /etc/X11/fs/config
...{备注:默认是关闭 TCP,要用时在 no-listen 前面加注解号,重启}
<-----
# don't listen to TCP ports by default for security reasons
# no-listen = tcp
----->
![]()
netstat -na | grep :7100
lsof -P | grep -e *:7100
![]()
xfsinfo -server 192.168.100.60:7100
<-----
name of server: 192.168.100.60:7100
version number: 2
vendor string: The XFree86 Project (experimental version)
vendor release number: 6600
maximum request size: 8192 longwords (32768 bytes)
number of catalogues: 1
all
Number of alternate servers: 0
number of extensions: 0
----->
![]()
vi /etc/X11/XF86Config
<-----
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/share/fonts/zh_CN/TrueType"
FontPath "/usr/X11R6/lib/X11/fonts/ttf-zh"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/CID"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "unix/:7100"
FontPath "tcp/192.168.100.60:7100"
----->
http://www.linuxforum.net/doc/xdmcp.html
基于XDMCP的远程X
重起 Linux 后,以上修改就生效了。在 WinXp 里可以用广播方式和被动方式 去访问主机。运行 Xmanager - Broadcast,在 Broadcast Chooser 对话框里会显示所找到的 XDMCP 主机,rebeca[192.168.100.60][Linux 2.4.21-37.EL],选中你的服务器并点 connect。如果没有连接成功,请检查是否本机具备两个或以上 IP,这时弹出一个 IP Selector,请选择跟主机同一个网段的 IP。连接成功后,RH菜单--->系统工具--->终端,点右键,选"将该启动器加入面板"。
没有配置 Xconfig,直接在 Xmanager 里安装 Oracle,执行 ./runInstaller出现报错信息,并显示大量的“口口”,说明 Linux 的字体在 Xman 里无效。Font specified in font.properties not found [-tlc-song-medium-r-normal--*-%d-*-*-c-*-gbk-0]
所以必须 Xconfig,把 XDMCP sample 设置成 Default,然后找 Font 栏目, Add Font Server,填写 Linux 主机 IP,例如 192.168.100.60,端口 7100。添加成功后,显示 tcp/192.168.100.60:7100。这时候再安装就有中文。
运行 Xmanager - Passive,用 SecureCRT 登录 Linux 主机 192.168.100.60。xhost +192.168.100.70
结果:192.168.100.70 being added to access control list,于是这个IP可以作为 X 窗口的主机了。权限变动后 Xmanager 会自动关闭,请重新运行。
export DISPLAY=192.168.100.70:0.0
执行 ./runInstaller 就发现安装界面跑到你的屏幕了,Xconfig 同上所述。
