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