基于Tailscale异地组网实现远程访问局域网服务

Tailscale 是一款基于 WireGuard 协议的零配置 VPN 解决方案,能够实现安全、便捷的内网穿透和异地组网。它允许不同网络中的设备加入同一个私有网络,无需手动配置防火墙或端口映射。

本文介绍如何使用 Tailscale 搭建一个私有局域网,使外网设备能够通过局域网 IP 访问内网服务。

tailscale_network

安装 Tailscale

首先,在内网的 OpenWrt 设备上安装 Tailscale 及相关软件包:

opkg update
opkg install iptables-nft tailscale

启动 Tailscale 服务

在 OpenWrt 设备上启动 Tailscale,并指定内网网段(如 192.168.10.0/24):

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

执行后,终端会显示一个登录链接,点击后在浏览器中完成登录,即可成功加入 Tailscale 网络。上述的命令只需要运行一次,后续 OpenWrt 重启之后会自动执行连接。

配置 Tailscale 管理后台

在 Tailscale 管理页面,找到 OpenWrt 设备,点击 “…” 菜单,关闭 Key 过期(否则定期需要重新登录)。接着,在 子网设置 中启用路由转发,操作如下图所示:

tailscale_admin

勾选后保存,即完成 Tailscale 的基本配置。

配置 OpenWrt 网络接口与防火墙

在 OpenWrt 后台添加一个新接口,配置如下:

600

添加完成后,进入该接口的编辑页面,进行防火墙设置:

600

保存后,点击 “保存并应用” 按钮,使配置生效。

随后,配置防火墙规则,确保该接口支持流量的正常进出。由于 OpenWrt 作为旁路由,这里 WAN 是空。

600

至此,防火墙配置已完成。

测试与使用

在 Windows 和 macOS 设备上安装 Tailscale 客户端,并使用相同账户登录,即可加入该虚拟网络。成功连接后,即可在外网使用局域网 IP 直接访问内网服务。

常见问题

1、手动升级 Tailscale

在 OpenWrt 或其他系统上,可以使用以下命令手动升级 Tailscale:

tailscale update
# 升级完成后,需重启 Tailscale 以使新版本生效
/etc/init.d/tailscale restart

2、解决 Tailscale 启动时的 UDP GRO 警告

当运行 tailscale up 时,可能会出现以下警告:

Warning: UDP GRO forwarding is suboptimally configured on br-lan, UDP forwarding throughput capability will increase with a configuration change.

该警告表示 当前 br-lan 接口的 UDP GRO 转发未优化,可能影响 UDP 流量的转发性能。可以参考 Tailscale 官方文档 进行优化,执行以下命令:

# 获取当前网络接口名称
NETDEV=$(ip -o route get 8.8.8.8 | cut -f 5 -d " ")

# 在 OpenWrt 上执行前,需先安装 ethtool-full
opkg update && opkg install ethtool-full

# 启用 UDP GRO 转发优化
ethtool -K $NETDEV rx-udp-gro-forwarding on rx-gro-list off

注意:该命令仅在当前会话中生效,重启后会失效。为了使设置在开机时自动应用,可以将命令添加到 /etc/rc.local。这样,每次系统启动时都会自动优化 UDP 转发,提高 Tailscale 的性能。🚀

参考文档

留下回复