OpenWrt安装配置tailscale

本文摘要在 OpenWrt 上配置 Tailscale 实现 WireGuard 点对点 VPN当前家庭宽带可用的 IPv4 公网 IP 越来越少,访问内网资源变得困难。部分内网穿透方案(如 frp)只能针对特定协议和端口,无法访问任意设备的任意端口。最佳选择是通过 VPN 组建大内网,而 WireGuard 就是 VPN 的未来。WireGuard 相比传统 VPN 的核心优势是没有 VPN 网关,所有...

在 OpenWrt 上配置 Tailscale 实现 WireGuard 点对点 VPN

当前家庭宽带可用的 IPv4 公网 IP 越来越少,访问内网资源变得困难。部分内网穿透方案(如 frp)只能针对特定协议和端口,无法访问任意设备的任意端口。最佳选择是通过 VPN 组建大内网,而 WireGuard 就是 VPN 的未来。

WireGuard 相比传统 VPN 的核心优势是没有 VPN 网关,所有节点之间都可以点对点(P2P)连接,效率高、速度快、成本低。但它本身只是内核级数据平面,需要用户空间应用来实现密钥交换、UDP 打洞、ACL 等高级功能。

Tailscale 正是基于 WireGuard 的组网工具,无需公网地址,通过去中心化节点实现点对点连接,配置简单,支持多平台。以下是在 OpenWrt 上的配置过程。

下载软件

从 GitHub 下载 openwrt-tailscale-enabler,或用 wget 命令直接获取:

wget https://github.com/adyanth/openwrt-tailscale-enabler/releases/download/v1.60.0-e428948-autoupdate/openwrt-tailscale-enabler-v1.60.0-e428948-autoupdate.tgz

将下载的文件解压到系统目录:

tar x -zvC / -f openwrt-tailscale-enabler-v1.60.0-e428948-autoupdate.tgz

安装依赖

opkg update
opkg install libustream-openssl ca-bundle kmod-tun

开机启动

/etc/init.d/tailscale enable

检查启动项:

ls /etc/rc.d/S*tailscale*

启动 Tailscale:

/etc/init.d/tailscale start

获取登录链接

运行以下命令获取认证地址:

tailscale up

复制显示的地址并在浏览器中打开,使用谷歌或微软账号登录 Tailscale 管理页面进行设备授权。

编辑子网路由

在 OpenWrt 上执行以下命令,宣告本地子网路由(子网地址为 OpenWrt 的 LAN 网络):

tailscale up --advertise-routes=192.168.18.0/24 --accept-dns=false

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

Tailscale 管理页面中禁用密钥过期并启用子网路由

Tailscale 管理页面子网路由确认界面

此时 OpenWrt 已能 ping 通其他 Tailscale 节点,但其他节点尚无法连接 OpenWrt,还需要在 OpenWrt 上添加 Tailscale 接口。

添加接口

在 OpenWrt 中新建一个接口:协议选择“静态地址”,设备选择“tailscale0”,地址填写 Tailscale 管理页面分配的 IP,掩码设置为 255.0.0.0,防火墙区域选“lan”。

OpenWrt 新建接口,协议静态地址,设备 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

至此,各个 Tailscale 节点之间即可正常互访。

觉得内容不错?我要

评论 暂无评论
暂无评论,快来抢沙发吧~