閑著無聊几苍,趁雙十一在某云和某云便宜買了3臺(tái)服務(wù)器肃廓,寫了一個(gè)小程序智厌,后端正好部署在上面。后端服務(wù)部署之后盲赊,就想搭個(gè)CAT的監(jiān)控铣鹏,有問題也能及時(shí)發(fā)現(xiàn)。CAT正常是使用在一個(gè)局域網(wǎng)里哀蘑,配置上都是內(nèi)網(wǎng)ip诚卸,幾臺(tái)服務(wù)器都是帶公網(wǎng)ip的,倒也能配置成功绘迁,但用一個(gè)內(nèi)網(wǎng)ip的話合溺,配置起來會(huì)更方便。然后就想缀台,能不能在幾個(gè)服務(wù)器之間搭一個(gè)私有的局域網(wǎng)呢棠赛?
網(wǎng)上搜了一下,發(fā)現(xiàn)比較多的使用ngrok膛腐、frp恭朗,也有n2n,frp自己在梅林上用過依疼,ngrok看文檔跟frp比較相似痰腮,都是用來做內(nèi)網(wǎng)穿透的,跟我的需求不太相符律罢,看n2n的文檔應(yīng)該是我需要的膀值。
1、先把源碼下載下來误辑,需要自己編譯安裝
sudo yum install gcc openssl-devel
make
sudo make install
編譯的時(shí)候可能缺少lib,我用的是centos巾钉,yum安裝即可
2翘狱、在每臺(tái)服務(wù)器上安裝完成后砰苍,首先選一臺(tái)機(jī)器,啟動(dòng)一個(gè)超級(jí)節(jié)點(diǎn)
supernode -l 7777 -v
-l指定監(jiān)聽的端口赚导,-v展示詳細(xì)的信息茬缩,方便調(diào)試吼旧。這里還有個(gè)-f參數(shù),應(yīng)該是前臺(tái)運(yùn)行,但默認(rèn)就是前臺(tái)
3裕膀、然后啟動(dòng)子節(jié)點(diǎn)
sudo edge -d n2n0 -c n2n -k password -a 192.168.1.101 -l 1.2.3.4:7777
-k指定一個(gè)密碼,在所有子節(jié)點(diǎn)上都是一樣的勇哗,-a指定本機(jī)的ip昼扛,-l指定超級(jí)節(jié)點(diǎn)的ip和監(jiān)聽的端口,其他的參數(shù)可以看著用
通過ifconfig查看智绸,發(fā)現(xiàn)多了一個(gè)網(wǎng)絡(luò)設(shè)備
n2n0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1400
inet 192.168.1.101 netmask 255.255.255.0 broadcast 192.168.1.255
ether 9a:2a:a2:54:bf:e6 txqueuelen 1000 (Ethernet)
RX packets 166 bytes 9604 (9.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1794 bytes 143340 (139.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
edge的參數(shù)
[root@bj2 ~]# edge -h
Welcome to n2n v.2.4 for x86_64
Built on Dec 2 2018 14:50:17
Copyright 2007-18 - ntop.org and contributors
edge <config file> (see edge.conf)
or
edge -d <tun device> -a [static:|dhcp:]<tun IP address> -c <community> [-k <encrypt key> | -K <key file>]
[-s <netmask>] [-u <uid> -g <gid>][-f][-m <MAC address>] -l <supernode host:port>
[-p <local port>] [-M <mtu>] [-r] [-E] [-v] [-t <mgmt port>] [-b] [-h]
-d <tun device> | tun device name
-a <mode:address> | Set interface address. For DHCP use '-r -a dhcp:0.0.0.0'
-c <community> | n2n community name the edge belongs to.
-k <encrypt key> | Encryption key (ASCII) - also N2N_KEY=<encrypt key>. Not with -K.
-K <key file> | Specify a key schedule file to load. Not with -k.
-s <netmask> | Edge interface netmask in dotted decimal notation (255.255.255.0).
-l <supernode host:port> | Supernode IP:port
-b | Periodically resolve supernode IP
| (when supernodes are running on dynamic IPs)
-p <local port> | Fixed local UDP port.
-u <UID> | User ID (numeric) to use when privileges are dropped.
-g <GID> | Group ID (numeric) to use when privileges are dropped.
-f | Do not fork and run as a daemon; rather run in foreground.
-m <MAC address> | Fix MAC address for the TAP interface (otherwise it may be random)
| eg. -m 01:02:03:04:05:06
-M <mtu> | 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 <port> | Management UDP Port (for multiple edges on a machine).
Environment variables:
N2N_KEY | Encryption key (ASCII). Not with -K or -k.
在幾臺(tái)服務(wù)器分別啟動(dòng)子節(jié)點(diǎn)野揪,整個(gè)局域網(wǎng)就搭建好了。需要注意的是瞧栗,子節(jié)點(diǎn)啟動(dòng)之后斯稳,互相ping可能不會(huì)馬上通,稍等一會(huì)就好了迹恐。還要注意服務(wù)器后臺(tái)的防火墻挣惰,不要攔截了端口。