close

 

其實上班會遇到很多狀況,而上班的樂趣也是在處理這些狀況(個人感受),不過如果因為這些問題而延誤到下班時間,甚至影響到我們的休閒時段,那就一點都不樂了。

為了因應各種狀況,所以前人們發明了各種技巧,懂得運用技巧。會讓你在工作上更一帆風順;下面我們來談談筆者在實際的工作中,遇到的一些狀況與技巧。

 

開啟遠端Linux的圖形介面程式

筆者曾經遇到的一個環境是像這樣子的:

首先解釋一下上方的環境:簡單的說,我們的目的地是機器C,只不過要連到機器C之前,要先連到機器A,再連到機器B,最後才能連到機器C。不過現在有一個問題:機器B不是Linux系統,而是Windows系統。

在機器A與機器B的連線需透過「遠端桌面」的方式來連線,所以我們要在機器A的Linux系統下rdesktop(遠端桌面)指令,而rdesktop會開啟一個圖形介面的視窗,讓我們可以連到機器B的Windows系統。

 

假設我們先透過Putty之類的連線,連到機器A後,再下rdesktop指令時,正常回應如下圖:

它會回覆我們「ERROR: Failed to open display:」,代表你不能用這種方式開啟GUI界面。

為了解決這個問題,最直覺的辦法,就是我們到機器A這一端也是利用遠端桌面來連線,所以我們必須在Linux系統的機器A,開啟可讓遠端桌面連入的程式;透過遠端桌面連到機器A後,再下指令連到機器B;此時,因為我們已經透過遠端桌面連到機器A了,所以在連線機器B時,可以正常開啟畫面,如下圖。

這是很直覺的解法,不過因為遠端桌面的控制方式是將全部桌面的內容都傳送回本機,所以傳輸量會比單純利用文字傳輸的Putty要來得大。

如果仔細回顧問題的話,我們能可以發現,雖然無法避免機器A到機器B這一段的遠端桌面連線(因為Windows系統的關係),不過本機到機器A的遠端桌面連線,只是為了解決在Putty中無法開啟GUI界面的問題;這個問題真的只能這樣解決嗎?答案當然是否定的,下方讓我們來試著解決這個問題吧。

下列的步驟是在Windows系統操作的,因為在此種特殊環境,筆者只有在本機是Windows系統的情況下遇到過,至於Linux base的系統,我可以肯定有類似的解決方式,但因為筆者沒有遇到過,所以沒有特別花時間去研究。

下列步驟適用Windows系統:

先明確一下我們的目的:透過Putty的文字介面工具,開啟機器A上的「遠端桌面」程式並連線到機器B。

準備工具:

  1. Putty

  2. 安裝XMing (https://sourceforge.net/projects/xming/files/latest/download)

步驟:

  1. 安裝並開啟XMing程式。

啟動圖示: 

啟動成功後在右下角可以看到 ,代表啟動成功。

 

  1. 開啟Putty連線視窗。

  2. 進入Connection→SSH→X11後

    1. 勾選 Enable X11 forwarding

    2. 在 X display location中輸入 localhost:0(參考下圖)

  1. 進行連線。

  2. 登入成功後,執行rdesktop程式,即可開啟GUI視窗。

由上圖可以看到從Putty上並沒有「ERROR: Failed to open display:」,因為透過XMing,成功的開啟遠端的GUI程式了。

結論

這個技巧主要是用來開啟Linux系統,需要GUI畫面的程式,除了上述的遠端桌面程式外,還有像 Firefox之類的,我們也可以利過這種方式,透過開啟遠端的Firefox,來瀏灠在防火牆內的各個網站。

其實上述的環境有一個特點,因為我們的機器A連到機器B是有固定的IP和Port,所以不一定要透過XMing,也可以利用跳板來達成,變成由本機環境直接開啟「遠端桌面」程式,連到機器B。

不過如果我們的目的不是有固定IP的,那又該怎麼處理呢?下一篇就讓我們來討論這個問題吧。

arrow
arrow

    JAVA Programmer 發表在 痞客邦 留言(0) 人氣()