-Intro:为什么要安装⌈OpenWrt⌋和写本篇文章?
本段引用自 Copilot 智能总结:
刷OpenWrt可以为你的路由器带来许多好处,使其功能更加丰富和强大。OpenWrt是一个开源的嵌入式Linux系统,专为路由器和其他嵌入式设备设计。以下是刷OpenWrt的一些主要好处:自定义功能和扩展性、提高网络性能和安全性、支持多种硬件和协议、学习和开发平台。
在查阅网上资料时,发现网上很多资料都已过期或是在操作过程中出现了错误,因此写下本篇文章来记录步骤。
-Preparation:准备阶段
本篇博客更新于 2025年5月2日,部分信息可能已过期,请注意甄别。
基础环境:未经任何修改的Ubuntu 24.04 Server环境。
-Step1:基础准备
NOTE若你已经换源并安装 Docker,可跳过该步骤。
通过SSH登入你的树莓派。
在 命令行输入 来登入root用户,需要身份验证。
sudo -i输入 并跟随屏幕操作指示来进行换源操作。
bash <(curl -sSL https://linuxmirrors.cn/main.sh)随后,输入 并全部按照默认指示来实现 更换Docker源 与 安装Docker的操作。
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)-Step2:网络配置
本步骤将帮助你进行基本网络的配置
·开启网卡混杂模式
混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。
树莓派需要在 eth0 接口开启。
sudo ip link set eth0 promisc on执行下方命令,若返回的信息含PROMISC即表示成功。
ifconfig eth0·配置容器网络
1.创建 macvlan
macvlan是一种网卡虚拟化技术,允许在同一个物理网卡上配置多个 MAC 地址,即多个interface,每个interface可以配置自己的 IP;macvlan直接通过以太网的interface连接到物理网络,因此性能极好因此,软路由需要使用
macvlan配合混杂模式在容器中实现路由功能Docker 创建
macvlan时要确定所在的网段,可以在路由器后台进行确认;如小米路由器常用的是192.168.31.0/24网段;在创建网络时需要保证子网网段subnet和网关地址gateway参数与当前网络一致
docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.1 -o parent=eth0 macnet2.创建容器
docker run --restart always --name openwrt -d --network macnet --privileged sulinggg/openwrt:rpi4 /sbin/initWARNING此命令仅限 RPI 4B 使用,3B未经过测试,请使用对应型号的镜像。
3.修改容器网络配置
创建好容器后通常无法上网,需要进入bash修改网络配置。
docker exec -it openwrt bash修改网络配置
vi /etc/config/network你应该找到:config interface 'lan'这一项目
将其修改为
config interface 'lan'option type 'bridge'option ifname 'eth0'option proto 'static'option netmask '255.255.255.0'option ip6assign '60'option ipaddr '192.168.31.41'option gateway '192.168.31.1'option dns '114.114.114.114'NOTE上表中的
ipaddr为OpenWrt的IP地址,用于访问路由器。
gateway及网关,填写你主路由器的地址,仅接受纯IP。
dns通常填写国内DNS或是主路由地址。
修改完成后重启容器网络
/etc/init.d/network restart重启完成后在浏览器访问 http://192.168.31.41 输入用户名root和密码root来登入后台。
WARNING请在登入后立即更改访问密码,以免非法登录。
配置重启后网卡默认使用混杂模式
网卡的混杂模式会在系统重启后失效,需要在系统启动后自定配置混杂模式。
我们以注册系统服务的方式来实现这一操作。
sudo bash -c 'cat > /etc/systemd/system/eth0-promisc.service' <<'EOS'[Unit]Description=Makes interfaces run in promiscuous mode at bootAfter=network-online.target
[Service]Type=oneshotExecStart=/usr/sbin/ip link set dev eth0 promisc onTimeoutStartSec=0RemainAfterExit=yes
[Install]WantedBy=default.targetEOS随后,启用注册的服务
sudo systemctl enable eth0-promiscNOTE对于不想配置代理的用户,该教程到此结束。
-Step3:配置客户端
对于 Android/IOS 设备,在WLAN界面设置。
OpenClash端口为 7890

对于 Windows 设备,在网络与Internet连接-代理-手动设置页面设置。
.5c19n6zv2h.webp)
-Step4:配置代理
使用的镜像已经自带PassWall``SS+``Openclash这三个插件。
本教程以Openclash为基础配置
·导入配置
1.点击服务-OpenClash进入界面。点击上方配置文件订阅,按照页面提示导入配置。
NOTE通常无需配置
订阅转换模板,请勿勾选相关选项。
·配置模式
2.点击全局设置,点击下方切换页面到 Fake-IP 模式,选择增强,按如图所示配置。
.lw0os88p2.webp)
WARNING
- OpenClash 运行模式:
Fake-IP(增强)模式:
客户端进行通讯时会先进行DNS查询目标IP地址,拿到查询结果后再尝试进行连接。Fake-IP 模式在客户端发起DNS请求时会立即返回一个保留地址(198.18.0.1/16),同时向上游DNS服务器查询结果,如果判定返回结果为污染或者命中代理规则,则直接发送域名至代理服务器进行远端解析。此时客户端立即向Fake-IP发起的请求会被快速响应,节约了一次本地向DNS服务器查询的时间。实际效果:客户端响应速度加快,浏览体验更加顺畅,减轻网页加载时间过长的情况。Redir-Host(兼容)模式:
客户端进行通讯时DNS由Clash先进行并发查询,等待返回结果后再尝试进行规则判定和连接。当判定需要代理时,使用fallback组DNS的查询结果进行通讯实际效果:客户端响应速度一般,可能出现网页加载时间过长的情况。Redir-Host(TUN)模式
此模式与Redir-Host(兼容)模式类似,不同在于能够代理所有UDP链接,提升nat等级,改善游戏联机体验。Fake-IP(TUN)模式:
此模式与Fake-IP(增强)模式类似,不同在于能够代理使用域名的UDP链接。Redir-Host(游戏)模式
此模式与Redir-Host(兼容)模式类似,不同在于能够代理所有UDP链接,提升nat等级,改善游戏联机体验。Fake-IP(游戏)模式:
此模式与Fake-IP(增强)模式类似,不同在于能够代理所有UDP链接,提升nat等级,改善游戏联机体验。
3.在下方的设置 SOCKS5/HTTP(S) 认证信息中删除认证信息,如果你不想要设备输入密码才能访问代理的话。
4.点击上方Meta设置,启用Meta内核、启用 TCP 并发、启用流量(域名)探测这三个选项。
5.点击上方大陆白名单订阅,设置自动更新。
随后点击下方的 保存配置,在主界面开启 OpenClash 即可。
教程完
作者
YanLuo洛,
Coolapk@xtawa
如有问题,欢迎联系 邮件,我将会尽力回答。
致谢:
引用了下列内容: