關於NAT穿透的一些理解


     前些天在知乎回答了一個智能家居遠程控制方面的問題,感覺自己對無公網IP地址環境下的穿透問題有些了解。昨天同事拿來一個網絡攝像頭,安裝在ADSL路由器上網的環境下,可以遠程查看視頻,效果還挺不錯,問我廠家是不是也在網上放了一台服務器做端口轉發。

     咋看之下好像通過端口轉發也可以做,因為通過手機查看視頻流所需的碼率並不高,一台2M帶寬的公網服務器並行處理10條視頻流沒多大問題,但相比智能家居遠程控制僅需不到1K/S的流量,查看視頻所需流量還是挺大的,在公網放置一台服務器做端口轉發似乎並不是理想方案。有沒有更好的方案呢,比如NAT穿透?

     先了解一下NAT的原理,目前共有四種NAT實現方式:

  1. Full cone NAT可以將內網主機的某個端口開放到外部,任何互聯網上訪問者都可以訪問這個端口。
  2. Restricted cone NAT是對訪問者的IP進行限制。
  3. Port-Restricted cone NAT是對訪問者的IP和端口進行限制。
  4. Symmetric cone NAT最特殊,內網主機向外發起的每個連接,開放出去的端口都不一樣。

  有的文章分析:通訊雙方只要不存在Symmetric cone NAT,就能實現NAT穿透,實現通訊雙方的點對點連接。但對於一個具體的設備,如何實現NAT穿透呢?需要再想想。

  另外,我混淆了路由模式和NAT模式的概念:

  1. 家用路由器(我用的TP-Link)一般工作在路由模式下,並非NAT。
  2. 家用路由器跟NAT相關的設置是在“轉發規則”中,一般有下面幾種:
    1. 虛擬服務器。設置一條Full cone NAT規則,任何外部主機通過任何端口都能訪問內網主機的某個端口。
    2. 特殊應用程序。設置一條Restricted cone NAT規則,特定IP的主機可以訪問內網主機多個端口。
    3. DMZ主機。設置多條Full cone NAT規則,將內部主機的所有服務開放到外網,但是切斷該主機到內網的連接。

  這只是個人的理解,需要更多的知識佐證,可能還需要閱讀一下開源路由器的代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM