OpenWrt 22.03及以上版本,安装Tailscale后,无法启动初始化,提示“iptables: executable file not found”错误。该如何解决呢?
error: creating router: exec: “iptables”: executable file not found in $PATH
Tailscale介绍:
Tailscale是一种虚拟私人网络(VPN)解决方案,旨在简化安全网络连接。它利用现代加密技术,通过互联网连接不同设备、服务器和网络,形成一个安全的私人网络,使用户能够安全地访问远程资源和设备。Tailscale不同于传统的VPN,它使用了一种名为“WireGuard”的高性能加密协议,提供了更快的连接速度和更好的性能,同时也更易于设置和管理。用户可以轻松地在各种平台上安装和配置Tailscale,实现安全、简便的远程访问和网络连接。
OpenWrt 22.03 安装 Tailscale 遇到的问题:
Tailscale官方未提供在OpenWrt系统中安装Tailscale的方法和教程,但OpenWrt的官方源中,提供了tailscale和tailscaled两个软件包,可直接在LuCI中手动安装。
但在22.03及以上版本,安装后Tailscale无法正常启动,会提示如下错误:
error: creating router: exec: “iptables”: executable file not found in $PATH
造成上述问题的主要原因是:OpenWrt 22.03及更高版本使用nftables(取代iptables)作为firewall4的后端。Tailscale无法自动配置nftables,这会导致Tailscale守护程序无法正确启动初始化和转发流量。
OpenWrt 22.03 安装 Tailscale 方法:
第一步 安装Tailscale
opkg update opkg install tailscale opkg install iptables-nft
第二步 启动Tailscale,并关联账户
service tailscale restart tailscale up --netfilter-mode=off
在OpenWrt→状态→系统日志中,找到Tailscale关联账户的链接,将设备添加至自己的Tailscale账户。
第三步 设置Tailscale自启动
在OpenWrt→系统→启动项→本地启动脚本中,将原有的Tailscale命令删除(若有),并添加一行:
tailscale up --netfilter-mode=off
第四步 网络及防火墙设置
1.创建一个新接口,路径:OpenWrt→网络→接口→添加新接口
名称:tailscale 协议:不配置协议 设备:tailscale0
2.创建一个新的防火墙“区域”,路径:OpenWrt→网络→防火墙→区域→添加
名称:tailscale 入站数据:接受(默认状态) 出站数据:接受(默认状态) 转发:接受 IP动态伪装:开启 MSS钳制:开启 涵盖的网络:tailscale 允许转发到目标区域:选择你的LAN(和/或其他内部区域,或者如果你计划将此设备用作出口节点,则选择WAN) 允许来自源区域的转发:选择你的LAN(和/或其他内部区域,如果你不想将LAN流量路由到其他tailscale主机,则留空)
点击“保存并应用”。
至此,就完成了在OpenWrt 22.03及更高版本安装Tailscale,并完成了基础配置。
额外的,如果希望可以直接跨网络使用内网IP访问局域网设备,除了需要对tailscale进行subnet设置外。
还需在防火墙设置中,将“lan→wan和tailscale”的“IP动态伪装”也设置为开启。
同时,建议在高级设置中,限制下需要暴露的subnet ip地址,将他们填入“要限制 IP 动态伪装的目标子网”。一方面更安全,另一方面还可以解决外网端口映射无法连通的问题。