2007年11月20日 星期二

功能強大的遠端控制軟體 - (1) UltraVNC

34

(1) UltraVNC | (2) TeamViewer

(1) UltraVNC

軟體性質:Freeware (Open source)
軟體版本:1.0.9.6 (Release notes)
支援系統:Win All
軟體官網:Homepage
軟體下載:32-bit, 64-bit

測試版 1.0.9.6.1 Beta:32-bit, 64-bit

因為每次我老爸的電腦有問題都得大老遠開車去他那兒教他或解決問題,所以嘗試在他的電腦安裝了 UltraVNC 這個遠端控制軟體,覺得還蠻好用的,而且省去很多時間與麻煩。

UltraVNC 不僅速度快,而且 Client (主控端) 與 Server (被控端) 還可以互相傳檔案,另外它也有 Chat 功能,不過我是使用 Yahoo Messenger 的語音功能跟我老爸來做即時的溝通。



安裝與設定


(以下的安裝與設定是以電腦要作為 Server 被控端時的一些設定為主)

安裝主程式

UltraVNC 安裝程式包含兩個元件:
  • UltraVNC Server - Server 端 (被控端) 需安裝此。
  • UltraVNC Viewer - Client 端 (主控端) 需安裝此,用此來連線到被控端。

安裝精靈預設的選項是「Full installation」,也就是兩個都安裝。


Vista 的作業系統請勾選下載安裝 Vista 附加元件檔案:
  • SCHook.dll (若無此,螢幕更新顯示會變得很慢)
  • Cad.exe (讓主控端可傳送 Ctrl+Alt+Del 指令)


Windows 2000/XP/Vista 的作業系統請勾選下載安裝 Mirror Driver,它可減緩 CPU 的負載,並可使連線控制操作的速度更快更順暢!


這裡建議全部勾選,其中「Register UltraVNC Server as a system service」選項會把 UltraVNC Server 安裝成系統服務,每次開機時自動在背景執行。


安裝完成之後,會先彈出 Admin 屬性視窗,您必須先替 Server (被控端) 設定一組連入密碼,這是為了安全考量,以後 Client (主控端) 要連入時都需要輸入這組密碼才能連線。


安裝 Mirror Driver

再來安裝剛剛安裝時所勾選的 Mirror Driver,UltraVNC 剛剛只有下載,並沒有自動幫您安裝。

請開啟檔案總管,在 C:\Program Files\UltraVNC 目錄下有個 drivers.zip,請將它解壓縮,然後看您是什麼作業系統就到相對應的資料夾中執行 install.bat,然後 重新開機


重新開機後,您可以開啟 Windows 的「硬體裝置管理員」應該會看到顯示卡下多了個「mv video hook driver2」的驅動程式表示已正確安裝。


在 Windows 工作列通知區域的 VNC Server 圖示上按滑鼠右鍵選「Properties」,檢查是否已正確勾選「Video Hook Driver」。



至此,Server (被控端) 的所有安裝與基本設定已大致完成。

其他設定

以下是 Server (被控端) 其他的一些設定選項:



- 允許連線 (若不勾選,主控端就無法連線進來)。
- 連接埠設定:
  • Port - 主控端要連線進來時使用的 Port,若選擇「Auto」,則會使用預設的 Port,用 VNC Viewer (Main) 連線進來預設是 5900,用瀏覽器 (Http) 連線進來預設是 5800
  • Display - 除了 Port,也可以用 Display,例如若設為 18,則主控端連線進來時就需打 215.xxx.22.xxx:18。
Display 跟 Port 是互相關連的,Port = Display + 5900 (5800)
例如當您設了 Display = 21,Port 就會自動 + 21,此時除了可打 215.xxx.22.xxx:21 外,VNC Viewer 也可打 215.xxx.22.xxx:5921,瀏覽器可打 215.xxx.22.xxx:5821。

- 若想自己連自己做測試需勾此。
- 允許做檔案傳輸。
- 設定當主控端連線進來時的自動回應 (Refuse-自動拒絕,Accept-自動同意)。如果勾選,當主控端連線進來時就會彈出警告視窗並在設定的時間 (預設是 10 秒) 後自動回應。


- 主控端 VNC Viewer 視窗中的工具列上有個 按鈕可以讓被控端的滑鼠、鍵盤暫時失去作用,同時也可以讓被控端的螢幕變黑。若您不想螢幕同時變黑則不要勾選。
- 若勾選,主控端只能瀏覽不能控制。

