OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

2023-11-04 18:50:11 46点赞 395收藏 24评论

本文环境:

ubuntu 20.04,x86_64

Docker version 20.10.21

本教程适合入门

设置网卡混杂模式

ifconfig eno1 promisc

eno1是我的物理网卡,如果不知道可以通过ifconfig查看

通过ifconfig也可以确认已经开启混杂模式(PROMISC)

OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

添加macvlan类型的docker网络

sudo docker network create -d macvlan

--subnet=192.168.0.0/24

--gateway=192.168.0.1

-o parent=eno1 openwrt_net

注意:subnet、gateway要根据实际网络环境设置,我这里局域网是192.168.0.x所以设置子网

192.168.0.0/24,gateway设置为我自己主路由的地址192.168.0.1

OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

下载镜像

我是X86架构64位CPU,所以选择对应x86_64/amd64的镜像,拉取镜像:

sudo docker pull registry.cn-shanghai.aliyuncs.com/suling/openwrt:x86_64

镜像来源镜像来源

自于SuLingGG大佬分享的镜像

启动镜像及network设置

sudo docker run --restart always

--name openwrt

-d --network openwrt_net --privileged

registry.cn-shanghai.aliyuncs.com/suling/openwrt:x86_64 /sbin/init

启动后,进入容器

docker exec -it openwrt /bin/bash

如果不熟悉命令行,也可以从Portainer中进入容器

然后修改网络配置文件

vim /etc/config/network

将红色框内容根据实际情况修改为可用的IP地址:

option ipaddr -- 容器IP,也就是openwrt系统的地址

option gateway -- 设置为主路由的地址

option dns -- 这里先设置为一个公共的dns,这里选择了腾讯dns,根据自己喜好选择

network配置文件network配置文件

然后重启网络服务:

/etc/inti.d/network restart

以下是直接从命令行进行上述设置的示例

重启network重启network

旁路由配置

上面设置了ipaddr地址为192.168.0.201,从这个地址登录系统web端

OpenWrt webOpenWrt web

初始密码为空,为了安全需要登录后重新设置

要将openwrt设置为旁路由,需要三个必要配置:

  1. 【网络】-【接口】-【物理设置】,将【桥接接口】选项去掉

网络-接口网络-接口OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

2. 【网络】-【防火墙】-【自定义规则】增加规则:

iptables -t nat -I POSTROUTING -j MASQUERADE

防火墙规则防火墙规则
  1. 检查下【网络】-【接口】-【基本配置】,是否符合本地环境,【使用自定义的 DNS 服务器】先配置为一个公共dns

OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

PC端修改网关为这个旁路由的地址(移动端类似)

OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

至此,Docker部署openwrt,配置为旁路由的步骤就结束了,PC通过旁路由可以正常上网。

AdGuard安装和设置

安装AdGuard

进入容器docker exec -it openwrt /bin/bash

执行 wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

脚本会根据操作系统自动选择对应版本下载,并安装

OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

配置AdGuard

安装完成后,进入到AdGuard的web页面 192.168.0.201:3000

注意:192.168.0.201是我的openwrt容器的ip地址,需要根据实际环境替换

进入web页面后,根据导引设置,注意DNS服务器端口原为53,需要设置为其他端口号,这里设置为5300。

OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

然后再设置DNS,【设置】--【DNS设置】--【上游DNS服务器】这里添加了三个公共的DNS

可以根据自己需要设置

并选择【并行请求】

上游DNS服务器上游DNS服务器

再接下来,【过滤器】--【DNS黑名单】添加自定义过滤规则

我这里添加了一条规则,规则URL:https://gitlab.com/cats-team/adrules/-/raw/main/dns.txt

添加过滤规则添加过滤规则

OpenWrt上的设置

以上AdGuard页面上设置完成后,需要再对OpenWrt的设置做响应调整。

然后回到openwrt页面【网络】-【接口】-【基本设置】,将【使用自定义的DNS服务器】设置为192.168.0.201,即本容器IP,再次提醒需要根据实际环境设置。

OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

【网络】-【防火墙】-【自定义规则】修改两条规则,将--to-ports修改为AdGuard配置的DNS端口5300。

修改防火墙规则修改防火墙规则

开启AdGuard的效果比对如下。实际上不增加自定义过滤规则就能达到这个效果了。

OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

从AdGuard仪表盘可以验证配置是否生效

OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

Docker环境下保存配置

请注意本文的OpenWrt是运行在容器中的,各种配置保存在容器的存储中,如果容器重启可能造成配置丢失。一种简单粗暴的办法是,将配置好的容器保存为新的镜像。

sudo docker commit openwrt openwrt_new:202311v1

"openwrt":运行中的容器名

"openwrt_new:202311v1":新镜像名称:tag

然后remove旧的容器,用新镜像启动

sudo docker run --restart always --name openwrt

