2012年9月20日 星期四

用較短的命令,加快建立由 SSH 重導之 VNC 連線

前文“開啟個人化的 VNC 服務,供「遠端桌面」連線”提到的啟動 VNC 方法,可能會遇到幾個問題:
  • 須由系統管理員開啟「防火牆」上的埠,供 VNC 使用。
  • 命令加上參數太長了,不是記不住,就是容易打錯字。
  • 太長的命令列,完整打完需要點時間,不是很方便。
解決上面三個問題,可以用前文提過的兩個做法來解決。

一、創造新的「短命令」取代「超長命令」

這裏所言的「超長命令」,實際上是參數太長,為了使某些命令的結果更完美,看著說明,將一個個參數加入命令列。最後的結果,是一長串也算不完幾個字的命令。
    要解決上述的第二、三個問題,可以將啟動個人化 VNC 服務的超長命令,用「短命令」取而代之(參考前文 “將常用的「命令 + 參數」合成「新命令」,方便執行”)。以前文中開啟個人化 VNC 服務為例。將原有命令以 myvnc 取代,
[SiB@Core-i7 ~]$ echo "vncserver :2605 -name \"[SiB @ Core-i7]\" -geometry 1280x950 -screen scrn 1280x950x24" > myvncs
[SiB@Core-i7 ~]$ chmod a+x myvncs
第一列命令是將一長串命令,存入文字檔 myvnc。第二列命令則將文字檔設定為具有執行能力。

註:第一列命令中的兩個『 \" 』是讓寫入 myvnc 的字串中的 -name 後的標題名稱仍保有「雙引號」,才不會使 vncserver 誤認『 @ Core-i7]』是另一個參數,而造成錯誤。

二、利用 SSH 重導,不用開「防火牆」的埠

「防火牆」是現今電腦系統的必備防護機制,為了讓「遠端電腦」可直接以 VNC 連線服務,必須在「防火牆」上開個埠不可,加個埠、減個埠都要勞煩系統管理者幫你調整。說起來,還真是不方便。
    在前一陣子的發文中,有提過可以利用 SSH 的重導功能,使用原來的 SSH 埠,從「遠端電腦」藉由 SSH 的通道,連入 VNC 服務。如果,還要開好幾個埠,那個命令也是「超長命令」。那就再把這個「超長命令」用一個「新命令」取代,假設:SSH 的埠號為 5321,VNC 服務所在那部電腦的「網路位址」為 111.22.33.44 (此為虛構網址),將原有命令以 myssh4vnc 取代,
[SiB@Celeron-D ~]$ echo "ssh 111.22.33.44 -p 5321 -l SiB -L 8888:127.0.0.1:8505" > myssh4vnc
[SiB@Celeron-D ~]$ chmod a+x myssh4vnc
第一列命令是將一長串命令,存入文字檔 myssh4vnc。第二列命令則將文字檔設定為具有執行能力。

三、使用 SSH 通道做 VNC 連線

使用 SSH 通道做 VNC 連線,也可以用短的「新命令」取代,
[SiB@Celeron-D ~]$ echo "vncviewer 127.0.0.1:8888 -NoJPEG" > myvncv
[SiB@Celeron-D ~]$ chmod a+x myvncv
第一列命令是將一長串命令,存入文字檔 myvncv。第二列命令則將文字檔設定為具有執行能力。

注意:上面的例子中,合成的「新命令」分屬兩部電腦。執行時,也分別在兩部電腦中。

已測試版本:

  • Fedora: 14, 17

沒有留言:

張貼留言

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)