當滑鼠移到 Windows 工作列通知區域的 VNC Server 圖示上時可以顯示這台電腦的 IP 位址,您可以把它告訴主控端的朋友,這樣他才有辦法連線進來。


VNC Server 圖示平常是 ,當有人連線進來時會顯示成

如果您想中斷與所有主控端的連線可以在圖示上按滑鼠右鍵選「Kill All Clients」。


如果您想查看目前跟您連線的主控端,可以在圖示上按滑鼠右鍵選「List All Clients」,在彈出的視窗中還可以選擇跟某個主控端中斷連線。



Client (主控端) 連線到 Server (被控端) 的方法


A. 當主控端與被控端屬於不同區域網路

被控端不是位於 Router 後方時


如果被控端不是位於 Router、IP 分享器或防火牆 (這裡是指硬體防火牆,不是防火牆軟體) 後方,也就是擁有實體 IP,主控端可以找到它,則主控端可以很容易的直接連到被控端。

1. 執行 VNC Viewer,在「VNC Server」欄位輸入被控端的 IP:DisplayIP:Port (若被控端沒有特別指定 Port,則預設的 5900 Port 可以省略不打),然後按 [Connect] 開始連線。


2. 輸入被控端所設定的連入密碼。


連線後,您就可以看到被控端的桌面顯示在 VNC Viewer 中了。現在您就可以操控被控端的電腦就像自己在該電腦前一樣的操控它。


如果被控端螢幕的解析度大小跟您的不同,VNC Viewer 可能會無法全部顯示而產生捲軸,這時可以按左上角的功能表將 VNC Viewer 設定成「自動調整大小」。

PS.「自動調整大小」與「全螢幕」似乎無法同時使用。


被控端位於 Router 後方時


