openwrt上安装tailscale实现内网穿透
最近在折腾网络,目的是在openwrt上安装tailscale实现三个不同地域的网络互通。
在24年折腾有时候,还是很方便的,使用openwrt.ai上下载的kwrt版本的openwrt,自带tailscale和前端UI界面,安装完后通过UI界面操作就能互通了。
但是现在却不行了,有以下几个现象:
- 只要安装完tailscale并登录,openwrt必死机。具体表现为:
- ssh无法登录;
- openwrt界面无法打开。
- kwrt自带的tailscale版本是1.80,而最新版是1.92。
折腾了近一周,终于找到了在openwrt上安装设置tailscale的正确方法了。
安装openwrt
推荐使用immortalwrt,地址在immortalwrt。
可在线安装homeproxy,安装mosdns也很方便。
安装tailscale
推荐使用openwrt-tailscale来安装.
这个安装脚本经测试,重装自动启动、连接、路由等功能一切正常。
执行下面命令来安装
1 | wget -O /usr/sbin/install.sh https://ghfast.top/https://raw.githubusercontent.com/GuNanOvO/openwrt-tailscale/main/install.sh && chmod +x /usr/sbin/install.sh && /usr/sbin/install.sh |
如果安装不成功,把上面命令中的https://ghfast.top/去掉再试试。
运行tailscale并注册
1 | tailscale up --accept-routes --accept-dns=false --advertise-exit-node --advertise-routes=192.168.8.0/24 |
- tailscale up: 启动 Tailscale。
- –accept-routes: 接受其他节点通过 Tailscale 网络提供的路由。
- –accept-dns=false: 不使用 Tailscale 网络提供的 DNS 设置。
- –advertise-exit-node: 将当前节点作为出口节点进行广播,使其可以作为其他节点的互联网出口。
- –advertise-routes=192.168.8.0/24: 将
openwrt所在的子网192.168.8.0/24进行广播。
执行后会给出一个链接,复制后在浏览器打开并注册即可。
openwrt端口和防火墙设置
添加端口
通过 LuCI 创建一个新的非托管接口:网络→接口→添加新接口
名称:tailscale
协议:Unmanaged(不配置协议)
设备:tailscale0
保存应用。如下图:
创建防火墙区域
通过LuCI界面创建新的防火墙区域:网络→防火墙→区域→添加
名称:tailscale
入站数据:接受(默认)
出站数据:接受(默认)
转发:接受
IP 动态伪装:√
MSS钳制:√
涵盖的网络:tailscale
允许转发到目标区域:选择您的lan和wan
允许来自源区域的转发:选择您的lan
在连接跟踪设置中,允许“无效”流量: on
点击保存并应用。

开放41641端口
如果要提高打洞效率,必须要放开WAN的41641端口允许流量流入:
防火墙–>通信规则–>添加,源区域选wan,目标区域选“此设备”,目标端口41641,保存并应用,如下图: