我最近换了工作,办公用机一律是微软windows。我,作为一个Linux忠实用户,实在是非常非常不习惯。于是,在领到机器的第一天,我就在windows上装上了cygwin。后来又申请了
Linux服务器,只是服务器在“遥远”的机房里。
这些日子,我“玩”出了几种自windows以图形方式连接Linux服务器的方法。
方法一,用cgwin的X server:
1) 安装cygwin的xorg-xserver软件包
2) 修改Linux server的lightdm/gdm/kdm/xdm配置文件,enable xdmcp
3) 运行 “X -query xxx.xxx.xxx.xxx”,xxx是Linux server的ip地址
按说这样就可以,但是在我的环境中还不行,我颇花了些时间排查,最后用wireshark分析了两台机器的网络数据,最后发现在第3步之前还需要:
2.5)(我的windows电脑有两块网卡)在Windows电脑上运行控制面板,将没有连接网线的网卡禁用。
这是因为,X query时会将本机ip地址发出,cygwin的X将没有连接网线的网卡的一个内部缺省ip也发出了,而且还排在了前面,Linux服务器那边只尝试和第一个ip(也就是那个windows上没有连网线的网卡的ip),结果自然是连不上。
方法二,用xrdp:
rdp(Remote Desktop Protocol)是微软发布的一个协议。Windows系统上进行远程桌面连接就是走这个协议。只要有协议,不论公开与否,开源界总会有实现!
1) 在Linux服务器上安装软件包“xrdp”,并且启动相应的服务。
2) 在Windows机器上:开始->所有程序->-附件>远程连接,输入相应的linux server的ip地址
方法三,用ssh:
1)在windows机器上,安装ssh软件包
2)将/etc/ssh/ssh_config拷贝到~/.ssh/config
3)修改~/.ssh/config,将下面两项打开:
ForwardX11 no
ForwardX11Trusted yes
4)在Linux server上修改/etc/ssh/sshd_config,将下面这项打开:
X11Forwarding yes
5)在Linux server上重启sshd服务
6)在windows机器上运行“startx /usr/bin/twm”,startx好像属于xinit软件包,twm属于twm软件包,没有的话得安装
7)在windows的X server中开启一个xterm,在其中ssh linux服务器,在其中再启动窗口,显示的是Linux服务器中的内容,而窗口在Windows这里。
方法四将是使用vnc,可惜我还没有试,以后补吧。