群晖下使用N2N的一种方法
群晖下使用N2N的有两种:直接运行、Docker
因为我不用Docker(主要是考虑到要群晖要睡眠),所以这里分享一下我的方法(直接运行)
准备
群晖的DSM其实内核还是定制化的Linux,只要找到正确架构的可执行文件就可以直接运行
可以从 这里 直接下载到适用于Linux下各个架构的已编译好的N2N组件,这里以x86_64架构为例
比如:静态编译包含zstd的无UPX版本edge
先 开启群晖的SSH并获取root权限,然后我用的WinSCP,将上述组件(edge)解压并上传
赋予执行权限
测试
Edge
回到SSH端,执行 edge
测试一下,运行正常没问题!
TAP\TUN
群晖DSM系统默认没有加载tun模块,需要手动开启,否则运行edge时就会报错
ERROR: unable to configure virtual network port: could not open TUN/TAP device: No such file or directory
开启教程这里就不写了,直接 参考这篇
路由表
添加一行路由表
#edge0为n2n网卡名称,通过ifconfig查看
#IP段改为自己的虚拟IP段,192.168.123.0/24表示192.168.123.1 - 192.168.123.254
route add -net 192.168.123.0/24 dev edge0
脚本
下载脚本
到上一步,就可以直接通过命令行启动edge。但是我需要开机自启+进程监控,所以就再写个脚本,利用群晖的计划任务功能来控制edge的启动
下载Shell 脚本 ,并修改脚本里的参数,赋予执行权限后丢到比如 /root
目录下
则完整的执行命令为 sh /root/checkedge.sh
#!/bin/sh
start_edge(){
killall edge
/usr/bin/edge -a 192.168.123.200 -c bugxia_9527 -l n2n.s1.bugxia.com:9527 -r
}
check_running(){
PID=`ps -ef | grep edge | grep -v grep | grep -v $0 | awk '{print $2}'`
if [[ -z $PID ]];then
start_edge
else
echo "Edge is running"
fi
}
check_running
定时任务
在群晖的定时任务中添加每隔5分钟执行一次上述脚本,添加过程不写了,就一张图
7 条评论
大佬您好,我如果想使用unraid在docker上部署的话是该怎么做呢
想求一份docker的镜像试试自己部署
楼主你好,N2N组件有新的下载链接吗?最上面的那个链接下载不了
执行edge报错Bus error (core dumped)是为什么啊?
在这里记录一下,使用supernode -p 端口号时,需要把该端口的udp打开,因为没有开udp,失败了好久…
@zz
感谢分享~~~
n2n_v3_linux_x64_v3.1.0-54_r1127_all_by_heiye.zip 文件下载不了,楼主能提供文件吗?谢谢
@蓝蓝天空
备份下载:
x86:http://down.bugxia.com:8080/d/N2N/n2n_v3_linux_x86_v3.1.0-54_r1127_all_by_heiye.zip
x64:http://down.bugxia.com:8080/d/N2N/n2n_v3_linux_x64_v3.1.0-54_r1127_all_by_heiye.zip