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,保存并应用,如下图: