2009年3月24日 星期二

P2P端口映射UPnP功能和使用詳解 (BT/迅雷/Emule/GGbox)加速

在網上看了很多關於如何打開UPnP功能的文章,發現竟然沒有一篇文章能把整個UPnP的設置過程介紹全的,都是只講到一部分。所以決定寫篇文章,至少把設置UPnP的整體思路理一下,因為涉及到不同的操作系統以及不同型號的ADSL Modem,所以此文也不可能面面俱到,但至少提供一個較為完整的思路。因水平有限,不到之處還請高手指點。

  一、UPnP的概念:

  以下是微軟官方網站對UPnP的解釋:

  問:什麼是 UPnP?

  答:通用即插即用 (UPnP) 是一種用於 PC 機和智能設備(或儀器)的常見對等網絡連接的體系結構,尤其是在家庭中。UPnP 以 Internet 標準和技術(例如 TCP/IP、HTTP 和 XML)為基礎,使這樣的設備彼此可自動連接和協同工作,從而使網絡(尤其是家庭網絡)對更多的人成為可能。

  問:UPnP 對消費者意味著什麼?

  答:簡單、更多選擇和更新穎的體驗。包含通用即插即用技術的網絡產品只需實際連到網絡上,即可開始正常工作。實際上,UPnP 可以和任何網絡媒體技術(有線或無線)協同使用。舉例來說,這包括:Category 5 以太網電纜、Wi-Fi 或 802.11B 無線網絡、IEEE 1394("Firewire")、電話線網絡或電源線網絡。當這些設備與 PC 互連時,用戶即可充分利用各種具有創新性的服務和應用程序。

  以下是BC官方網站對UPnP的解釋:

  UPnP(Universal Plug and Play),通用即插即用,是一組協議的統稱,不能簡單理解為UPnP=「自動端口映射」。在BitComet下載中,UPnP包含了2層意思:

  1、對於一台內網電腦,BitComet的UPnP功能可以使網關或路由器的NAT模塊做自動端口映射,將BitComet監聽的端口從網關或路由器映射到內網電腦上。

  2、網關或路由器的網絡防火牆模塊開始對Internet上其他電腦開放這個端口。

  我倒是覺得微軟的解釋過於理論化,適合寫入牛津大詞典;而BC官方網站的解釋過於含蓄晦澀。其實對於一般的使用者來講,簡單的把UPnP理解為自動端口映射就可以了。它就是一種基於TCP/IP協議的,針對設備彼此間的通訊而制訂的新的Internet協議,目的就是希望未來所有聯入Internet 中的設備能夠不受網關阻礙的相互通信。

  二、哪些用戶需要用UPnP功能?

  1、只有在需要使用一些支持UPnP功能的P2P軟件的時候,如BT、電騾eMule、MSN等,我們才需要考慮UPnP這個東東。如果你根本就不用這些軟件,僅僅是上網瀏覽的話,下文就沒必要看了;

  2、如果你需要使用這些P2P軟件,但你是外網用戶,那麼下文也可以不看了,因為你不需要做什麼UPnP就可以正常使用這些P2P軟件了;

  3、如果你是內網用戶,但你已經手動為這些P2P軟件進行了端口映射,如在使用BC下載時,在「用戶列表」中已經看到「遠程」,或者是使用電騾eMule連接服務器成功後,已經顯示為高ID,那麼下文也可以不看了。

  但需要注意的是,手動做的端口映射只是針對某個P2P軟件起作用,如果再使用新的P2P軟件的話,仍然需要針對新的P2P軟件做相應的端口映射才可以;

  4、如果你是內網用戶,需要使用這些P2P軟件,而且並未進行手動端口映射,比如在使用BC進行下載時,「用戶列表」中只有「本地」而沒有「遠程」,在使用電騾eMule的時候,顯示的也是低ID,那麼此時我們才需要考慮端口映射的問題!

  這時我們可以有兩種選擇:

  1、進行手動端口映射。

  2、打開UPnP功能,進行自動端口映射,也就是我們下面所講的內容;

  小結:UPnP自動端口映射的目的:

  以BC為例,手動端口映射和自動UPnP端口映射都是為了獲得遠程連接,因此凡是在「用戶列表」裡看見了「遠程」的用戶,都不需要進行端口映射或是UPnP!UPnP和端口映射只需要取其一,他們相當於達到目的的2種不同的方法而已。

  因此如果你的系統或者硬件不支持UPnP功能,大可不必傷心,按照第3點的鏈接文章中的方法手動做端口映射就可以了,效果是一樣的;

  三、實現UPnP必須滿足哪些條件:

  必須同時滿足3個條件:

  1、Modem必須支持UPnP功能:是否具備此功能可查閱說明書或者直接諮詢廠家。一般來講,Modem還必須同時支持路由功能,除非你配備了單獨的路由器;

  2、操作系統的支持:文章開頭提到的那篇介紹UPnP的文章中,提到只有windows XP系統才支持UPnP功能,但微軟的官方網站聲稱從Windows Me開始就已經支持UPnP功能了。但Windows Me這個操作系統我也沒有用過,大家可以自行測試;

  3、軟件必須支持UPnP功能:如BC、電騾eMule、MSN等軟件都支持UPnP功能;

  順便提一下,目前的幾款視訊聊天軟件各有其特殊性,象Netmeeting、QQ等就不支持UPnP功能,文章的最後會詳細闡述一下這幾款視頻聊天軟件的特殊性,此處不深入探討,一筆帶過;

  注意:以上3個條件必須同時滿足,缺一不可,否則你只能考慮進行手動端口映射了;

  四、如何打開UPnP功能

  如果已經滿足了上述的3個條件,那麼我們就一步一步的講解一下到底如何才能打開UPnP功能;

  1、在Modem中打開UPnP功能。

  不同型號的Modem設置界面和方法略有不同,如有些是在下拉菜單中選擇Enable,但基本的原理都是一樣的;

  有些文章提到,此時要把所有橋接的eoa連接都刪除掉,我倒是認為大可不必如此。因為目前只有你的PPPOE連接是有效的,其它的幾個eoa所對應的 VPI和VCI根本就是無效的,所以沒有必要刪除。但是否有些型號的Modem會比較特殊也很難講,因此建議此時暫不刪除,把全部設置進行完後,如果還是沒有打開UPnP,再嘗試把eoa刪除掉;

  當然,設置完後,一定要保存並重啟Modem;

  2、在操作系統中打開UPnP功能:

  如果你使用的是XP SP2系統,則首先進入:控制面板->添加或刪除程序->添加/刪除windows組件中,在「網絡服務」中勾選「UPnP用戶界面」。

  確定後,系統會自動安裝相應的組件,可能會提示你插入安裝光盤,總之按照提示操作完成即可;

  接著打開Windows自帶的防火牆,在「例外」選項卡中勾選「UPnP框架」。

  其實有個更加簡單的方法可以同時完成以上兩步:雙擊桌面上的網上鄰居(注意是鼠標左鍵雙擊,不是右鍵查看屬性),然後點擊「顯示聯網的UPnP設備的圖標」,系統會自動安裝UPnP組件以及在防火牆中打開UPnP框架,實際上就是一次性完成上面兩步的工作;

  如果你使用的是XP SP1系統,那麼在「windows組件」中顯示的是「通用即插即用」,而不是「UPnP用戶界面」,選擇此項即可。

  而且XP SP1系統的防火牆並沒有UPnP框架的選項,需要手動進行端口添加,另一教程對此做了闡述,現引用過來:

  【請在防火牆設置中,點「高級」,然後自行添加如下兩個端口:TCP端口類型,端口號為:2869,UDP端口類型,端口號為:1900 。由於你使用了NAT網關,所以你應該設置的是您連接到該網關的網卡的防火牆。而且網關內部均為內網,所以開啟這兩個端口,不會對系統造成安全隱患(除非你的NAT網關被繞過,否則外部連接無法檢測到該端口)。】

以上的防火牆設置只是針對windows自帶的防火牆,如果你安裝了其它的防火牆,必須在該防火牆中打開UPnP框架;

  3、在windows中打開相應的UPnP服務:

  進入「控制面板->管理工具->服務」,找到SSDP Discovery Service和Universal Plug and Play Device Host兩項服務。

  右擊相應的服務項,選擇屬性,啟動這兩項服務。

  做完以上工作後,如果操作正確,我們就可以在「網絡連接」中看到多了一項網關,這表明添加UPnP已經成功;

  4、打開P2P軟件中的UPnP功能:

  以BC和電騾eMule為例,相應的設置選項。

  到此為止,我們打開UPnP的工作才真正結束。

  以BC為例,成功添加UPnP功能後,在「全局日誌」中我們會看到類似下面的幾行:

Windows XP UPnP Status: Found WAN Connection Device[Linksys Inc.] [http://www.linksys.com/]
Windows XP UPnP Status: WAN IP: 218.30.*.*
Windows XP UPnP Status: Port Mapping Existed!

  此時我們用BC進行下載,如果用戶列表中有「遠程」,或者用電騾eMule連接服務器後顯示為高ID,那麼就大功告成了!

  五、對幾款視頻聊天軟件的簡單對比說明:

  目前常用的視頻聊天軟件主要有MSN、Netmeeting和QQ等,這3款軟件中只有MSN支持UPnP功能,而且發現在MSN的選項中並沒有設置 UPnP功能的選項,也就是說MSN始終是默認打開UPnP功能的。另外,MSN似乎也沒有像BC或者電騾eMule那樣提供可以手動進行端口映射的端口號,因此只要沒有打開UPnP功能,MSN的功能就會受限,比如不能進行語音通信等;

  而Netmeeting雖然不支持UPnP功能,但是卻提供了可以進行手動進行端口映射的端口號,如果你是內網用戶,只要手動進行1503和1720兩個端口的映射即可正常使用所有音視頻功能;

  QQ是用UDP的方式,通過UDP服務器來實現音視頻以及文件的傳輸,跟UPnP沒有什麼關係,所以無論內網還是外網,使用QQ都暢行無阻,只是傳輸的速率要慢些;

  說實話,本人平時也不常上網聊天,所以對這些聊天軟件瞭解也不深,如果有說得不對的地方,歡迎高手指點。