官方出的OpenWrt22.03版本,安装了docker后只要把docker启动,你就会发现其他通过软路由的设备都无法正常联网,只有软路由是正常的,我怀疑是防火墙冲突造成,因为最新的OpenWrt用了nftabls,而docker是iptabls造成的。

        这个问题,我百度了好久,不知道是找解决的思路有问题,还是官方版本用的人少,找到的方式都是不可行的,今天突然开窍,另辟蹊径,想到了一种方法。

        归纳下这个问题解决方案,我想应该有以下几种:

        1. 把nftables禁用,改用iptables,这种方式我想应该可以,但是查了资料,貌似新版默认不带,需要自己去软件包里装,装完后还要把原来策略改到iptables上;这个方法没试过,要处理的东西太多了,我不打算冒这个险;

        2. 采用docker替代品,这个方案我已验证过是可行的,那就是用podman,软件包中搜索并安装podman和crun,然后ssh到系统上,运行alias docker=podman,剩下的基本所有操作都和docker语法一个样,这个方法比较推荐。

        第二种方法唯一一个弱点就是在OpenWrt里没找到可视化的管理工具,或者是我孤陋寡闻了,知道的朋友也可以留言告知一声,非常感谢。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