赞
踩
本人家里搞了个黑群晖,除了存储一些照片外,还搭建了一些小服务,远程唤醒家里的电脑等等。无奈使用的是移动宽带,无法获取IPv4 的公网IP地址,所以开启了IPv6 用于外部访问,但现在IPv6 网络环境相对较少,比如在公司要访问家里网络还得使用手机开数据热点。着实不方便(流量用不起~~)。
刚好前段时间阿里云搞活动,两百多买了3年的基础版ECS,想办法利用起来
搞FRP等内网穿透,一个局限性通过服务器转发,服务器带宽过小,这也是当初选择ipv6的主要原因。
使用p2p vpn,这种方式服务器只起到牵线搭桥作用,建立连接以后,让连接的两端直接通讯(当然实际点对点建立跟NAT类型有关,如果建立失败还是使用服务器进行数据转发)。常用的N2N、Tinc、PeerVPN以及ZeroTier,此使用N2N搭建。
经测试很遗憾,自己网络的NAT类型为Symmetric NAT,没有打通点对点的连接方式,还是用服务器的龟速转发。可以使用NatTypeTester测试下网络类型,有兴趣的可以尝试下。
直接使用docker进行部署,安装docker网上一堆,这里就忽略了。。
# 启用supernode
docker run -dit --name n2n_supernode -e SUPERNODE_PORT=10000 --network=host --restart=always forgaoqiang/n2n_supernode:latest
# 也可以在服务器上启用edge node,根据实际修改
docker run -dit --network=host --privileged --name=n2n_edge --restart=always \
-e EDGE_PORT=10001 \
-e EDGE_SUPERNODE=XXX.XXX.XXX.XXX:10000 \
-e EDGE_TUN_NAME=edge0 \
-e EDGE_IP=10.10.10.10 \
-e EDGE_NETMASK=255.255.255.0 \
-e EDGE_COMMUNITY=ali2home \
-e EDGE_KEY=ali2home \
forgaoqiang/n2n_edge
ps:阿里云服务还需在控制面版安全策略组,开放10000 端口。
# edge node,根据实际修改
docker run -dit --network=host --privileged --name=n2n_edge --restart=always \
-e EDGE_PORT=10001 \
-e EDGE_SUPERNODE=XXX.XXX.XXX.XXX:10000 \
-e EDGE_TUN_NAME=edge0 \
-e EDGE_IP=10.10.10.20 \
-e EDGE_NETMASK=255.255.255.0 \
-e EDGE_COMMUNITY=ali2home \
-e EDGE_KEY=ali2home \
forgaoqiang/n2n_edge
windows 使用 exe软件安装,也不展示了。
正常启动后
在黑群晖中启动docker 报错
# docker logs -f n2n_edge
07/Sep/2021 05:55:38 [edge.c:594] Starting n2n edge 2.5.0 May 16 2019 14:54:42
07/Sep/2021 05:55:38 [edge_utils.c:1694] Adding supernode[0] = XXX.XXX.XXX.XXX:10000
07/Sep/2021 05:55:38 [edge.c:613] ip_mode='static'
07/Sep/2021 05:55:38 [tuntap_linux.c:81] ERROR: tuntap open() error: No such file or directory[2]. Is the tun kernel module loaded?
检查是否安装了 tun 模块:
lsmod | grep tun
如果结果为空,请尝试安装它:
insmod /lib/modules/tun.ko
如果一切顺利,继续进行下一个测试。
确保 tun.ko 模块可以正常工作:
mkdir /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun
cat /dev/net/tun
如果 cat 命令的返回结果是 File descriptor in bad state,则表示模块已正确安装。
模块安装需要在每次 Synology 重启时保持持久性,就必须重复使用 insmod 命令。
可以创建开机脚本搞定,执行如下命令进行创建:
cat <<EOF > /usr/local/etc/rc.d/tun.sh #!/bin/sh -e insmod /lib/modules/tun.ko EOF
给脚本可执行权限:
chmod a+x /usr/local/etc/rc.d/tun.sh
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。