OpenWRT+zeroTier旁路由组网

本文介绍了如何在Linux下通过Docker安装OpenWRT并配置旁路由,以便使用zeroTier实现不同地理位置设备间的网络互通,包括设置虚拟IP转发和测试过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

我之前写过一篇文章,探究了zeroTier的最基础的玩法,那篇文章结尾我提到了使用zeroTier虽然实现组网了,但是我只能访问局域网中制定的设备,局域网中其他设备无法访问,这篇文章我又研究了一套方案openwrt+zeroTier旁路由,完美的解决了这个问题

Zerotier 异地组网方案初探-优快云博客文章浏览阅读372次,点赞7次,收藏9次。Linux下基于docker实现Zerotier 异地组网https://blog.youkuaiyun.com/cjj2006/article/details/136853397?spm=1001.2014.3001.5502

安装Openwrt

对于OpenWRT我选择了比较简单省事的istoreos

X86固件下载地址:KoolCenter 固件下载服务器

安装完成之后

我们点击网络 然后点接口

没有配置旁路由可以先配置一下 (上图已经配置完成了,不会配置可以看看我之前的文章)

配置完成之后我们点网络中的防火墙,将转发设置为接受 下面lan的IP 动态伪装也勾上

 然后再iStore中安装zeroTier填写网络id启动

zeroTier配置

先找到openwrt连接上分配的虚拟IP地址

然后Destination写上你的目标局域网网段,Via写openwrt的虚拟IP地址

这个意思就是说,192.168.3.0 这个网段的流量都会经过10.147.17.180这台设备的转发

测试

我们在异地的windows启动客户端之后,加入网络

访问我们另外一个局域网的PVE

成功访问 

### 如何在OpenWRT中集成ZeroTier或解决相关问题 #### 集成ZeroTierOpenWRT 为了将ZeroTier集成到OpenWRT,可以按照以下方法操作: 1. **安装必要的软件包** 使用`opkg`命令安装ZeroTier的核心组件以及任何可能需要的支持工具。例如,在终端运行以下命令以安装ZeroTier One客户端: ```bash opkg update && opkg install zerotier-one ``` 2. **配置ZeroTier服务** 安装完成后,可以通过启动ZeroTier服务并加入网络来进行基本设置。以下是启动服务的命令: ```bash /etc/init.d/zerotier start zerotier-cli join <NETWORK_ID> ``` 这里的`<NETWORK_ID>`是指定要连接的虚拟网络ID。 3. **验证安装与状态** 可通过以下命令查看当前节点的状态及其分配的IP地址: ```bash zerotier-cli info zerotier-cli listnetworks ``` 4. **注意事项** 在修改基础文件时需格外小心,因为OpenWrt的安全模式依赖于SquashFS分区上的完全可用的基础文件[^1]。如果在此过程中发生错误配置,则可能导致设备无法正常进入安全模式,进而需要采取更复杂的方法恢复设备功能。 #### 解决常见问题 当尝试集成ZeroTier或其他第三方应用至OpenWrt环境时可能会遇到一些挑战。下面列举了一些常见的障碍及对应的解决方案: - 如果发现推送更改失败提示类似于“Can't push refs to remote”,这通常意味着本地分支未同步最新改动。此时应先执行拉取更新再提交新变更[^2]: ```bash git pull origin main git push origin main ``` - 对于编译阶段产生的错误,比如构建WebRTC SDK期间出现问题,确认已正确完成前置步骤如运行`gclient runhooks`和指定目标路径下的Ninja构建过程[^3]: ```bash gclient sync --force gn gen out/Default ninja -C out/Default ``` - 当涉及前端框架Angular项目对接后台数据库MySQL场景下碰到困难时,可参考StackOverflow上讨论过的类似主题寻求帮助[^4]。 ```python import mysql.connector def connect_to_db(): try: connection = mysql.connector.connect( host='localhost', user='root', password='password', database='testdb' ) if connection.is_connected(): db_Info = connection.get_server_info() print("Connected to MySQL Server version ", db_Info) except Exception as e: print(e) connect_to_db() ``` 上述脚本展示了一个简单的Python函数用于建立与MySql服务器之间的链接实例。 #### 总结 综上所述,成功地把ZeroTier引入OpenWrt不仅增强了路由器联网能力还扩展了其应用场景范围;然而在整个实施流程里务必要遵循官方文档指导谨慎行事以免造成不可逆损害。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java-superchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值