Docker运行OpenWRT

在日常网络优化中,OpenWRT 作为强大灵活的软路由系统,非常适合作为旁路由运行;而使用 Docker 快速部署 OpenWRT,不仅便于管理,还能避免单独刷固件、物理接入的繁琐;本篇笔记记录了通过 Docker 安装并配置 OpenWRT 为旁路由的全过程;

参考资料:

https://www.ilovn.com/2023/02/23/deploy-openwrt-with-docker/

https://openwrt.ai/docker版openwrt旁路由安装设置教程/

准备工作-开启网卡混杂模式

旁路由需要 Docker 网络能桥接到主机的物理网卡,因此必须开启混杂模式(Promiscuous Mode);

使用 ifconfig 或 ip addr 查找你的有线网卡名,比如 enp1s0,然后执行:

bash 复制代码
sudo ip link set enp1s0 promisc on

确认是否已开启:

bash 复制代码
ip link | grep PROMISC

创建 Macvlan 网络

创建一个 Macvlan 类型的网络,供 OpenWRT 容器使用;你可以根据自己的局域网网段修改 subnet 和 gateway 参数:

bash 复制代码
docker network create -d macvlan \
  --subnet=192.168.10.0/24 \
  --gateway=192.168.10.1 \
  -o parent=enp1s0 openwrt
  • --subnet: 指定 OpenWRT 所在的子网;
  • --gateway: 原有主路由地址;
  • -o parent: 指定物理网卡;
  • openwrt: 为网络命名;

获取并导入 OpenWRT 镜像

https://openwrt.ai 下载适合自己设备架构的镜像,例如 x86_64 架构的 Generic 镜像;

下载后导入镜像,此命令会将镜像命名为 openwrt:

bash 复制代码
docker import 文件名.tar.gz openwrt

运行 OpenWRT 容器

创建容器并连接至刚才创建的网络:

bash 复制代码
docker run -d \
  --restart always \
  --name openwrt \
  --network openwrt --privileged=true \
  openwrt /sbin/init

配置 OpenWRT 网络信息

进入容器:

bash 复制代码
docker exec -it openwrt bash

编辑网络配置文件:

bash 复制代码
nano /etc/config/network

参考配置如下:

bash 复制代码
config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.10.2'     # OpenWRT 地址
        option netmask '255.255.255.0'
        option gateway '192.168.10.1'    # 主路由地址
        option peerdns '0'
        list dns '223.5.5.5'

配置完成后重启网络服务:

bash 复制代码
/etc/init.d/network restart

进入 Web 管理页面

此时你可以在浏览器访问 http://192.168.10.2 进入 OpenWRT 的 LuCI 管理界面,初始用户名密码均为 root;

进入系统后,可以通过"网络向导"配置旁路由模式,建议:

  • IP 地址:192.168.10.2(与前文一致)
  • 网关与 DNS:均填写主路由地址(如 192.168.10.1)

开启 DHCP 功能(可选)

若希望 OpenWRT 自动分配 IP,则需要:

  • 关闭主路由的 DHCP 服务;
  • 在 OpenWRT 中开启 DHCP 功能,并配置其 IP 分配范围;

总结

部署完成后,你的 OpenWRT 容器就具备完整的旁路由能力,可以实现流量分流、广告屏蔽等高级功能;同时也得益于 Docker 的管理便利,容器化的 OpenWRT 更便于升级、迁移和备份,推荐给动手能力强的朋友们试试;

阅读原文:Docker运行OpenWRT

相关推荐
用户03284722207015 小时前
如何搭建本地yum源(上)
运维
武子康17 小时前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn864 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉4 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造