Loading

有关openwrt旁路网关的那些事

前言

性能羸弱的家用硬路由已经无法满足日益增长的上网需求,
对访问外网有需求的小伙伴建议和我一样转向旁路网关模式,
硬路由负责拨号+NAT确保网络稳定,软路由负责旁路网关,
同时有需求的设备手动修改网关和DNS实现代理。

设备

之前一直使用树莓派,后续也用过z8350单网口低功耗x86小主机,板载2G内存支持AES指令集,
通过Docker实现了openwrt + uptime-kuma + qbittorrent后因USB3.0不能满速置换。
实际上跑网关服务,支持AES的Arm处理器+1GB内存+千兆Ethernet足够满足日常使用。

搭建

搭建过程主要参考文末博客,整理在此防止失联。

sudo ip link set eth0 promisc on 
docker network create -d macvlan --subnet=192.168.2.0/24 --gateway=192.168.2.1 -o parent=eth0 macnet
docker pull sulinggg/openwrt:latest
docker run --restart always --name openwrt -d --network macnet --privileged sulinggg/openwrt:latest /sbin/init
docker exec -it openwrt bash
vim /etc/config/network
# option ipaddr '192.168.2.100'
# option gateway '192.168.2.1'
# option dns '192.168.2.1'
/etc/init.d/network restart

出于性能考虑选择了macvlan模式进行部署,注意打开host网卡的混杂sudo ip link set eth0 promisc on
以NanoPi为例image选择国内镜像docker pull registry.cn-shanghai.aliyuncs.com/suling/openwrt-mini:armv8
如果不想折腾可以选择自带插件的非mini版,能够做到开箱即用,内存开销会略大一些。

问题

目前已知的一个Bug是启停Docker服务或openwrt容器会导致系统一分钟之内重启,
正常使用没问题,推测是Arm64的缘故因为N1上也能复现,暂时未见于x86平台。

参考

在Docker 中运行 OpenWrt 旁路网关 | 美丽应用

posted @ 2022-04-30 12:19  azureology  阅读(1528)  评论(0)    收藏  举报