如果被控端是位於 Router 後方,由於它的位址是虛擬 IP (例如 192.168.1.2) 不是實體 IP,主控端無法找到它,則被控端必須先用瀏覽器進入 Router 的設定頁面 (看您 Router 或 IP 分享器的說明手冊所指定的網址,例如 http://192.168.1.1),在 Virtual Server 頁面設定 VNC Server 所指定的 Port (例如預設的 5900 和 5800),這樣主控端才有辦法穿越 Router 連到被控端。

如果被控端的人不會設定,還有另一個方法,就是主控端使用 Listen Mode 讓被控端反向跟主控端做連線:

1. 主控端在「開始」功能表執行「Run UltraVNC Viewer (Listen Mode)」。

PS. Listen Mode 預設是使用 5500 Port ,若您想變更 Port,可以修改捷徑的內容,在 /listen 後面空一格輸入想變更的 Port,

例如: "C:\Program Files\UltraVnc\vncviewer.exe" /listen 5551


2. 此時 VNC Viewer 會處於 listen (聽取) 狀態,等候被控端連線過來。

當 VNC Viewer 處於 listen 狀態時,您在通知區域也可以看到像 VNC Server 一樣的眼睛圖示,將滑鼠移到圖示上可以看到目前所設定的 Port (預設是 5500),請將您的 IP 和 Port 告訴被控端的朋友。


被控端的朋友只要如下操作,就可以跟您做連線。



主控端與被控端都位於 Router 後方時


如果主控端與被控端都位於 Router 後方,雙方都是虛擬 IP,可以安裝 UltraVNC 官網所提供 NAT2NAT Add-on 或是像 SoftEther (虛擬網卡) 之類的 VPN 軟體,不過我沒有環境可以測試,所以這裡暫時不做介紹。


B. 當主控端與被控端屬於相同區域網路


如果主控端與被控端屬於相同的區域網路 (例如家中兩台電腦),主控端只要直接輸入另一台電腦的虛擬 IP 即可進行連線。



檔案傳輸


若要進行檔案傳輸,請按 VNC Viewer 視窗中上方工具列的 按鈕,然後照下圖來操作即可。



加密連線


若您擔心使用 UltraVNC 連線的過程中會被駭客擷取資料,在安裝目錄中有提供一個 MSRC4Plugin 可以幫 UltraVNC 在傳輸時做連線加密的動作,下面是設定步驟:

(主控端)

1. 先開啟 VNC Viewer 產生 rc4.key (產生後的檔案會放在 C:\Program Files\UltraVnc 目錄中)。


2. 將剛剛產生的 rc4.key 傳到被控端的 C:\Program Files\UltraVnc 目錄中 (先不要勾選「Use DSMPlugin」否則會無法連線,因被控端尚未使用加密連線)。


(被控端)

在「Addmin Properties」視窗中勾選「Use: MSRC4Plugin-122.dsm」。


下次主控端連線到被控端時請勾選「Use DSMPlugin "MSRC4Plugin-122.dsm"」(第一次連線時記得要勾選「Save connection settings as default」讓它變成預設)。



解除安裝 UltraVNC


當想解除安裝 UltraVnc 時,若您有將 VNC Server 安裝成 Windows 系統服務,請先執行下面的 1. 2. 步驟:

1. 在「開始」功能表執行「Stop WinVNC Service」停止服務。


2. 在「開始」功能表執行「Remove WinVNC Service」移除服務。


3. 開啟檔案總管,在 C:\Program Files\UltraVNC 目錄下找到之前安裝 Mirror Driver 的資料夾,執行 uninstall.bat 將 Mirror Driver 移除。


上述步驟完成後,就可以到「控制台」的「新增或移除程式」中將 UltraCNC 移除 (要重新啟動電腦)。


後記


主控端除了用 VNC Viewer 來與被控端進行連線,還可以像以前 IBM 有一款軟體 Desktop On-Call 一樣,直接使用支援 Java 的瀏覽器來與被控端進行連線。這個方法有個好處就是可以跨平台來操控遠端電腦,但如果被控端有設定使用上面所說的加密連線時,此方法就不適用。

方法很簡單,不需安裝任何軟體,只要開啟瀏覽器 (瀏覽器需安裝 Java Plugin),在網址列輸入 http://IP:Port (例如: http://219.xxx.155.xxx:5800) 即可。

PS. 若被控端 VNC Server 沒有特別指定 Port 的話,則 http: 會使用預設的 Port 5800



其他若有我敘述不足的地方,請各位可以參考 線上說明文件

34 意見:

Jackbin您一點也不懶,這一份教學總算讓我了解如何用遠端控制了,以前一直亂摸索,今天感謝您貴人,搞懂了。

可以把您父親的工作列改一下,就不會自動藏起來了:
http://hotimg15.fotki.com/a/122_126/52_127/-.jpg

在下喜愛知道許許多多的免費軟體,都大部份都不會用,或不習慣。

看到這文章時,真是寫的很棒,圖文並茂,找了二、三年才見到如此詳細的文章(真的,因為一般人是用有「品牌」的),因為在下一直至今都不大敢用!.^。

不知道可不可以使用在「自家的區網」,不然一開機就自動分享,滿可怕的~~~

To qqaazzzxxx,

Thanks!


To Linuxice,

謝謝你提供的方法。

我在上方做了一些補充,若你有使用 Router 或 IP 分享器讓家裡的多台電腦可同時上網的話,這些電腦的 IP 都是虛擬 IP,基本上外網是無法直接連到你的 VNC Server 的。

你可以在開始功能表「執行」輸入 cmd,開啟命令提示字元,然後輸入 ipconfig,應該可以看到 IP 顯示為 192.168.xxx.xxx (虛擬 IP)。自家區網的電腦只要輸入該電腦的虛擬 IP 就可讓 VNC 互連。

請問一下
假如Server (被控端)是虛擬的IP

而Client (主控端)則是浮動IP

那我可以按照[連線的方法 1.]去做就可以了嗎
還是要改用TeamViewer呢?

我大部分想在家裡的浮動IP控制浮動IP的電腦
想說可不可行呢

主控端是實體的固定或浮動 IP,或是虛擬 IP 都沒差,只要你能連到 Internet 就可以,因為是由主控端去連被控端。主要問題是在被控端。(使用連線方法 1 沒錯)

被控端若是浮動 IP 的話,因為隨時會變動,今天是 219.xxx.xxx.20,明天可能是 219.xxx.xxx.22,不像固定 IP 你可以記住它的 IP 隨時連線過去。因此你可能需要去申請動態轉址服務 (要用那台電腦上網去申請,因為它需要那台電腦的 IP),例如:

https://www.dyndns.com/
http://www.no-ip.com/

申請好後會給你個專屬網址代替該台電腦的 IP,並要你安裝它們的軟體常駐工作列,當 IP 變動時它給你的專屬網址會自動對應上新的 IP,而你用 UltraVNC 連線到該台電腦時輸入這個專屬網址即可。

另外我也想到個方法,你可以去找找看有無軟體可以常駐工作列監視電腦的 IP,一有變動會自動 Email 給你,這樣你就可以隨時知道該台電腦即時的 IP,這樣或許也行。

當然,以你的情況,用 TeamViewer 是最簡單的了,沒有上述的問題。

J站長大人您好,小弟想請問一下,
小弟安裝好之後,使用上一切都很正常。
但是當我不想用的時候,我將 右下角
的 VNC 圖示按右鍵選關閉,過沒幾秒他又會自動重新啟動 !? 就算是用 工作管理員
關閉,他還是 一直跑出來,讓我覺得很無言....請問該怎麼在不需要用時關閉它 ?

那是因為你有將 VNC Server 安裝成 Windows 服務,安裝成服務有個好處,就是當你在跟遠端進行連線時,遠端電腦若因任何原因而導致關閉了 VNC Server,它會自動重新啟動。

當你不要用時,只要從「開始功能表 -> 程式集 -> UltraVNC -> UltraVNC Server -> Stop WinVNC Service」停止服務即可。

當然,你還是可以選擇移除服務的,只要從「開始功能表 -> 程式集 -> UltraVNC -> UltraVNC Server -> Remove WinVNC Service」即可,不過當您跟遠端連線時 VNC Server 被不正常關閉的話,它就不會自動重新啟動了,此時若遠端電腦那頭沒人,你就無法再連線了。

非常感謝 J站長大人 的回答 !
不過小弟預覽了一下網路上的眾多文章
看到許多類似功能的軟體,不知道 J大推薦用哪一個呢 ? TeamViewer 看起來似乎不錯,但是看下面的意見後,發現他很容易被判定為商業用途 !!?
目前小弟只用過 UltraVNC,不但方便,且直接用 預覽器(IE)就可以連線控制,很方便,唯一缺點就是我是 浮動IP,比較不方便。
感謝 J大 萬忙之中抽空回答敝人的笨問題,感謝。

我個人是比較喜歡 TeamViewer,因為它的界面友好、不須對方 IP...等等比較方便。

關於使用時會被判定商業用途的問題,我自己這邊可以提供的建議就是「當你在控制對方電腦的同時,不要進行 TeamViewer 的檔案傳輸」(反之相同),應該被判定商業用途的機率會很小,至少我自己是如此。

另外你說你的 IP 是浮動 IP,對 UltraVNC 來說,如果你是主控端就沒什麼差,如果你是要做被空端比較麻煩些,每次別人連到你的電腦都需重新確認你的 IP。而對於 TeamViewer 則都沒這個問題,因為它是用 ID 來連線,它們主機會自動將 IP 對應到給你們雙方的 ID 上。

期待有更詳細的被控端在虛擬IP~可是無法更改router的情況下,主控端連線方法介紹~

Jackbin寫的文章相當清楚易懂,謝謝.
提及有關virtual server設定問題,如果要透過viewer來監控IP分享器下虛擬ip的pc,其virtual server的port設定可以直接設定為5801嗎?(如port 5801->192.168.0.101,port 5802->192.168.0.102...,如此可直接監控多台虛擬ip)

是那樣的沒錯。

這邊 有一篇不錯的相關文章你可以參考一下~

另外補充一下,通常我們申請網路服務大概分兩種,一種是 ISP 給你一個固定 IP,另一種是 ISP 給你多個浮動 IP。

前者我們就可利用 IP 分享器讓多台電腦同時分享這一個 IP,須設 virtual server 的 port 別人才能連到這些電腦;後者的話可以利用 HUB (集線器),因都是實體 IP 就不需要設定 virtual server。

我有一倨問題想問呢...
我用了teamviewer建立好連線了
但當我用電腦a打lan ip:192.168.0.3去連b的時候
就是連不到,但打id卻能實在的連線
反之我用b去打ip連a的時候很快就連到了-_-...請問有何解決之法?..還有正常來說lanip一定比打id快 事實卻是如此嗎?.?

打 IP 的方式只有當勾選 "Accept incoming LAN connections" 且兩邊同在一個區域網路內才有效。

例如:

a: 192.168.1.2
b: 192.168.1.3

如果 a 無法連 b,檢查一下 b 電腦的防火牆是否有設定好,可能是被防火牆檔了下來。

至於打 IP 的方式當然會比打 ID 連線快,因為它不須透過 internet。

Jackbin您好
拜讀您的文章後,讓我收穫不少!
只是我的VNC出了一點問題,想請教您這位大師。
我有架設一台主機,使用VNC連線會出現以下訊息,移除重新裝也會出現,訊息如下:
Possible causes:
-You've forgotten to select a DSMPlugin and the Server uses a DSMPlugin
-Viewer and Server are not compatible(they use different RFB protocoles)
訊息中有提到的DSM,我也讓Server跟Viewer一致,但結果還是一樣。
不知道您是否也有遇過相同狀況?

我嘗試了許多方法,無法出現你所指的 "Viewer and Server are not compatible(they use different RFB protocoles)" 訊息,有沒有可能是你的 Server 端與 Client 端所使用的 UltraVNC 版本不同所導致 (如果兩邊 DSMPlugin 確定有勾選,且 rc4.key 都相同)。

謝謝您如此快速回覆!
我也不知道怎麼會這樣,最妙的是我把SERVER上的VNC移除後,用Viewer連線竟然出現一樣的訊息。但是理論上應該會出現無法連線才對,我在想是否因為前一版本的 DSMPlugin作祟,沒有移除乾淨!還是說有其他的狀況?

關於加密的部分

我照做了可是還是不行

他會說忘了設定 MSRC4Plugin

產生的KEY是要兩邊都放嗎?

當被控端不是真實ip時還有個方法可以用:
就是到http://www.uvnc.com/pchelpware/creator/index.html
去做一個UltraVnc SC,
那裡面包括主程式及控制端的ip及port,也可以設定加密連線;

控制端執行listen模式,把剛才做出來的執行檔,丟給被控端執行,就可以由對方主動連過來,而且不用先在對方電腦上安裝vnc程式.

我自己都是這樣用的,事先做好一次,臨時有朋友同學電腦有問題就丟檔案給對方執行,不需
要和對方做太多額外的溝通.

"微風飄淡 提到...
關於加密的部分
我照做了可是還是不行
他會說忘了設定 MSRC4Plugin
產生的KEY是要兩邊都放嗎?"

是的,控制端及被控端都要放,

我安裝的時候沒有選到Server

結果現在開機的時候不會自動Run UltraVNC

可以去哪裡改呢???

安裝時沒安裝 server 的話你需要重新安裝,因你沒安裝 server 開機要執行什麼呢?如果說有安裝 server,只是沒將 server 安裝成 service (系統服務),則可以到開始功能表去將它安裝成 service。

我發現無法在操作時,任意的關閉控制端的螢幕? 測試了好幾次 是不是ultravnc不能這樣設定 還是操作端要安裝什麼驅動?

J大您好:
拜讀您的blog已久,看了這篇文章有些問題想請教。
1.我現在較常使用的是TeamViewer這個軟體,我發現它似乎較vnc簡單易用,不知J大是否能以"連線穩定度" "安全性" "CPU佔有率"等方面來比較VNC及TeamViewer這兩軟體間的差異呢?

2.本篇文章首張圖片裡的被控端,其佈景程式為哪一種啊?我是說Theme哦!不是Wallpaper~

謝謝您的回答m(_ _)m

1. 連線穩定度、安全性、CPU佔有率我沒有深入研究,但這兩個軟體對於這些方面都有一定的水準,就方便性而言我會推薦 TeamViewer,唯一的遺憾是 TeamViewer 未註冊的免費版一次只允許一個連線 session,不能像 UVNC 一樣同時控制多台電腦。

2. 那個佈景主題是 Luna Element

請教一下

在網路上看到說可以把設定檔存成.vnc檔

可是我怎找不到存檔的按鈕在哪?...

難道只能把它存為預設的之後再抓來用嗎?

你好!

ultraVNC做齊了所有setup, 想連接公司的PC, 但仍然是 "You've forgotten to select a DSMPlugin and the Server uses a DSMPlugin"
請高人指教?

TT上

請問此套軟體 能否 多人同時登入同一台電腦? 操作時不會互相干擾? 只有2人同時登入既可.煩請高人指點 

作者已經移除這則留言。
作者已經移除這則留言。

請問我安裝好後一直無法連線不知道怎麼解決
出現的錯誤訊息為:
This server does not havw a valid password enabled. Until a password is set,incoming connections cannot be accepted.

你好
請問使用此套ultravnc軟體
被控制端是否有任何更動之軌跡

太感謝了,解決我們的疑惑~~~

當我移除ultra vnc之後.不久它又跑回來控制我的電腦,並且惡意竄改我的雌資料,請問我該如何應對不勝感激.

張貼留言