Windows上的 X Server連線工具 - Xming X Server(xming)
小勳同學在學校因為課業的關係需要用到Linux的Server及該Server上面的圖形介面軟體,傳統上Linux有提供一個遠端桌面的設定選項,只要透過VNC viewer軟體就可以連進Linux系統工作,但是一次只能一個人連線,只要有兩個人以上連線就會發生問題,但偏偏只有一台機器要寫作業的同學都要連進去呼叫該圖形介面的軟體來編寫作業。回到家裡後小勳同學只有Windows的機器,但又很想連到學校的伺服器工作,於是他就上 google 問問看是否有解決的方式?
通常Windows使用者連入Linux的機器,使用的 ssh client 是 putty 這套免費方便的 windows ssh/telnet 遠端連線軟體。只要有Linux主機的IP、帳號及密碼就可以登入該Linux主機。
(註:putty對於非英文語系的使用者及初學者的設定都不是很友善。於是有網友piaip以Putty 為基礎,修正並完整的支援亞洲地區的多國語系字元並以 pietty 的名稱釋出此軟體。但此套修改過後把ssh X11 forwarding功能拿掉,所以不適用在此範例中。)
請在Host Name輸入主機名稱,點選Open即可登入連線
第一次登入Linux主機需要記住Server’s host key 在本機的 cache 內,所以請回答「是(Y)」然後就會進入第登入的畫面。
輸入你的帳號,及密碼即可登入Linux主機。
但這只是文字介面的登入,當然不可能滿足小勳同學的需求,於是再繼續 google 看看要如何啟動圖形介面的Linux程式,並將他顯示在Windows的機器上面。
於是他找到了一套免費的X Server for Windows工具 Xming X Server (http://sourceforge.net/projects/xming/ ),他目前最後的的版本 6.9.0.31。目前在sf.net上面以不再更新版本,最新的版本在該開發者的站台上,有支援 Windows7 64bit。但目前免費的版本已經可以滿足小勳同學的需求了。Xming下載頁面:http://sourceforge.net/projects/xming/files/Xming/6.9.0.31/
在使用X Server 工具前,先瞭解Linux 的 X Server 的通訊協定,簡單的來說其中
* X-client 負責程式的運作
* X-Server 負責畫面的顯示
所以要遠端連線到Linux系統,其實就是把Linux的圖形畫面,丟到一台X-Server上
Linux只要有安裝圖形介面幾乎就是支援X-Server了,但是在Windows 上面只能透過,第三方的程式來當成X Server 提供畫面的顯示。剛剛下載的 Xming程式安裝完成後他會自動執行一支 XLaunch程式,他就是Windows上面的X Server。
選單中的 XLaunch位置
請一直按下一步即可完成設定,並產生啟動圖是在右下角。
執行後會在右下角產生如上述的畫面並顯示Xming Server:0.0 ,這其實是告訴我們他開了一個 Display port 在 localhost:0
我們要配合修改 putty client設定的 ssh X11 forwarding 設定指到 localhost:0 ,這樣在連線到遠端的時候,如果圖形介面的顯示需求,就導到本地端這裡顯示,設定畫面如下:
接下來在重新連入 Linux Server 並且執行 xterm 這隻X的圖形介面終端機來測試看看,畫面是否會出現在本機。
「xterm &」指的是把 xterm這隻程式丟到背景執行,才會不卡在終端機前景畫面,錯誤訊息請暫時先忽略。
Xterm 在Windows上面透過 Xming Server呈現的畫面。
測試另外一隻程式 gedit ,這是Linux上面的文字編輯器。
輸入 「gedit &」
本機Window透過 Xming Server產生的 gedit文字編輯器畫面,測試輸入英文正常。X Server 產生時會產生較大的流量,如果你的頻寬不大請花點時間等待。
X Server在本機上跑得port是TCP 6000 ,你可以使用dos模式,輸入「netstat –a」觀看連線的情形。如果你的家裡有防火牆或是分享器,請記得開啟虛擬伺服器的功能,並把 port 6000 指到你所在的 IP ,否則會無法建立連線。
以 Corega BAR SD-TW 的設定如下,其他NAT route 依此類推。
虛擬伺服器設定的範例 192.168.123.117 為此案例 IP
但每次啟動Xming都要這樣設定很不方便有沒有可以偷懶的方式可以很方便的啟動??其實在XLaunch中提供有 plink or putty的遠端呼叫程式設定介面,只要你知道遠端的程式位址,設定檔設定好就可以直接啟動遠端的程式了,不用在透過自行設定 putty 的 X11 Forwarding 功能。
底下以啟動 Gnome桌面管理程式「/usr/bin/gnome-session」為設定範例,帳號為 mtchang 。
選擇如何顯示 Xming 在 Windows 的螢幕上,預設使用 Multiple windows即可,Display number 則是本機的對應port,如果你需要使用xming連線到不同的Linux Server請將 Display number 分開以免衝突無法顯示.
選擇Start a program啟動 Putty or Plink程式來呼叫遠端程式
Start program 指的是連線到遠端機器後要啟動的命令,如果可以建議加上絕對路徑。
常用的路徑有:
/usr/bin/xterm X的終端機(測試用,也可用來啟動其他程式)。
/usr/bin/gnome-session Gnome桌面的啟動程式,執行後會在Windows呈現整各Linux桌面。
Run Remote請選取 Using Putty(Plink.exe) 這個選項可以啟動遠端程式,但是不會帶出終端機視窗。
Using SSH(ssh.exe) 你必須要安裝 openssh for windows 才會有這個指令。
With compression 可以將傳輸過程壓縮,加快連線速度。
Connect to computer: 連線的Linux 遠端主機,這裡用的範例為「linux.jangmt.com」。
Login as user: 登入主機的帳號,這裡用的範例為「mtchang」。
Password: 密碼,可以自動幫你輸入,如果你有使用Putty pageant請留空白。
這是外加選項,可以直接下一步跳過。
如果你是公用電腦請不要把 Inclide Putty Password as insecure clear text 打勾,因為他會把密碼以明碼方式存放在一個文字檔內。最後請選擇 Save configuration 將此設定存為文字檔案(xml格式)。
這裡以放在桌面上為例,點選可以直接啟動遠端程式並帶圖形介面顯示。
啟動了 Gnome 桌面程式在 Windows 系統上。
上面是Gnome選單,下面是Windows選單…..真是詭異的畫面。但已經可以在家裡連線到遠端Linux桌面了,且即使有多位同學連線也不會發生搶滑鼠的現象。
----
隔天到學校後…….
小勳同學看來已經可以連線到學校作功課了,於是很高興告訴他的同學小愛,但是他的同學小愛不會設定,請小勳同學當各好人教教她。小勳同學想說設定這麼複雜於是繼續 google 看是否有更簡單的方式可以達到這樣的功能,讓小愛同學可以自行設定。於是他找到了一套 Xshell 及 Xmanager 的商業軟體,Xshell 是一套 ssh/telnet/sftp/Rlogin/Serial support的通訊軟體在個人及學校使用上是免費的,Xmanager 則是一套PC上的 X Server軟體,可以試用 30 天。
下載頁面:
http://www.netsarang.com/download/main.html
當你同時安裝了 Xshell 及 Xmanager 後,預設會把 Xshell 的 X11 Forwarding 設定轉到 Xmanager並由他提供圖形顯示的服務 ,於是很方便的就可以啟動Linux上面的圖形介面了。
至於這套軟體的使用,因為小勳覺得不能再宅在電腦前,所以先去打球了。
Byebye….
參考資料:
http://blog.jangmt.com/2009/11/xming.html
http://www.straightrunning.com/XmingNotes/trouble.php
http://ntu.csie.org/~piaip/pietty/
http://www.cs.nctu.edu.tw/help/xming.html