ophub / amlogic-s9xxx-armbian

Support for Armbian in Amlogic, Rockchip and Allwinner boxes. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568, rk3399, rk3328, h6, etc.
GNU General Public License v2.0
5.41k stars 1.72k forks source link

自编译的openwrt docker镜像无法使用,但是118的可以使用,请问何故? #1961

Closed soundghost closed 6 months ago

soundghost commented 6 months ago

Device Information | 设备信息

Armbian Version | 系统版本

Describe the bug | 问题描述 刷入N1 EMMC后,自己编译了基于immortalwrt编译的固件,又将其转成了docker档案,启动自己的docker镜像后,exec进入容器,修改network后重启网络,只能ping通自己,下载别人的镜像也是同样的故障,后来安装了118的openwrt,exec进入容器修改了ip地址就正常了。

请问该如何使用上自己的镜像文件?

所用命令如下:

ip link set eth0 promisc on

docker network create -d macvlan --subnet=192.168.9.0/24 --gateway=192.168.9.1 -o parent=eth0 macnet

docker compose 文件内容如下:

version: '3.9'
services:
    immortalwrt-n1:
        image: 'immortalwrt-n1:2023.12.21'
        privileged: true
        networks:
            macnet: {}
        container_name: phicomm-n1
        restart: always
networks:
    macnet: {}

请不吝赐教,谢谢

ophub commented 6 months ago

https://hub.docker.com/r/ophub/openwrt-aarch64

照着文档做

soundghost commented 6 months ago

非常感谢!

soundghost commented 6 months ago

抱歉啊,再次打扰。

按照文档在op容器内执行

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

后提示 iptables v1.8.8 (nf_tables): Chain 'MASQUERADE' does not exist Try `iptables -h' or 'iptables --help' for more information.

已经修改了我自编译的op镜像的ip地址,但还是 1.从容器内ping网关不通,只能ping通自己 2.从其他机器ping容器内的op不通

但如果使用118的镜像又一切都是正常的,请不吝赐教。

ophub commented 6 months ago

根据您提供的提示,看起来您的iptables命令中使用的"MASQUERADE"链在nf_tables中不存在。这可能是由于您的系统正在使用nf_tables作为iptables的后端,而不是传统的iptables工具。

您可以尝试使用以下命令来创建一个名为"MASQUERADE"的链,并添加规则:

iptables -t nat -N MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这将创建一个名为"MASQUERADE"的nat表链,并将POSTROUTING链中的数据包重定向到该链。如果不行,把你编的tar包改一下使用传统的iptables

soundghost commented 6 months ago

感谢回复,我再试试

soundghost commented 6 months ago

我大概知道原因了,几年前我用lean的源码编译过n1的openwrt固件,这次再尝试,发现target已经改变了,找不到原来的选项,于是我凭着记忆选了一些来编译,所以实际上应该是lean现在的源码连网卡都没有了导致的网络不通。

下午我又查了一些资料,发现要编译n1用的固件,还要手动添加适用于amlogic的源码到lean的源码里去。

算了,我放弃了,哈哈。

就直接用118的镜像吧,不过希望大佬能够添加ipv6的支持进去,因为现在有些直播源只有ipv6的地址。

谢谢!

新年快乐!

Angel0726 commented 6 months ago

根据您提供的提示,看起来您的iptables命令中使用的"MASQUERADE"链在nf_tables中不存在。这可能是由于您的系统正在使用nf_tables作为iptables的后端,而不是传统的iptables工具。

您可以尝试使用以下命令来创建一个名为"MASQUERADE"的链,并添加规则:

iptables -t nat -N MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这将创建一个名为"MASQUERADE"的nat表链,并将POSTROUTING链中的数据包重定向到该链。如果不行,把你编的tar包改一下使用传统的iptables

问一下使用armbian-software安装的openwrt里面有插件xxx吗?

ophub commented 6 months ago

没有,身居庭院,莫议萧蔷。