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

相关推荐
TomEval5 分钟前
【接口自动化】12 - 接口自动化进阶
运维·自动化
牢姐与蒯24 分钟前
Linux文件(一).前传之基础IO
linux·运维·服务器
新时代牛马2 小时前
Linux 磁盘管理:分区、文件系统、挂载与扩容
linux·运维·服务器
大树882 小时前
液冷系统的真正瓶颈,藏在那层不到1毫米的材料里
大数据·运维·服务器·人工智能·ai
yindeshuiketang3 小时前
企业FDE架构方法论到实战指南从想法到商业变现:需求·设计·技术·测试·运维·交付·变现-小红书&抖音 AI马教授 职场启航宝
运维·人工智能·架构
网硕互联的小客服3 小时前
没有公网IP,如何让外网访问内网服务器?
运维·服务器
布裘3 小时前
【银河麒麟】服务器系统开机黑屏故障排查与修复
linux·运维·服务器·银河麒麟·无法启动
凌风的跨境分享3 小时前
Temu店群运维提效:定时策略自动化任务全场景实操指南
大数据·运维·前端·人工智能·架构·自动化
Zenova EdgeOS3 小时前
Linux iotop:工业边缘 I/O 高级分析实战
linux·运维·服务器
Black蜡笔小新3 小时前
运维提效!视频汇聚平台EasyCVR视频质量诊断,掉线花屏自动预警
运维·安全·音视频