前言
一般遠程就直接用windows自帶的,配置好動態IP花生殼,在任何地方都可以連回機子。最近項目里遇到這么個情況,需要快速接入遠程控制功能,客戶機的IP每次都會變,並且都是在外網,這樣,就必須使用帶有中轉服務器的遠程控制,網上查了一下有TightVNC和UltraVNC兩個比較好的開源遠程控制項目。
可惜TightVNC目前中轉服務器端還在開發,下個版本可能才有。
所以果斷選擇使用UltraVNC!
介紹
VNC(Virtual Network Computing),為一種使用RFB協定的屏幕畫面分享及遠端操作軟件。此軟件借由網絡,可傳送鍵盤與鼠標的動作及即時的屏幕畫面。
VNC與操作系統無關,因此可跨平台使用,例如可用Windows連線到某Linux的電腦,反之亦同。甚至在沒有安裝用戶端程式的電腦中,只要有支援JAVA的瀏覽器,也可使用。
UltraVNC:加入了TightVNC的部份程式及加強效能的圖型映射驅動程式,並結合Active Directory及NTLM的帳號密碼認證,但僅有Windows版本。
UltraVNC包括客戶端與服務端,請求協助的一方稱為被協助方,或者(遠程協助)服務端;響應的一方稱這里命名被協助方為Cv,而協助方命名為Cs,中轉服務器為Sr。為協助方,或者(遠程協助)客戶端,
Repeater為中轉服務器Sr,當Server連接Viewer是,通過Sr相互轉發數據。對Cs的監控端口為5500,Cv的監控端口為5900,當然5500、5900都是vnc的默認端口,這樣會引起其他一些VNC軟件的沖突,所以Cs和Cv監控端口都需要修改。
原理
一般連接模式包括兩種
1) 協助用戶Cv和請求協助用戶Cs1在同一局域網內,這時Cv與Cs1可以直接通過IP地址進行TCP通信;
2) 協助用戶Cv和請求協助用戶Cs2不在同一局域網內,這時Cv與Cs2只能通過中轉服務器相互轉發數據進行通信。
其中2)中repeater包括兩種模式,如圖所示,第一種是repeater在內網,第二種是repeater在外網,我們主要介紹第二種。
官方文檔也介紹的比較詳細了,相關信息可以直接查看。
實現
統一下載地址:http://www.uvnc.com/downloads/ultravnc/111-download-ultravnc-1205.html
注意:實現過程中都使用默配置
1、找一台公網服務器安裝運行repeater
2、在客戶機安裝UltraVNC,設置為windows服務,使其每次開機都啟動。
3、配置客戶機
輸入:-id:54 -autoreconnect -connect 12.34.56.78
其中54改為你自己設置的機子編號,12.34.56.78改為repeater所在的地址,這樣,每次啟動都會運行命令,使用設置的id號連接repeater了。
當然也可以手動連接,右鍵托盤圖標->add new client
4、使用客戶端通過repeater直接連接服務端。
這樣,就可以直接在(客戶端)協助方自己通過設置好的id,訪問(服務端)被協助方了,再也不用擔心ip的問題。
但是這也有一個問題:
repeater其實也相當於一個服務端,只不過自動接受了客戶端發過來的連接請求,當真正使用客戶端通過repeater連接服務端的時候,其實就相當於通過repeater這個服務端回連客戶端,這個過程就不需要登錄密碼,所以如果其他人知道了repeater的地址和ID號,那么也可以連接上客戶端了,安全性有待提高!
自從用了TeamViewer,其他遠程工具都是浮雲……