今天本来是决定一下午解决Etherguard+BGP的
但事情的复杂程度远超出我的预期(指防火墙忘记开端口了)
首先祭出帮了我一下午的大佬&Etherguard开发者
简要来说,是一个类似于Zerotier/N2N的全链接组网工具,改造于Wireguard,使用Go编写
这里不介绍编译 因为编译实在太怪了 可以自行去Release下载或者用我Build的版本
那么现在就该开始建网啦
这类似于N2N,需要有一台公网服务器,必须开放3456 UDP
在公网服务器上搭建”Supernode“:
假设我在/ethguard放下了刚刚下载的文档
新建一份gensuper.yml在/ethguard下
Config output dir: /ethguard/configs
ConfigTemplate for super node: ""
ConfigTemplate for edge node: ""
Network name: sthnet #不要太长 网络名称
Super Node:
Listen port: 3456
EdgeAPI prefix: /eg_net/eg_api#下面的API前缀
Endpoint(IPv4)(optional): example.com#Supernode,v4
Endpoint(IPv6)(optional): example.com#Supernode的v6地址,没有请删掉
Endpoint(EdgeAPI): http://example.com:3456/eg_net/eg_api
Edge Node:
Node IDs: "[1~10,11,19,23,29,31,55~66,88~99]"#Edge节点ID,与IPv4 range相匹配
MacAddress prefix: "" #留空以自动创建
IPv4 range: 192.168.76.0/24 # 填写,与ID数匹配
IPv6 range: fd95:71cb:a3df:e586::/64 # 填写随便啥v6段就行
IPv6 LL range: fe80::a3df:0/112 # 不需要管
#完成后输入以下指令生成所有节点的配置
./etherguard-go -mode gencfg -cfgmode super -config gensuper.yml
IP地址默认是节点ID。
接下来只需要把/ethguard/configs里面的对应节点的config拷贝过去即可运行。
Supernode要这样运行:
./etherguard-go -config /ethguard/configs/含super的那个文件就是了 -mode super
在自己的任意节点上运行Edge:
假设这是我的节点001
将Supernode的configs全部下载到你的工作区之后
上传里面的序号001的文件到/ethguard/configs(我还是想用这个路径
./etherguard-go -config /ethguard/configs/那个文件 -mode edge
就这样,你就搭建好了你的内网,快试试能不能ping通8
不能的话你需要:
- 尝试开放全部UDP端口
- 检查NAT环境
- 重启设备
- 重启路由器
- 检查配置文件是否写错,systemd之流是否failed
#/etc/systemd/system/etherguard-edge.service
[Unit]
Description=Etherguard edgenode
After=network.target
# wg-quick.service
[Service]
User=root
Group=root
WorkingDirectory=/etc/eggo
Type=notify
ExecStart=etherguard-go -config /etc/eggo/edge.yaml -mode edge
Nice=5
[Install]
WantedBy=multi-user.target
#/etc/systemd/system/etherguard-super.service
[Unit]
Description=Etherguard supernode
After=network.target
[Service]
User=root
Group=root
Type=notify
ExecStartPre=+mkdir -p /var/run/wireguard
#ExecStartPre=+chgrp etherguard /var/run/wireguard
#ExecStartPre=+chmod 775 /var/run/wireguard
ExecStart=etherguard-go -config /etc/eggo/super.yaml -mode super
Nice=5
[Install]
WantedBy=multi-user.target
更多信息,请查看作者的Github!就在上面!
感谢分享,赞一个