OpenWrt安装配置Tailscale

什么是tailscale?

Tailscale就是基于Wireguard的一个联网工具,无需公网地址,通过去中心化,实现各个节点之间点对点的连接.配置简单友好,支持的各类平台和客户端.

相比较其他组网工具的优势是什么?

对比zerotier和wireguard,tailscale更容易连上官方的中转服务器,webui界面更简单,适合小白上手,并且可以一键更新,不需要公网ip.zerotier在没有ipv6的情况下很容易连接不上官方中转服务器导致设备掉线.wireguard需要公网ip,配置繁琐而且每次公网ip更换都需要重启wireguard接口.

tailscale的缺点

如果有自建中转服务器的需求,tailscale需要80及443端口,对国内的用户和国内的政策要求不太友好,虽然有其他解决办法不过很麻烦不建议大家使用.如有自建节点的需求,建议使用zerotier自建moon服务器.

下面介绍在OpenWrt上的配置过程。

1. 下载软件

将Tailscale软件包下载到指定目录。进入tailscale的github releases地址,找到最新的软件包,下载到本地。然后使用Winscp工具将下载的软件上传到OpenWrt的/tmp目录下,也可以找到下载链接,直接使用wget命令下载.

bash 复制代码
 wget https://github.com/adyanth/openwrt-tailscale-enabler/releases/download/v1.60.0-e428948-autoupdate/openwrt-tailscale-enabler-v1.60.0-e428948-autoupdate.tgz

2. 解压软件包

bash 复制代码
tar x -zvC / -f openwrt-tailscale-enabler-v1.60.0-e428948-autoupdate.tgz

3. 安装依赖包

bash 复制代码
opkg update
opkg install libustream-openssl ca-bundle kmod-tun

4. 设置开机启动,验证开机启动

bash 复制代码
/etc/init.d/tailscale enable
ls /etc/rc.d/S*tailscale*

5. 启动tailscale

bash 复制代码
/etc/init.d/tailscale start

6. 获取登录链接并配置路由

bash 复制代码
tailscale up

复制显示的地址,并在浏览器中打开,使用谷歌或微软帐号登录Tailscale的管理主页进行验证。

不建议使用谷歌账号,因为使用谷歌后你手机在外面链接需要先开科学再登录谷歌账号才能链接上tailscale的app.

7. 开启子网路由

在OpenWrt上输入以下命令,打开本地子路由。子网地址是OpenWrt的lan网络。10.1.2.0/24是我的子网,不要无脑复制我的!!!!!

bash 复制代码
tailscale up --advertise-routes=10.1.2.0/24 --accept-dns=false

在Tailscale的管理页面上,单击设备列表右侧的更多图标,禁用密钥过期,并打开子网路由。

现在在OpenWrt上已经可以ping通其他Tailscale节点了,但其他节点还无法连接OpenWrt节点,还需要在OpenWrt上添加Tailscale接口。

8. 添加接口

在OpenWrt上新建一个接口,协议选静态地址,设备选tailscale0,地址为Taliscale管理页面上分配的地址,掩码255.0.0.0。防火墙区域选lan区域。

配置完成后如下图所示:

9. 添加防火墙规则

将以下内容,加到防火墙的自定义规则当中,并重启防火墙。

bash 复制代码
iptables -I FORWARD -i tailscale0 -j ACCEPT
iptables -I FORWARD -o tailscale0 -j ACCEPT
iptables -t nat -I POSTROUTING -o tailscale0 -j MASQUERADE

现在各个Tailscale节点之间已经可以正常互访了。