关于Linux跨网络运行X Window程序
xhost +
这个命令将允许别的用户启动的图形程序将图形显示在当前屏幕上.
在2台Linux机器之间, 如果设置服务器端配置文件/etc/ssh/sshd_config中包含
X11Forwarding no
客户端配置文件/etc/ssh/ssh_config包含
ForwardX11 yes
则从客户端ssh到服务器端后会自动设置DISPLAY环境变量, 允许在服务器端执行的图形程序将图形显示在客户端上. 在服务器上查看环境变量显示如下(这个结果不同的时候并不相同)
DISPLAY=localhost:10.0
在客户机上用netstat -lnp可以看到有程序*了6010端口
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 4827/1
如 果希望允许远程机器上的图形程序将图形显示在本地机器的Xserver上, 除了要设置远端机器的DISPLAY环境变量以外, 还需要设置本地机器的Xserver*相应的TCP端口. 而现在的Linux系统出于安全的考虑, 默认情况下不再*TCP端口. 可通过修改/etc/X11/xinit/xserverrc文件, 将
exec /usr/bin/X11/X -dpi 100 -nolisten tcp
修改为
exec /usr/bin/X11/X -dpi 100
允许在直接使用startx启动图形时启动对TCP端口的*.
修改/etc/kde3/kdm/kdmrc, 将
ServerArgsLocal=-nolisten tcp
修改为
ServerArgsLocal=
允许kdm作为显示管理器时, 启动会话时*相应的TCP端口.
修改/etc/gdm/gdm.conf, 在[Security]一节增加
DisallowTCP=false
或者在登陆窗口选择Options -> Configure Login Manager...的Security页面, 取消Deny TCP connections to Xserver, 允许gdm作为显示管理器时, 启动会话时*相应的TCP端口.
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论