2012年3月16日 星期五

安裝 VNC 遠端連線-x11vnc

之前有使用過 NoMachine NX 的遠端桌面軟體作遙控,
可是覺得想試試 Ubuntu 原生種的軟體看看能不能操作,
可是試過之後發現還是使用 x11vnc 比較方便些,
因為它能直接從套件庫下載安裝使用,
不必再去某些網站找尋新版的程式作更新。


一.首先是安裝 x11vnc:
lancer@lancer-desktop:~$ sudo apt-get install x11vnc

二.接著是設定遠端登入時的登入密碼,
設定完後會將 pass 檔案存至 /etc。
(不特別指定的話,會產生 passwd 檔案並放置在 ~/.vnc 底下)
lancer@lancer-desktop:~$ sudo x11vnc -storepasswd /etc/x11vnc.pass
Enter VNC password:
Verify password:
Write password to /etc/x11vnc.pass?  [y]/n y
Password written to: /etc/x11vnc.pass

三.使用 gedit 或 vi 在 /etc/init 目錄下建立一個名為 x11vnc.conf 的文件,
目的是讓 x11vnc 在開機時能自動啟動。
lancer@lancer-desktop:~$ sudo gedit /etc/init/x11vnc.conf
or
lancer@lancer-desktop:~$ sudo vi /etc/init/x11vnc.conf

四.將以下內容填入後儲存就完成了系統啟動指令:
start on login-session-start


script
x11vnc -display :0 -auth /var/run/gdm/root/:0 -forever -bg -o /var/log/x11vnc.log -rfbauth /etc/x11vnc.pass -rfbport 5990
end script
script 的內容主要是與 x11vnc 有關,
利用 x11vnc -h 可查詢其意義,
這裡做個簡易的解釋:
-display :0
-auth /var/run/gdm/root/:0 設定 X 權限檔變成文件,相當於啟動前將 XAUTHORITY 環境變數設定成文件
-forever 持續不斷監聽連入的用戶端,直到用戶端斷線。
-bg 當螢幕畫面建立後進入背景執行。
-o /var/log/x11vnc.log 建立 x11vnc.log 檔於 /var/log 目錄下。
-rfbauth /etc/x11vnc.pass 使用 RFB 協定認證檔,也是之前存放於 /etc 下的 x11vnc.pass 檔
-rfbport 5990 設定 RFB 協定的 TCP 埠,預設是 5900,我使用 5990,之後會在防火牆開 port 時用到

五.還要設定防火牆,
我是使用 gufw 及 Firestarter 當作防火牆前端,
對 iptables 熟練的人也能直接使用指令開啟對應的通訊埠。
gufw 設定 TCP 通訊埠:
 

Firestarter 設定 TCP 通訊埠:

iptables 規則:
lancer@lancer-desktop:~$ sudo iptables -I INPUT -p tcp --dport 5990 -j ACCEPT
插入一條規則(-I),
允許(-j ACCEPT)TCP(-p tcp)的 5990 埠(--dport 5990)到 iptables 的 INPUT 規則鏈中。

光是這樣還不夠,
如果重開機的話,
剛剛所新增的這條 iptables 命令就會恢復回預設值,
所以還得將它「存檔」並利用「還原」的方法讓它再次啟用:
lancer@lancer-desktop:~$ sudo iptables-save > firewall.sh
這裡是將 iptables 的存檔檔名存成 firewall.sh,並儲存至 ~/ 目錄下。

緊接著以文字編輯器(gedit)或 vi 編輯 /etc 目錄下的 rc.local 檔案:
lancer@lancer-desktop:~$ sudo gedit /etc/rc.local
or
lancer@lancer-desktop:~$ sudo vi /etc/rc.local

在裡面新增一行 iptables 的還原命令。
iptables-restore < /home/lancer/firewall.sh

再來就是重開機,
讓它能夠執行系統啟動時啟動 x11vnc。

六.最後就是開啟「遠端桌面檢視器」進行遠端控制。
(Gnome3 Classic:網際網路→遠端桌面檢視器)

遠端桌面檢視器開啟後點下連線並設定對方的 IP 及剛剛所設定的連接 Port,
像我的 IP 是「192.168.1.204」、Port 是「5990」,
在主機欄位就填入「192.168.1.204:5990」後按下「連線」。

成功的話緊接著就會跳出「需求 VNC 驗證」的請求,
輸入後再看是不要記住憑證,
最後按下「驗證」就能開啟遠端桌面了!

現在即可開啟我另一台的桌面了!

4 則留言:

  1. 感謝您如此詳盡的教學啊,言語實在難以表達敝人在下我的感激之意. 這問題困擾我幾個星期了..一直在該死的vncserver 上打轉, 直到找到x11vnc 相關的解決方法, 最後找到您的部落格..再加以調整終究才得以解決問題. 感激不盡..

    我也是ubuntu 的愛用者,希望有機會跟您多多交流
    mr.idarfan@gmail.com

    回覆刪除
    回覆
    1. 小弟只是簡易的開啟這些服務功能,
      比較難的我還摸不到(如SSL加密之類的)。

      除了 VNC 之外,
      另外還有如 xrdp 的遠端連線功能(能用 Windows 的「遠端桌面連線」進行連線)!


      在此謝謝您的指教!

      刪除