LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

樹(shù)莓派通過(guò)n2n實(shí)現(xiàn)內(nèi)網(wǎng)穿透

admin
2017年5月30日 16:2 本文熱度 8133

背景

由于我將要把一臺(tái)樹(shù)莓派放在學(xué)校內(nèi)網(wǎng)掛校內(nèi)的 PT ,并且這臺(tái)樹(shù)莓派又是通過(guò)路由器接入校園網(wǎng)的,那這樣問(wèn)題就來(lái)了。

假如我不在宿舍,但是我又想連上我的樹(shù)莓派看看電影下載完了沒(méi)有,那么我是沒(méi)有辦法連接上我的樹(shù)莓派的。

如果用路由器進(jìn)行端口映射的話,那么我必須在校園網(wǎng)的網(wǎng)絡(luò)環(huán)境之中,并且我得知道我路由器的 IP ,由于校園網(wǎng)使用 DHCP 動(dòng)態(tài)獲取IP地址,因此我很難知道我路由器的IP。

如果我在校外的話,那么就基本上沒(méi)有什么方法可以訪問(wèn)到我的樹(shù)莓派了。

經(jīng)過(guò)一輪折騰,我發(fā)現(xiàn)了 n2n 這個(gè)工具。

簡(jiǎn)介

以下摘自維基百科并由本人進(jìn)行人工翻譯。

n2n 是一個(gè)開(kāi)放源代碼的2層跨越3層的VPN程序,該程序利用了點(diǎn)對(duì)點(diǎn)的架構(gòu)來(lái)處理網(wǎng)絡(luò)間的成員關(guān)系和路由。

不像大多數(shù) VPN 程序那樣, n2n 可以連接位于 NAT 路由器后面的計(jì)算機(jī)。這些連接在雙方計(jì)算機(jī)都能連接的第三方計(jì)算機(jī)的幫助下建立起來(lái)。這臺(tái)第三方的計(jì)算機(jī),我們稱之為supernode,他可以為 NAT 的計(jì)算機(jī)之間傳輸信息。

這是一個(gè)免費(fèi)的開(kāi)源軟件,以GNU General Public License v3協(xié)議開(kāi)源。

準(zhǔn)備

由于我們需要自己自建整個(gè) n2n ,因此我們需要一臺(tái)有公網(wǎng)固定 IP 地址的服務(wù)器來(lái)充當(dāng)supernode的角色

剛好,前幾天買了一年阿里云的學(xué)生機(jī),正愁不知道做什么東西比較好,現(xiàn)在終于能派上用場(chǎng)了。

環(huán)境

Supernode:Debian 8.3

Edge:Raspbian 2015.05.05

安裝

如果使用apt-get或者yum進(jìn)行安裝的,由于軟件庫(kù)的版本不同,因此可能會(huì)出現(xiàn)不兼容的問(wèn)題。

n2n 有兩種協(xié)議,一種是v1協(xié)議,另一種是v2協(xié)議,兩種是不兼容的。

因此,我們最好使用編譯安裝,一開(kāi)始我還擔(dān)心我的樹(shù)莓派的小 CPU 編譯不出來(lái),結(jié)果還挺快的!

Ubuntu / Debian 系列

sudo apt-get install subversion build-essential libssl-dev

CentOS 系列

sudo yum install subversion gcc-c   openssl-devel

不管你是什么系統(tǒng),下面的代碼都是一樣的,我們使用v2協(xié)議。

svn co https://svn.ntop.org/svn/ntop/trunk/n2n
cd n2n/n2n_v2
make
sudo make install 

如果不出問(wèn)題的話,我們就安裝成功了。

配置

Supernode 配置

Supernode 并不需要 root 權(quán)限就可以運(yùn)行,不過(guò)如果你是想使用小于 1024 的端口,就需要 root 權(quán)限了。

運(yùn)行以下命令即可把supernode運(yùn)行在后臺(tái)。

supernode -l 12345

更多的用法如下

pi@raspberrypi ~ $ supernode -h
supernode usage
-l   Set UDP main listen port to 
-f          Run in foreground.
-v          Increase verbosity. Can be used multiple times.
-h          This help message.

Edge 配置

簡(jiǎn)單修改并運(yùn)行以下命令即可運(yùn)行edge

edge -d edge0 -a 10.0.0.10 -c [community] -k [encrypt key] -u 1000 -g 1000 -l [Supernode IP]:[Supernode Port]

例子

