路由器长期运行版 n2n 方案

下面给你一套 路由器长期运行版 n2n 方案(稳定、自恢复、自动启动)。
这个方案适合嵌入式 Linux 路由器,例如你现在的小米路由器上运行的 n2n

目标:

  • 开机自动启动

  • 进程崩溃自动重连

  • 防止重复启动

  • 自动写日志

  • 支持多 supernode

  • 适合 /data 持久存储


一、目录结构(标准布局)

建议统一放在:

/data/n2n

结构:

/data/n2n
├── edge
├── supernode
├── edge.conf
├── start.sh
├── monitor.sh
└── edge.log

创建目录:

mkdir -p /data/n2n

二、edge.conf(推荐稳定配置)

编辑:

vi /data/n2n/edge.conf

写入:

-c mynet
-k 123456
-a 10.10.10.2
-l 112.15.88.165:2999
-l 112.15.88.166:2999
-M 1400
-f
-v

说明:

参数 作用
-c VPN 社区
-k 加密 key
-a 虚拟 IP
-l supernode
-M MTU
-f 前台运行
-v 日志

-l 表示 自动切换 supernode


三、启动脚本 start.sh

创建:

vi /data/n2n/start.sh

写入:

#!/bin/sh

EDGE="/data/n2n/edge"
CONF="/data/n2n/edge.conf"
LOG="/data/n2n/edge.log"

echo "===== n2n start $(date) =====" >> $LOG

if pidof edge >/dev/null; then
echo "edge already running" >> $LOG
exit 0
fi

ARGS=$(tr '\n' ' ' < $CONF)

$EDGE $ARGS >> $LOG 2>&1 &

赋权:

chmod +x /data/n2n/start.sh

四、守护脚本(自动重连)

创建:

vi /data/n2n/monitor.sh

写入:

#!/bin/sh

LOG="/data/n2n/edge.log"

while true
do
if ! pidof edge >/dev/null
then
echo "edge stopped, restarting $(date)" >> $LOG
/data/n2n/start.sh
fi

sleep 30
done

赋权:

chmod +x /data/n2n/monitor.sh

五、测试启动

先运行:

/data/n2n/start.sh

查看:

ip addr

应该出现:

n2n0

查看日志:

tail -f /data/n2n/edge.log

六、启动守护

/data/n2n/monitor.sh &

作用:

  • 每 30 秒检查

  • 如果 edge 挂了自动重启


七、开机自动启动

小米路由器一般支持:

/etc/rc.local

编辑:

vi /etc/rc.local

加入:

/data/n2n/monitor.sh &

保存。


八、重启测试

reboot

启动后检查:

ps | grep edge

或:

ip addr

看到:

n2n0

说明成功。


九、性能优化(路由器建议)

建议加入:

-M 1380

原因:

  • 路由器 NAT

  • 避免 MTU fragmentation


十、推荐网络结构(最稳定)

典型架构:

公网服务器


supernode

┌────┴────┐
│ │
路由器A 路由器B
edge edge
10.10.10.2
10.10.10.3

设备之间:

ping 10.10.10.3

即可互通。

版权声明:
作者:yxbinghe
链接:https://www.zhanhao.ch/?p=628
来源:ice.99
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>