X86下Docker版Openwrt记录

环境设置

1、打开网卡混杂模式,其中enp1s0根据ifconfig命令找到自己的本地网卡名称替换

sudo ip link set enp1s0 promisc on

2、创建名称为macvlan的虚拟网卡,并指定网关gateway、子网网段subnet、虚拟网卡的真实父级网卡parent(第一步中的本地网卡名称)

docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=enp1s0 macnet

3、查看虚拟网卡是否创建成功,成功的话能看到名称为“macnet”的虚拟网卡

docker network ls

拉取镜像

4、拉取镜像,可以通过阿里云镜像提升镜像拉取速度

piaoyizy/openwrt-x86

5、创建容器并后台运行

docker run --restart unless-stopped --name openwrt -d --network macnet --privileged piaoyizy/openwrt-x86 /sbin/init

(视情况加选项–mac-address 02:42:c0:a8:01:xx –ip=192.168.x.x ,arm架构比如玩客云的话推荐使用 dreamwsbg/openwrt 镜像)

容器内设置

6、进入容器内部环境

docker exec -it openwrt bash

7、根据自己实际情况修改网络配置,修改完成后保存配置
vim /etc/config/network
例如:

1
2
3
4
5
6
7
8
9
10
config interface ‘lan’

#修改部分选项(按需修改)
option proto ‘static
option ipaddr ‘192.168.0.5
option netmask ‘255.255.255.0
option ip6assign ’60
option gateway ‘192.168.0.1
option broadcast ‘192.168.0.255
option dns ‘192.168.0.111

8、exit退出容器内部环境,在宿主机环境执行重启openwrt网络命令

/etc/init.d/networking restart

Openwrt页面设置

9、openwrt设置

进入openwrt网页后台,大多数情况下用户名密码为root/password root/root
在接口里取消lan的br-lan桥接,关闭其IPV6并且忽略DHCP然后防火墙规则里设置
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

补充1:当OPENWRT作为主路由时开启IPV6

(以下为OP主路由开启IPV6的设置,旁路需要根据情况调整:如需IPV6建议新建WAN6接口,设备修改为@wan,然后来到 lan 的高级设置,勾选委托 IPv6 前缀,并将 IPv6 分配长度禁用修改为 64 或更小,接着再点击 lan 的 DHCP 服务器中的 IPv6 设置,将 RA 服务DHCPv6 服务都设置为服务器模式。最后再来到 lan 的 DHCP 服务器中的 IPv6 RA 设置,勾选启用 SLAAC,RA 标记看自己的需求是否需要同时开启 DHCPv6,需要的话勾选**受管配置(M)和其他配置(O),不需要则只勾选其他配置(O)**)。

补充2:当OPENWRT作为旁路有时开启IPV6

接口里新建一个LAN6,选择DHCPV6,物理设置里 选择自定义输入“**@lan**” 重要,重要,重要。
设置防火墙,在LAN6接口设置里,开启“开机自动运行”“使用内置的IPV6管理”“使用默认网关”“使用对端通告的DNS服务器”。
LAN里的IPV6设置,DHCP服务器-基本设置,路由通告服务-服务器模式,DHCPV6服务-已禁用,NDP代理-已禁用。

补充3:docker启用ipv6

  1. /etc/docker/daemon.json 文件中填下 IPv6 相关配置
    1
    2
    3
    4
    5
    6
    { 
    "ipv6": true,
    "ipv6tables": true,
    "experimental": true,
    "fixed-cidr-v6": "2001:db8::/64"
    }
  2. 重启 Docker
    systemctl restart docker

镜像详细使用方法请参考博客文章:
解决openwrt容器和宿主机互通问题


X86下Docker版Openwrt记录
https://hexo.psorai.eu.org/2024/10/12/X86下Docker版Openwrt踩坑记录/
Author
Sora
Posted on
October 12, 2024
Licensed under