edge -d edge0 -a 10.0.0.10 -c myn2nline -k password123 -u 1000 -g 1000 -l 123.121.22.102:43321

更多的用法如下

pi@raspberrypi ~ $ edge -h
Welcome to n2n v.2.1.0 for unknown
Built on Sep 26 2015 16:11:34
Copyright 2007-09 - http://www.ntop.org

edge -d  -a [static:|dhcp:] -c  [-k  | -K ] [-s ] [-u  -g ][-f][-m ]
-l  [-p ] [-M ] [-r] [-E] [-v] [-t ] [-b] [-h]

-d           | tun device name
-a         | Set interface address. For DHCP use ''-r -a dhcp:0.0.0.0''
-c            | n2n community name the edge belongs to.
-k          | Encryption key (ASCII) - also N2N_KEY=. Not with -K.
-K             | Specify a key schedule file to load. Not with -k.
-s              | Edge interface netmask in dotted decimal notation (255.255.255.0).
-l  | Supernode IP:port
-b                       | Periodically resolve supernode IP
                         : (when supernodes are running on dynamic IPs)
-p           | Fixed local UDP port.
-u                  | User ID (numeric) to use when privileges are dropped.
-g                  | Group ID (numeric) to use when privileges are dropped.
-f                       | Do not fork and run as a daemon; rather run in foreground.
-m          | Fix MAC address for the TAP interface (otherwise it may be random)
                         : eg. -m 01:02:03:04:05:06
-M                  | Specify n2n MTU of edge interface (default 1400).
-r                       | Enable packet forwarding through n2n community.
-E                       | Accept multicast MAC addresses (default=drop).
-v                       | Make more verbose. Repeat as required.
-t                       | Management UDP Port (for multiple edges on a machine).

Environment variables:
  N2N_KEY                | Encryption key (ASCII). Not with -K or -k.

需要注意的是,-a參數(shù)所指定的是你連接上 n2n 網(wǎng)絡(luò)上的 IP 地址,顯然這是不可以重復(fù)的。

你可以使用 DHCP 服務(wù)器進(jìn)行分配 IP ,使用-a dhcp:10.0.0.22意思就是使用10.0.0.22作為 DHCP 服務(wù)器進(jìn)行 IP 地址的分配,而10.0.0.22這臺(tái)服務(wù)器也是需要連接上同一個(gè) Edge 的。

更多的用法你們可以自己參考上面的文檔。

錯(cuò)誤解決

n2n[4405]: ERROR: ioctl() [Operation not permitted][-1]

在我的樹(shù)莓派上面運(yùn)行的時(shí)候出現(xiàn)了上面的問(wèn)題,顯然這是由于權(quán)限不足導(dǎo)致的,因?yàn)?edge 需要 root 權(quán)限來(lái)創(chuàng)建一個(gè) TAP 接口,因此我們需要通過(guò)sudo來(lái)運(yùn)行。

實(shí)踐

經(jīng)過(guò)了我的一番折騰,我在手機(jī)上安裝了n2n的客戶端,Google Play

設(shè)置好了協(xié)議, supernode的 IP 和端口,設(shè)置了組(相當(dāng)于用戶名),設(shè)置了密碼,然后就可以連接了!

這是手機(jī)上面的 n2n 客戶端

使用 JuiceSSH 進(jìn)行本地的ping測(cè)試

10.0.0.10是我的樹(shù)莓派的地址,10.0.0.11是我手機(jī)設(shè)置的 IP 地址

最后

如果你們想要開(kāi)機(jī)自動(dòng)啟動(dòng)的話,設(shè)置/etc/rc.local就可以。

n2n 是個(gè)很好玩的東西,假如你在家里面也有幾臺(tái)類似 nas 之類的東西,你在學(xué)校也有路由器之類的東西,那么你就可以將他們組成一個(gè)內(nèi)網(wǎng)了,無(wú)論在哪里都可以訪問(wèn)到這幾臺(tái)設(shè)備了。只需要你在每一天設(shè)備上都設(shè)置好 edge ,部署在同一個(gè) Supernode 上,并且設(shè)置相同的密鑰和community就好了。


該文章在 2017/5/30 16:02:19 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日韩精品一区二区三区中文字幕 | 久久久久综合一区二区不卡 | 伊大人香蕉久久网欧美 | 亚洲日本精品宅男 | 亚洲欧美日韩国产精品蜜月a | 欧美在线视频精品一区 |