Skip to content

本文使用 Docker 进行 OpenWRT 软路由搭建

获取 OpenWRT 镜像

OpenWRT官网进行固件下载

点击预览

构建镜像

  1. 创建一个文件夹,例如openwrt,将下载的镜像放入该文件夹
  2. openwrt 目录下创建 Dockerfile 文件
dockerfile
FROM scratch

ADD *.tar.gz /

EXPOSE 80

USER root

CMD ["/sbin/init"]
  1. rootfs.tar.gz 中的/etc/config 解压到 openwrt 下的 config 目录下
shell
mkdir temp && tar -zxvf *.tar.gz -C temp && mv temp/etc/config config && rm -rf temp
  1. 在 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'
  1. 在 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
  1. 使用 docker compose up -d 启动容器,访问 192.168.0.4 即可

OpenWRT 配置

  1. 设置登录密码, 也可以顺便设置 sshkey
    点击预览
  2. 修改软件源, 推荐中科大的, 用 ssh 登录后执行下面代码
shell
sed -i 's/downloads.openwrt.org/mirrors.ustc.edu.cn\/openwrt/g' /etc/opkg/distfeeds.conf && opkg update
  1. 安装中文包 opkg install luci-i18n-base-zh-cn
    点击预览
  2. 安装 openclash, 开源地址, 安装后需要重启 openwrt 才可以加载 openclash