在Windows中使用Putty+Xming在终端运行Linux GUI程序

作者:聂勇 欢迎转载,请保留作者信息并说明文章来源!

之前写过一篇《用X Window在终端运行GUI程序和远程操作Linux桌面》,讲的是在Windows下使用XManager来在终端命令行上运行SUSE Linux上的GUI程序,但XManager是商业付费软件,如果是在商业环境(公司)使用破解版存在法律风险。
一直使用Kitty / Putty作为SSH客户端来登陆Linux服务器执行指令,但有时要执行一些GUI程序又得切换屏幕打开Linux的图形界面,总是感觉这样不太顺畅,于是就想到了x Windows这个利器。通过Google和Stackflow找到了一些免费的替代XManager的软件,最后选择Xming。

环境

  • WindowsXP (安装Xming, Putty)
  • CentOS 6 / RedHat 6 (X11 Forward)

一、安装Xming

1、从http://sourceforge.net/projects/xming/下载Xming 6.9版本。
2、双击”Xming-6-9-0-31-setup.exe”开始安装。
安装欢迎页

定义Xming的安装路径:
定义Xming的安装路径

设置是否安装Putty做为SSH客户端。因为要与已有的Kitty / Putty结合使用,所以选择”Don’t install an SSH client”:
选择是否安装Putty做为SSH客户端
定义开始菜单目录名

选择关联.xlaunch文件:
选择关联.xlaunch文件
开始安装

如果勾选”Launch Xming”会默认Display Number为0。
安装完成

二、配置Kitty / Putty

Kitty为例,选择一个Session,选择菜单项:Connection -> SSH -> X11,勾选Enable X11 forwarding,然后在X display location中填入”127.0.0.1:0”。
配置Kitty

三、配置Linux服务器

1、以root账号登陆,编辑SSH服务器的配置文件。

1
vi /etc/ssh/sshd_config

开启TCP转发和X11转发:

1
2
AllowTcpForwarding yes
X11Forwarding yes

四、验证

1、打开Kitty的Session,在终端登陆Linux。

2、设置环境变量DISPLAY。

1
2
DISPLAY=192.168.56.101:0.0
export DISPLAY

说明:

  • 192.168.56.101为Windows服务器的IP地址。
  • 0.0表示Xming的display number为0,如果display number设置成其他值需保持一致。

3、在命令行执行指令启动eclipse:

1
eclipse

eclipse启运完成后,在Windows的窗口会显示如下的界面:
eclipse界面

FAQ

1、无法连接Xming

如果在终端执行指令启动eclipse时报错:
Xlib: connection to “192.168.56.101:0.0” refused by server
Xlib: No protocol specified

说明Xming的权限设置有问题,打开Xming的日志:
Xming菜单

会发现有类似client 4 rejected From ip 192.168.56.102的提示信息:
查看Xming日志

2、在桌面上打开Xming的快捷方式,在目标的命令行中加上-ac的参数:
设置Xming启动参数

2、无法输入中文

1、在启动应用程序之前,在终端的命令行中执行如下命令:
我目前用的输入法是scim:

1
export GTK_IM_MODULE=scim

如果用的输入法是gcin,则执行如下命令:

1
export GTK_IM_MODULE=gcin

2、在打开的应用程序中就可以输入中文了:
eclipse中输入中文