-d --network openwrt_net --privileged

openwrt_new:202311v1 /sbin/init

旁路由对网速的影响

在openwrt旁路由模式下,对wifi和有线的网速有一定影响,网上也有一些关于旁路由造成网速变慢的讨论。为了验证上述情况,进行了实测。

为了让减少对网速的影响,参考《OpenWrt 网速慢的解决方法》,对旁路由进行一些设置。进入【网络】-【防火墙】,将启用 SYN-flood 防御的√去掉(默认是选中的),将【lan】的“IP动态伪装”选中,如下图。也可以开启Turbo ACC加速,据说效果不明显。

OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

其实,上述设置也不见得有特别明显的效果。

然后通过测速软件对比了使用旁路由前后网速的变化(非专业工具和非专业知识背景)。

首先,对比PC(有线连接到主路由)上将网关设置为openwrt旁路由对网速的影响,结果见下图。使用360自带的测速器,可以看到使用旁路由时最大连接速度低于前后两次未使用旁路由的测试,但是衰减幅度不算大。

OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

然后,对比手机wifi连接情况下的速度。测试实例如下图,左边为旁路由模式,右边为非旁路由。经过几次测试,发现在wifi下,两者差异并不大。

OpenWrt in Docker: 打造旁路由,配置AdGuard,只需几步!

以上实验的主路由为某AX3000路由器。但是,如果主路由换成wifi5 AC1900M的路由器,使用旁路由对网速影响较大,速度至少衰减一倍以上。

小结

当然OpenWrt的功能远远不止上述功能,本文仅是记录入门操作作为备忘,其他进阶功能还待继续探索。

「双11全民创作季」它终于来啦!带#双11给你种草#、#双11购后晒#分享购物攻略经验、入手心得,不仅可以抽取AirPods4、3元E卡,还能赢iPhone 16 Pro/华为P70 Pro,快来参与活动吧,活动详情戳

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

¥2399.00

幻隐 HV2000 Pro NVMe M.2 固态硬盘 1TB(PCI-E3.0)

幻隐 HV2000 Pro NVMe M.2 固态硬盘 1TB(PCI-E3.0)

¥233.00

倍控j4125/J4105四六网口千兆软路由迷你主机家用办公嵌入式工控机无风扇静音esxi虚拟机爱快LEDE系统openwrt

倍控j4125/J4105四六网口千兆软路由迷你主机家用办公嵌入式工控机无风扇静音esxi虚拟机爱快LEDE系统openwrt

¥849.00

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2399元起

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

QNAP 威联通 TS-464C 4盘位NAS(赛扬N5095、8GB)

1899元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-462C 4盘位NAS(赛扬N4505、4GB)

1699元起

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

QNAP 威联通 TS-216 双盘位NAS (ARM Cortex A55、2GB)

998.85元起

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

QNAP 威联通 TS-416 四盘位NAS(Cortex-A55、4GB)

1351.08元起

QNAP 威联通 TS-564 五盘位NAS (N5095、8GB)

QNAP 威联通 TS-564 五盘位NAS (N5095、8GB)

1900元起

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

QNAP 威联通 TS-264C-4G 双盘位 NAS存储(N5105、4GB)

1849元起

QNAP 威联通 TS-873A 8盘NAS(V1500B、8GB)

QNAP 威联通 TS-873A 8盘NAS(V1500B、8GB)

7200元起

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

QNAP 威联通 TS-262C 双盘位NAS(赛扬N4505、4GB)

1299元起

QNAP 威联通 TS-932PX 9盘位NAS(AL324、4GB)

QNAP 威联通 TS-932PX 9盘位NAS(AL324、4GB)

4653元起

QNAP 威联通 TVS-675 6盘位 NAS网络存储(兆芯KX-U6580、8GB)

QNAP 威联通 TVS-675 6盘位 NAS网络存储(兆芯KX-U6580、8GB)

5299元起

QNAP 威联通 TS-264C 双盘位NAS (N5105、4GB)

QNAP 威联通 TS-264C 双盘位NAS (N5105、4GB)

1899元起

QNAP 威联通 TS-832PX 8盘位NAS(AL324、4GB)

QNAP 威联通 TS-832PX 8盘位NAS(AL324、4GB)

6160元起

QNAP 威联通 TS-262C-2G 双盘位NAS(赛扬N4505、2GB)

QNAP 威联通 TS-262C-2G 双盘位NAS(赛扬N4505、2GB)

1499元起

QNAP 威联通 TS-1655 十六盘位NAS(TS-1635AX升级版)

QNAP 威联通 TS-1655 十六盘位NAS(TS-1635AX升级版)

17500元起

文中相关商品

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色
幻隐 HV2000 Pro  NVMe M.2 固态硬盘 1TB(PCI-E3.0)
24评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
395
扫一下,分享更方便,购买更轻松