Linux下的GUI圖形界面,是分為兩部分的。
一部分是X Server,負(fù)責(zé)處理鍵盤,鼠標(biāo),窗口消息,并接收X Client的請(qǐng)求把要顯示的東西顯示在屏幕上;
另一部分是X Client,所有的程序都是運(yùn)行在X client中,然后X Client向X server發(fā)送“嘿我要顯示一張有關(guān)閉按鈕的窗口”的請(qǐng)求,X Server處理后,控制我們的顯示器顯示相應(yīng)的“圖片”。
更多的知識(shí)可以查看這里:理解XWindow
X server和X client可以運(yùn)行在同一臺(tái)機(jī)器上,比如最常見的Ubuntu桌面版。當(dāng)然我們也可以在兩臺(tái)機(jī)器上分別運(yùn)行X Server和X Client。如果兩臺(tái)都是Linux系統(tǒng),那就很好辦了,因?yàn)閮蛇叾及惭b了X Server和X Client,只要把這臺(tái)機(jī)器(本機(jī))的X Server和遠(yuǎn)程機(jī)的X Client連接起來就好了。
不過,如果有一臺(tái)是Windows的話,也是有辦法的——
安一個(gè)X Server就好了:Xming X Server for Windows
下載安裝后運(yùn)行,托盤會(huì)顯示一個(gè)X形狀態(tài)的圖標(biāo),把鼠標(biāo)放上去會(huì)顯示Xming Server:0.0,意思是已經(jīng)運(yùn)行在本地的0.0端口。

有了X Server之后,我們就可以通過SSH連接到另一臺(tái)Linux機(jī)器,運(yùn)行GUI程序了:
1、首先,要開啟Linux上的sshd x11forwarding:
vi /etc/ssh/sshd_config
# 修改其中的轉(zhuǎn)發(fā)配置X11Forwarding為yes,如果沒有則添加下面一行
X11Forwarding yes
# 重啟sshd服務(wù)
sudo service sshd restart
2、然后,在Windows上通過SSH連接Linux
Windows上的SSH工具有不少,不過個(gè)人還是只推薦Git Bash里帶的SSH:Git Bash
下載安裝運(yùn)行Git Bash,啟動(dòng)后首先要配置一下環(huán)境變量DISPLAY:
export DISPLAY=localhost:0.0 # 0.0為剛剛托盤處顯示的本地X Server端口號(hào)
echo "export DISPLAY=localhost:0.0" >> ~/.bashrc
之后就可以通過SSH連接,運(yùn)行Linux上的GUI程序了。
SSH遠(yuǎn)程連接有3種模式:
ssh user@192.168.2.2 #默認(rèn)模式,如果ssh_config文件沒有修改過的,默認(rèn)就是disabled,即不能進(jìn)行X11轉(zhuǎn)發(fā)
ssh -X user@192.168.2.2 #通過untrusted模式進(jìn)行X11轉(zhuǎn)發(fā),連接不可信,大部分GUI操作會(huì)無法進(jìn)行
ssh -Y user@192.168.2.2 #通過trusted模式進(jìn)行X11轉(zhuǎn)發(fā),完全信任sshd服務(wù)器,可以對(duì)GUI進(jìn)行完全控制
顯示,應(yīng)該用ssh -Y模式。
連接上之后,就可以運(yùn)行GUID程序了,比如可以試試vbox,或者vmware,gvim也行
最后,雖然在Linux遠(yuǎn)程機(jī)上安裝一些Windows mstsc支持的遠(yuǎn)程桌面或者VNC也可以,但是效果和簡(jiǎn)易程度,都比不上X Window這種方法。