通过 Docker 部署 OpenWrt 指南
部署步骤
1. 开启网卡混杂模式
注意:
enp1s0需要根据ifconfig命令查看自己的本地网卡名称进行替换
sudo ip link set enp1s0 promisc on
2. 创建 Macvlan 虚拟网卡
参数说明:
--subnet:子网网段--gateway:网关地址-o parent:虚拟网卡的真实父级网卡(第一步中的本地网卡名称)
docker network create -d macvlan --subnet=192.168.2.0/24 --gateway=192.168.2.1 -o parent=enp1s0 macnet
3. 验证虚拟网卡创建
成功创建后能看到名称为
macnet的虚拟网卡
docker network ls
4. 拉取 OpenWrt 镜像
国内环境使用
registry.cn-hangzhou.aliyuncs.com/zzsrv/openwrt:latest
玩客云32位使用dickhub/openwrt:arm_cortex-a5_vfpv4
docker pull zzsrv/openwrt:latest
5. 创建并运行容器
docker run --restart always --name openwrt -d --network macnet --privileged zzsrv/openwrt /sbin/init
6. 进入容器内部环境
docker exec -it openwrt bash
7. 修改网络配置
根据实际情况修改网络配置,修改完成后保存退出
vi /etc/config/network
8. 重启容器
退出容器后,在宿主机执行重启命令
docker container restart openwrt
注意事项
| 项目 | 说明 |
|---|---|
| 网卡名称 | enp1s0 需替换为实际网卡名称 |
| 子网网段 | 需与局域网环境匹配,避免冲突 |
| 网关地址 | 需与路由器网关地址一致 |
| 镜像源 | 可使用国内镜像源加速拉取 |
常用命令参考
docker ps
docker logs openwrt
docker stop openwrt
docker rm openwrt
玩客云18.06软件包
cat > /etc/opkg/opkg.conf << 'EOF'
list option roots_dir /usr/lib/opkg
option tmp_dir /var/tmp
option check_signature 0
EOF
cat > /etc/opkg/distfeeds.conf << 'EOF'
src/gz immortalwrt_core http://downloads.immortalwrt.org/releases/18.06-k5.4-SNAPSHOT/targets/at91/sama5/packages
src/gz immortalwrt_base http://downloads.immortalwrt.org/releases/packages-18.06-k5.4/arm_cortex-a5_vfpv4/base
src/gz immortalwrt_luci http://downloads.immortalwrt.org/releases/packages-18.06-k5.4/arm_cortex-a5_vfpv4/luci
src/gz immortalwrt_packages http://downloads.immortalwrt.org/releases/packages-18.06-k5.4/arm_cortex-a5_vfpv4/packages
src/gz immortalwrt_routing http://downloads.immortalwrt.org/releases/packages-18.06-k5.4/arm_cortex-a5_vfpv4/routing
src/gz immortalwrt_telephony http://downloads.immortalwrt.org/releases/packages-18.06-k5.4/arm_cortex-a5_vfpv4/telephony
EOF
rm -rf /var/opkg-lists/*
opkg update