最近在WIN XP上安装了Xmanager用做X服务器,在Ubuntu Server 9.10上设置了DISPLAY环境变量(使其=运行Xmanager的WIN XP的IP:0.0)结果Xmanager套件里的xstart可以通过SSH开启一个xterm窗口,但在Ubuntu的终端里直接运行xterm就报"Can not open display"。另外,在xstart里用telnet协议而非SSH时也无法开启xterm窗口。
到网上查了一堆资料也没有一个明确的解决办法。但是给我的启发是透过现在的表现可以得出这么一个结论:Xserver肯定已经正常运行了。xterm也能正常工作。那么用排除法可以推断是否是由于防火墙把通讯给拒绝了呢?我的Ubuntu下没有安装防火墙。WIN XP上运行了一个。于是进入防火墙设置里设定规则,开放来自Ubuntu Server IP的所有TCP和UDP端口。接下来再在Ubuntu终端里运行xterm,哈哈,一个并不怎么漂亮的窗口在WIN XP上打开了。再试着运行xstart里使用telnet协议的客户,这时也能够打开xterm窗口了。问题到此就算解决。
小结,当你确定在Linux上正确安装了xterm,设置好了DISPLAY环境变量。而且Xserver也正确安装了以后,如果运行xterm报Can not open display不妨先检查一下你的防火墙是否允许从客户端到X服务器的通讯。