本文使用 Docker 进行 OpenWRT 软路由搭建
获取 OpenWRT 镜像
在OpenWRT官网进行固件下载

点击预览
构建镜像
- 创建一个文件夹,例如
openwrt,将下载的镜像放入该文件夹 - 在
openwrt目录下创建 Dockerfile 文件
dockerfile
FROM scratch
ADD *.tar.gz /
EXPOSE 80
USER root
CMD ["/sbin/init"]- 将
rootfs.tar.gz中的/etc/config解压到openwrt下的config目录下
shell
mkdir temp && tar -zxvf *.tar.gz -C temp && mv temp/etc/config config && rm -rf temp- 在 config 目录创建
network文件
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config interface 'lan'
option device 'eth0'
option proto 'static'
option ipaddr '192.168.0.4' # 设置一个还没使用的IP 按自己家的网络配置
option netmask '255.255.255.0' # 按自己家的网络配置
option gateway '192.168.0.1' # 真实路由器地址
option dns '223.5.5.5'- 在 openwrt 目录下创建
docker-compse.yaml文件
yml
version: "3.9"
# docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=enp3s0 macnet
networks:
openwrt:
driver: macvlan
driver_opts:
parent: enp3s0
ipam:
config:
- subnet: 192.168.0.0/24 # 自己家的网络子网
gateway: 192.168.0.1 # 真实路由器地址
services:
openwrt:
build: .
container_name: openwrt
restart: always
networks:
openwrt:
ipv4_address: 192.168.0.4 # 和上面network配置一致
volumes:
- ./config:/etc/config
privileged: true- 使用
docker compose up -d启动容器,访问192.168.0.4即可
OpenWRT 配置
- 设置登录密码, 也可以顺便设置 sshkey
点击预览 - 修改软件源, 推荐中科大的, 用 ssh 登录后执行下面代码
shell
sed -i 's/downloads.openwrt.org/mirrors.ustc.edu.cn\/openwrt/g' /etc/opkg/distfeeds.conf && opkg update- 安装中文包
opkg install luci-i18n-base-zh-cn
点击预览 - 安装 openclash, 开源地址, 安装后需要重启 openwrt 才可以加载 openclash