openwrt 安装 tailscale 组网

发布于 2023-08-31  83 次阅读


前言

上篇简单介绍了下 tailscale 的部署,都是一些基础的功能,由于先前把 tailscale 直接部署到 nas 上,组网要访问的也就 nas ,所以也够用。但是现在虚拟机里面装了个 openwrt 当旁路由网关,想把 tailscale 也部署在这之上,但是 ip 与 nas 的不一样了,不能直接访问,所以需要用到子网路由功能,也顺便记录一下~

血与泪的教训

如果使用官方 openwrt ,千万千万千万要把软件包中的 dnsmasq 移除,换成 dnsmasq-full!!!否则可能导致子网路由访问不了!!!

旁路由配置

安装 tailscale

系统 -> 软件包 中,搜索 tailscale 然后安装即可!(有 2 个)

装完后,需要 ssh 连接到 openwrt 中,由于服务端我用 docker headscale 搭建,所以输入如下命令:

tailscale up --login-server=https://yourservers --advertise-routes=192.168.12.0/24 --accept-routes=true --accept-dns=false
  • --advertise-routes:需要上报 tailscale 的子网,也就是 openwrt 所在网段,让其他设备可以被访问到!
  • --accept-routes:接受路由,也就是其他设备上报的组网,开启就可以直接访问其他设备的子网了!
  • --accept-dns:接受下发的 DNS,一般我都是关闭,它会篡改当前设备的 DNS 配置。
官方服务器的话省略 --login-server 参数即可!

不出意外的话,会返回一串 URL,然后在浏览器中打开,会看到一串命令:

进入 VPS,再进入到 headscale 容器内部:

docker exec -it headscale /bin/sh

然后输入上面的浏览器中的代码注册(把 USERNAME 改成你注册在 headscale 中的用户名),看到成功提示即可!

最后注意,要让其他组网内设备访问到子网的话,需要在 webui 中开启相关路由:

绿色为开启状态,红色为关闭,点击即可切换!

配置防火墙

进入 openwrt 网络 -> 接口 菜单,选择 添加新接口,名称任意,协议选 静态地址,设备选 tailscale0(也就是安装 tailscale 后自动创建的设备):

点击 创建接口,下一步需要填写 IP 和子网掩码即可!(IP 和在服务端查看分配的 IP):

防火墙设置 中,自定义一个防火墙名,最后点击 保存 -> 保存并应用:

然后进入 网络 -> 防火墙 ,点击刚刚新建的规则后的编辑,入站数据修改为 接受,转发数据也修改为 接受,勾选 IP 动态伪装、MSS 钳制,允许转发到目标区域 选择 lan 和 wan,允许来自源区域的转发 选择 lan 即可,如下图:

最后 保存 -> 保存并应用,openwrt 这边的设置就完成了!

主路由配置

进入主路由,这边只要配置下静态路由就可以了,以 ASUS 的路由器为例,参考如下:

注意:要设置的静态路由是当前设备的网段!而是已存在/想访问设备的网段!

应用后,就可以连接网络了~