OpenWRT部署TAILSCALE平替ZEROTIER
OpenWRT部署TAILSCALE平替ZEROTIER by 兔爸的杂货铺子
在疫情封控下,好多人应该都有远程访问远端设备的需求。在国内网络生态下,蒲公英/爱快的SD-WAN不是免费小水管,就是得花钱买带宽,常用的免费ZEROTIER走UDP协议,容易给运营商QoS,速度帅不过三秒,FRP等还需要掏钱搭建维护中转云主机,兜兜转转最后发现基于WIREGUARD的TAILSCALE服务,部署难度不大,完美平替ZEROTIER,免费稳定,几天使用下来,那是真的香。TAILSCALE官方网站客户端说明文档涵盖了各类常见平台,唯独没有OpenWRT,谨此记录部署过程及踩过的坑。
一、为OpenWRT安装TAILSCALE
OpenWRT软件库包已包含TAILSCALE的PKG,可以直接在OpenWRT固件编译过程中勾选集成(具体位置在“Network——VPN——TAILSCALE”)或者通过OpenWRT后台图形界面搜索安装(须同时安装TAILSCALE和TAILSCALED),以下仅记录OpenWRT端设置方式。
tailscale up # 启动tailscale服务,正常的话会弹出设备登录验证地址
点击或拷贝https地址到浏览器访问,如果已注册并登录TAILSCALE的账户,即可在其后台看到OpenWRT设备已接入,接下来设置TAILSCALE开机自动启动。
/etc/init.d/tailscale enable # 加入开机自动启动
ls /etc/rc.d/S*tailscale* # 验证是否成功加入开机启动项
第三部为OpenWRT添加新网络接口并设置防火墙规则,接口名称随意,“基本设置里”协议选择“静态地址”,IPV4和IPV6地址选择TALESCALE网站分配的内网虚拟地址,IPV4子网掩码选择“255.0.0.0”,“物理设置”中勾选“tailscale0”以太网适配器,“防火墙设置”中将新接口加入LAN区域。
第四步在防火墙设置中添加自定义防火墙规则,然后重启防火墙:
iptables -I FORWARD -i tailscale0 -j ACCEPT
iptables -I FORWARD -o tailscale0 -j ACCEPT
iptables -t nat -I POSTROUTING -o tailscale0 -j MASQUERADE
完成上述步骤之后,OpenWRT后面连接的设备就能够Ping通远端的TAILSCALE节点。
二、外网访问OpenWRT内局域网设备设置
TAILSCALE允许设置虚拟局域网路由(Subnet),以便远端设备可以访问OpenWRT节点后的局域网设备,在OpenWRT SSH命令行界面输入:
tailscale up --accept-routes --advertise-routes=X.X.X.X/24 # X.X.X.X为OpenWRT设备本地地址网段
第二步在TAILSCALE管理界面,找到接入对应的OpenWRT设备批准SUBNET路由。
在设置完成后,远端设备即可通过设备本地IP地址访问OpenWRT设备所在局域网内的所有设备。
需要特别说明的是,目前国内网上教程SUBNET操作命令均省略了--accept-routes,按照官方文档,所有基于linux的系统设置SUBNET均需要--accept-routes参数,以使本地路由设置生效。
最后看一下家中联通线路跨ISP在晚高峰访问同城远端电信TAILSCALE节点局域网内的速度,延迟还是相当阔以的,毕竟是基于Linux亲儿子WIREGUARD的么。
原文链接