Skip to content

Docker安装OpenWrt旁路由

Ross Shen edited this page Mar 26, 2022 · 6 revisions

测试环境

📝 可参考通用模块加载的方法自动加载模块。

📝 REDIRECT模式需依赖xt_comment.ko,TPROXY模式还需xt_socket.ko

安装OpenWrt

使用ifconfig确认网卡标识符,然后开启混杂模式

ip link set eth0 promisc on

创建一个docker macvlan网络,请自行调整网段,主路由网关地址,以及群晖网卡标识符

docker network create -d macvlan --subnet=192.168.1.0/24 --gateway 192.168.1.1 -o parent=eth0 mac-net

提前拉取OpenWrt容器固件

docker pull esirpg/buddha:latest

启动OpenWrt容器固件,指定旁路由IP 192.168.1.2

docker run -d \
  --restart always \
  --name esirpg-buddha \
  --privileged \
  -v /volume1/docker/openwrt-config:/etc/config \
  --network mac-net \
  --ip=192.168.1.2 \
  esirpg/buddha:latest \
  /sbin/init

⚠️ 可以选择挂载之前备份的config目录,容器重建后绝大部分配置信息都在,一般初次安装不要挂载

进入容器设置OpenWrt LAN IP 192.168.1.2,如果挂载了config可略过

docker exec -it esirpg-buddha ash
vi /etc/config/network
/etc/init.d/network restart

配置OpenWrt

访问 http://192.168.1.2,在luci中进行后续设置

  • 设置LAN接口网关为主路由网关192.168.1.1,并关闭DHCP服务以及停用所有IPv6服务
  • 防火墙基本设置中,转发务必设置为接受,LAN区域也都设置为接受
  • DHCP/DNS设置中设置DNS转发地址为任意上游DNS,并关闭重绑定保护(为了能够解析本地域名)
  • 删除WAN,VPN等所有其他接口和防火墙区域,只需保留LAN即可
  • 按照常规步骤配置 ShadowSocksR Plus+ 或 PassWall
  • 如果使用 PassWall TPROXY 模式,除了需要xt_socket.ko模块之外,经测试还需禁用LAN接口桥接