n2n內網穿透神器
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
網上關于n2n的介紹還是很少的,本人在安裝的過程中也遇到過不少的問題,折騰了大半天才解決了,這里記錄下以便需要的同學可以參考。 n2n用途假如想實現遠程訪問,訪問家里的路由、電腦,等等設備,最簡單的方式就是采用端口映射(端口轉發),但是很多情況下我們沒有路由的權限,這樣根本就沒有辦法訪問私網,因為受網關的保護。 本想通過sock請求來發送的,但是實現起來必須是內網主動發起,不能外網主動發起,可以保持長連接來通信,但是還是有很多的局限性。放棄采用。 考慮過VPN,但是VPN配置還是比較復雜,不能做到隨意使用,放棄。 這時N2N進入了我的視野,其實就是P2P協議,及點對點協議,實現UDP打洞。 原理圖如下: N2N分兩個部分,一個是supernode,一個是edge。supernode即中心節點,edge 即邊緣節點,supernode的作用就是對兩個edge節點進行連接的作用,和p2p服務器作用一樣,且n2n數據是不走supernode的,所以數據很安全。 配置N2N注意:不要使用yum或者apt-get還安裝n2n(下面待會兒說) 我一開始也是 使用yum install n2n安裝的,結果中間發生很多問題。 這里盡量采用源碼包編譯安裝。 在supernode和edge 節點運行下面命令
如果沒有安裝svn的話執行下面的命令
啟用N2N啟用中心節點(supernode)
8080即開發給邊緣節點的端口 分享個我自己的supernode 地址:n2n.phpbulo.com 端口:8080 協議版本:n2n_v1 如果采用我的中心節點,您只需要在兩臺機器上面運行edge ,這樣兩臺內網機器直接互通,由于數據不走中心節點,所以數據很安全。(不保證節點能一直運行下去) example: edge -d n2n0 -c mynetwork -k encryptme -a 10.1.12.1 -l n2n.phpbulo.com:8080 >/dev/null & 啟用邊緣節點(edge)在需要加入n2n的機器上執行
-a 參數 是指指定一個IP給邊緣節點 如果出現如下信息表示成功了 您還可以再次加入其他edge節點,這樣節點與節點可以互相ping 通 再次在第2節點上運行如下命令 如果成功的話 在 第一個節點上面進行ping第二個節點是能互相通的。 以上命令也可以放入后臺執行 supernode -l 8080 >/dev/null & edge -d n2n0 -c mynetwork -k encryptme -a 10.1.12.1 -l 1.2.3.4:8080 >/dev/null & 1.2.3.4是指中心節點ip 運行 supernode 的時候可以帶上-v 參數,來查看報錯情況。 關于可能遇到的錯誤問:我有一個中心節點 一個邊緣節點,加入之后為什么中心節點不能ping通邊緣節點的ip? 答:這中情況下一般是中心節點沒有去運行邊緣節點。需要在中心節點加入edge邊緣節點,參考上面的邊緣節點運行方式,加入后重新ping試試。 若出現如下錯誤
很可能能你用的是yum 和編譯的造成的版本不一致造成的,這也是 一開始為什強調不要使用yum 和復制兩個文件到/usr/sbin的原因,盡量使用make 后的命令make 后會在 當前目錄下面生產supernode,edge文件把它覆蓋到系統變量目錄下面。 參考上面編譯源碼部分。 本教程基于N2N_V1版本,安裝V2版本同樣適用,但是v1和v2是不能相通的,也就是說必須運行同一版本。 n2n還有很多客戶端,比如android和win客戶端,安卓下面可以到googleplay上下載。相當簡單這里不多介紹。 n2n作為端口穿透確實是個神器,后面我可以用我的樹莓派來做只能家居了,很期待。 該文章在 2017/5/30 15:50:06 編輯過 |
關鍵字查詢
相關文章
正在查詢... |