在家裡的PC上用VMWare做了一個Oracle Enterprise Linux虛擬機器做資料庫,虛擬機器OEL沒啟用圖形介面,因此需要在PC上裝一個X Window Server才能使用GUI。
看Wiki系統地瞭解了一下X Window System。X Window System(常被簡稱為X11或X),是一套基於X display protocol的windowing system,X GUI環境的功能包括視窗的繪製、移動,以及與滑鼠、鍵盤等輸入裝置的互動。X 協議目前的版本為MIT在1987年9月制定的11版----這就是X11的來曆,最新版則是2008年9月發布的X11R7.4。
X採用C/S模型:一個X server 和多個應用程式(client)通訊。server接收client的請求繪製視窗,並將來自滑鼠、鍵盤等裝置的輸入傳遞給client。
初學X的使用者經常被描述如何遠程使用Linux GUI環境的文檔搞糊塗:Linux主機上的應用程式被稱為client,而使用者終端電腦被稱為server,看上去好像說反了。實際上,X是從程式結構而非使用者或硬體環境的角度來描述的,在使用者終端上工作的X server為應用程式提供服務,所以被看作server,而Linux主機上的應用程式接受服務,所以被看作client。
X server和client可以位於同一電腦上,例如在Linux主機上使用KDE等案頭環境就是這種模式。X server也可以通過同構網路、異構網路或Internet與client通訊。
X server與client之間的通訊是不加密的,這個問題可以通過SSH解決。SSH是Secure Shell的簡稱,SSH可以看作是通訊被加密壓縮版的telnet。我需要用到SSH的forwarding功能,當X server與client所在電腦都支援SSH協議時,X server與client之間不安全的TCP/IP串連可以轉送到(forwarding)二者之間建立的SSH串連上。
說了一堆概念,現在可以挽起袖子幹活了。Linux主機(A, IP: 192.168.1.201)和Windows客戶機(B, IP: 192.168.1.101)都已經裝好了,我要做的就是在 B 上安裝一個X server,一個SSH用戶端,在A上啟用SSH的X11 forwarding。
1 安裝配置B上的X server
X server我選擇的是Xming,這是一個免費的windows平台上的X server。需要安裝兩個組件,主程式和字型 Xming X server, Xming-6-9-0-31-setup.exe Xming Fonts, Xming-fonts-7-3-0-22-setup.exe
運行XLaunch配置Xming X server,將配置儲存為.xlaunch 檔案。使用預設設定即可。
Display 代表一套 I/O 裝置,包括顯示、滑鼠、鍵盤;Display Number 就是這套 I/O 裝置的代號;同時 Display Number 還決定了 Xming X server 的 TCP 通訊埠,連接埠號碼為 6000 + Display Number。Linux 主機上的應用程式通過此連接埠建立與 Xming X server 的串連。
將配置儲存為Xming.display.0.xlaunch。雙擊此檔案就能啟動X server,系統欄裡多了一個Xming的表徵圖。
2 安裝配置B上的SSH
SSH用戶端使用PuTTY,PuTTY是freeware+greenware,就一個exe檔案。
配置 Session:配置主機IP,串連方式為SSH
Connection\Data:儲存串連使用的使用者名稱
Connection\SSH\X11:Enable X11 Forwarding,X display Location 為 localhost:0,這裡的 0 就是配置 Xming X server 時指定的 Display Number。
儲存設定為 VSERVER01。
3 配置A上的SSH
要允許Linux主機上的SSH X轉寄,查看 /etc/ssh/sshd_config 檔案,加入以下一行,
X11Forwrding yes
至此配置完成。在B上使用PuTTY串連到A,輸入xclock &,可以看到X server工作的效果了。