旁路由OpenWrt与内网穿透(Tailscale、EasyTier)
旁路由 OpenWrt 与内网穿透(Tailscale、EasyTier)
近况
最近家里的旁路由坏了,这一坏感觉和外界失联了一样,这也用不了那也用不了。还好有一个群晖临时顶一顶。
群晖部署 OpenWrt
下载固件
常见固件下载地址
这里我随便选择了一个 Lean 固件
这个固件包含了我们常用的一些插件:
- Mosdns
- 动态 DDNS
- UPNP 自动端口转发
- 默认多个主题
- 默认管理 IP: 192.168.1.251, 用户名 root,密码 password
- 等等
解压固件并上传
默认是 gz 文件需要解压后,群晖才能识别
gunzip 01.11-openwrt-x86-64-generic-squashfs-combined-efi.img.gz
选择解压后的镜像 img 文件上传
创建 gw 虚拟机
- 选项导入硬盘映像
- 选择上传的镜像文件
- 调整网络,这步的作用主要是确定我们虚拟的软路由的工作模式是“全双工”或者“半双工”,全双工的优势明显,默认的是半双工,所以我们这里需要更改一下即可
PS: 由于我的环境都需要绑定 mac 地址,需要记录 mac 地址并在主路由器绑定相关 ip
- 其它设置这里设置自动启动为是,其它保持缺省,不需要调整
- 分配权限,选择自己的群晖 NAS 管理员账户即可
- 点击“完成”创建虚拟机,然后开机
- 选择刚刚开机的,点击连接
- 出现如下的界面的时候,按电脑的“回车”键进入 OpenWRT shell
- 修改默认 ip, 将 “lan” 里面的 ipaddr,gateway 和 dns 更改为自己的配置
vi /etc/config/network
# 示例我的环境
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.31.66'
option netmask '255.255.255.0'
option ip6assign '60'
option gateway '192.168.31.1'
list dns '8.8.4.4'
- 修改完成后保存并退出 vi,然后输入 reboot 命令重新启动 OpenWrt。
reboot
- 到这里基本安装就完成了,通过浏览器访问
http://192.168.31.66
(具体 IP 根据自己的情况哈)
配置 OpenWrt
修改软件包源,这里默认使用腾讯云 https://mirrors.cloud.tencent.com
镜像源
点击配置 OPKG,具体如下,我这个已经是替换过后的了
配置完成,点击更新列表
开启 ssh 功能
系统-管理权,开启 ssh 登陆功能
安装 Tailscale
搜索 tailscale 安装, 我这里已经安装了。
然后 ssh 登录到 OpenWrt, 开启 tailscale
# 开启启动
/etc/init.d/tailscale enable
# 启动
/etc/init.d/tailscale start
# 获取登录链接
tailscale up --accept-dns=false
这样完事后,tailscale 是组网成功了,只能用 tailscale ping 100.90.80.66
, 没法使用系统命令 ping 100.90.80.66
OpenWrt 配置 Tailscale
在 OpenWrt 上新建一个接口,协议选静态地址,设备选 tailscale0,地址为 Taliscale 管理页面上分配的地址,掩码 255.0.0.0。
防火墙区域选 lan 区域。
到这里,基本就完事,保存并应用即可
补充其他
如果你上面 tailscale up 时开启了子网路由,可以将下面内容添加加到防火墙的自定义规则当中,并重启防火墙。
iptables -I FORWARD -i tailscale0 -j ACCEPT
iptables -I FORWARD -o tailscale0 -j ACCEPT
iptables -t nat -I POSTROUTING -o tailscale0 -j MASQUERADE
安装 EasyTier
原理和流程同 Tailscale
可视化 UI 配置
OpenWrt 配置 EasyTier
在 OpenWrt 上新建一个接口,协议选静态地址,设备选 easytier0,地址为 Easytier 管理页面上分配的地址,掩码 255.255.255.0。
防火墙区域选 lan 区域。
到这里,基本就完事,保存并应用即可
测试
其他组网节点,使用系统 ping 测试,看看网络是否通。由于本文是事后回忆,可能有疏漏,敬请谅解