Skip to content

Raspberry Pi OpenWrt/ImmortalWrt configuration guide. Full setup for OpenClash, DNS optimization, and network routing.

Notifications You must be signed in to change notification settings

Ronchy2000/Raspi-ImmortalWrt

Repository files navigation

🇨🇳 中文文档 | 🇺🇸 English

树莓派 OpenWrt 软路由配置指南

ImmortalWrt Raspberry Pi License Status

从零开始,打造属于你的全屋智能网关

🎯 核心特性

🚀 全屋科学上网 • 📱 智能分流 • 🔒 安全可靠 • ⚡ 高性能路由


📚 快速导航

🔥 快速开始⚙️ 初始配置🌐 网络配置🎨 功能扩展📖 完整文档


🌟 项目简介

💡 编者按:毕业后买了一块树莓派4B,装了Ubuntu学习linux的相关操作后,但很快就闲置了下来。偶然听说可以刷OpenWRT系统实现多播,以及当软路由科学上网用,于是又走上了一番折腾之路,在此记录下来。

本项目提供完整的树莓派软路由配置方案,从固件选择、系统烧录到高级功能配置,助你轻松打造一台功能强大的智能网关。

✨ 为什么选择 ImmortalWrt?

特性 官方 OpenWrt ImmortalWrt
插件数量 基础 🎯 丰富
CDN加速 ✅ 支持
中文支持 一般 ✅ 完善
更新频率 标准 🚀 活跃

下文所述的 OpenWrt 均指 ImmortalWrt

🎁 本项目提供什么?

📝 完整配置教程
从零开始的详细步骤
🤖 智能运维脚本
自动监控、智能备份、故障自愈
📦 常用工具集
一键安装、备份恢复脚本

常用设置及文档:

  1. 烧录工具及步骤:
  1. 拨号设置
  1. OpenWrt备份与恢复: 系统已升级为智能备份策略,仅在配置变更时触发备份,并自动记录变更详情。
  1. 系统监控与维护 🔥
  1. 软件空间扩容
  1. Openclash科学上网设置

前言

官方 OpenWrt 固件过于精简,因此我选择了功能更丰富的 ImmortalWrt,它提供了更多插件以及 CDN 加速源,大大提升了使用体验。本文记录了我在树莓派4B上配置 OpenWrt 软路由的完整过程,希望能帮助到有类似需求的朋友。 下文所述的OpenWrt都是指ImmortalWrt,可以把ImmortalWrt理解成功能更丰富的OpenWrt,但本身还是OpenWrt系统。

硬件环境

  • 设备:Raspberry Pi 4B/400/CM4 (64bit)
  • 系统版本:ImmortalWrt 24.10.3 r33451-5531f6bc76a3
  • 架构:aarch64_cortex-a72 (bcm27xx/bcm2711)
# 确认当前版本/平台
cat /etc/openwrt_release; uname -m
# 输出示例:
# DISTRIB_ID='ImmortalWrt'
# DISTRIB_RELEASE='24.10.3'
# DISTRIB_REVISION='r33451-5531f6bc76a3'
# DISTRIB_TARGET='bcm27xx/bcm2711'
# DISTRIB_ARCH='aarch64_cortex-a72'
# DISTRIB_DESCRIPTION='ImmortalWrt 24.10.3 r33451-5531f6bc76a3'
# aarch64

固件选择

  • 固件源:ImmortalWrt Firmware Selector
  • 注意事项:
    • EXT4 版本会覆盖掉所有的用户设置 覆盖写入(如果需要重新配置,请刷入此固件!)
    • SQUASHFS 版本写入后,用户的配置不变。增量写入 具体固件包可以在release中找到。

烧录固件

详细步骤请见文档:docs/Write_Image.md

初始配置

连接到 OpenWrt

  1. 无线连接,即ssh连接:(推荐)
  • i. 连接树莓派wifi(默认名称:ImmortalWrt
  • ii.浏览器输入192.168.1.1,进入后台,默认密码为空,直接点击确定。
  • ii.(与上方二选一) 使用本地ssh工具,address: 192.168.1.1, 端口:22, Username: root, Password: 默认为空/编译固件时候的密码,请见固件选择
  1. 有线连接:
  • i. 使用网线直连树莓派;
  • ii. 更改本地以太网 IPv4 地址为 192.168.1.x 网段, 子网掩码255.255.255.0;(末尾x 可以是2-255范围中的任意整数),网关填写:192.168.1.1
  • iii. 访问 192.168.1.1 进入 OpenWrt 的web后台;
  • iiii. 默认账户:root; 默认密码:(空)或烧录时设置的密码。

方法2适用于复杂的校园网环境(尤其是同一个实验室中出现不同局域网的情况)

基础设置

连接后,第一步先修改密码。第二部关闭IPv6设置。

网络配置

接下来需要配置网络,如果您将路由器lan口与树莓派的网口连接,那么不用做任何改动,连接到树莓派的wifi即可成功上网。

最简单用法

将树莓派的单个网口连接到光猫或路由器的LAN口,此时任何终端设备连接上树莓派的wifi后,都可上网。

但如果你是在校园网环境下,或者是想让树莓派当主路由器,即有拨号需求,请看以下方法。

单网口树莓派配置 WAN 和 LAN

详见:https://www.youtube.com/watch?v=pEf-MjqTFJ4&list=PLma6Xp9L8ZNkhKv2AFYMrwY4_Vb1J3uxG&index=2 最初考虑使用 VLAN 技术实现单网口分离 WAN 和 LAN,但由于交换机不支持 VLAN,最终放弃这种方式。 说人话: 由于树莓派只有单个网口,所以通过最简单用法,只能做到其他设备只能通过wifi连接,不能再通过网线连接。如何能实现其他设备网线连接到树莓派?答:用一个有VLAN功能的交换机即可实现。(但我没有哈哈哈)

校园网拨号解决方案

如果要家庭拨号,那么此时的软路由做主路由。相关的拨号账户的获取,这里不再展开。请见桥接模式的教程

校园网拨号较为复杂,可能会识别出设备类型导致连接失败。

具体拨号设置步骤请见:docs/PPPoE_Connection.md


至此,你的全屋设备连接到树莓派wifi,都可以成功上网了!

接下来配置紧张刺激的科学上网插件,来实现全屋全球漫游!

功能扩展

主题美化

安装 cargo luci 主题,提升界面美观度(参考视频 33:12)https://www.youtube.com/watch?v=JfSJmPFiL_s&t=1992s

如果您自己会安装,请直接按照以下步骤操作:

系统--软件包--更新列表--没有报错--安装luci-theme-argon--安装luci-i18n-ttyd-zh-cn

插件安装:

  • luci-app-openclash
  • luci-i18n-passwall-zh-cn
  • luci-i18n-homeproxy-zh-cn

插件位置在:侧边栏的“服务”标签页。

插件安装好了,接下来只要完成最后一步,配置代理工具,之后您就可以在全屋的任意终端设备上实现科 学 上 网了!

科学上网配置

说实话,折腾软路由到现在,不就是为了这一刻嘛? 当你真正配置好科学上网,看着全屋设备都能自由、快速地访问外网,那一瞬间的畅快,绝对是所有折腾的意义所在。

有人说,科学上网只是个工具,我每个设备都安装上代理工具不就行了?但对折腾党来说,要做到优雅的科学上网太值得去花费精力了。从节点选择、DNS分流到透明代理,每一步都暗藏玄机。配得好,你的网络能像丝一样顺滑;配不好,整天都在“连不上”“打不开”的循环里。

接下来,就让我们配置openclash,看看怎么让 OpenWrt 的软路由真正“飞”起来。

  1. 安装科学上网插件Openclash等 根据个人喜好下载添加即可(不能同时使用!)
  • Openclash (强烈推荐,用的人最多,本文教程也是基于此)
  • passWall

安装好 OpenClash 插件后,先看一遍这段视频,按步骤完成基础配置即可: 链接:https://www.youtube.com/watch?v=1U9xkpexHOE

与视频不同的是,视频里的 config.yaml 在实际使用中会出现两个问题:一是 LinkedIn无法正常访问,二是像 IEEE 这类学术网站无法正确识别学术网络的 IP,导致需要频繁切换网络才能下载文献。本文提供的配置方案针对规则与 DNS 分流做了调整,解决了上述问题,并给出可复现的示例与验证步骤。

请使用config_linkedin.yaml作为配置文件。

本配置说明:文献库,steam下载走直连,linkedin利用海外DNS访问,防止跳转回国,更多功能请提PR!

  1. 高级使用方法 自定义规则添加:

参考资料

https://www.youtube.com/watch?v=s84CWgKus4U&t=105s

总结

通过以上配置,成功将树莓派打造成了一台功能强大的软路由,解决了校园网环境下的网络连接问题,并实现了科学上网等高级功能。ImmortalWrt 相比官方 OpenWrt 提供了更丰富的插件支持,大大提升了使用体验。

希望这份配置指南能对你有所帮助!如有问题,欢迎在评论区交流讨论。

系统监控与维护

📚 完整文档: System_Maintenance.md | 🛠️ 脚本说明: scripts/README.md

系统已配置完善的自动化监控,确保稳定运行。

监控概览

监控项目 频率 脚本 功能
🏥 健康检查 每30分钟 health_monitor.sh 内存/服务/连接数监控,异常自动处理
👁️ LuCI看门狗 每5分钟 luci_watchdog.sh Web界面自动修复
💾 系统备份 每天15:00 smart_backup.sh 智能按需备份 (本地3份+远程30天)
🔄 OpenClash更新 每周 官方脚本 规则/IP库/GeoData自动更新

快速命令

# 查看系统状态
ssh root@192.168.1.1 "uptime && free -h && df -h"

# 查看监控日志
ssh root@192.168.1.1 "tail -50 /root/health_monitor.log"

# 手动触发备份
ssh root@192.168.1.1 "/root/smart_backup.sh"

# 重启服务
ssh root@192.168.1.1 "/etc/init.d/openclash restart"
ssh root@192.168.1.1 "/etc/init.d/uhttpd restart"

常见问题

❌ haproxy 崩溃循环 (系统日志: "haproxy is in a crash loop")

原因: haproxy 配置的后端服务器不存在

解决:

ssh root@192.168.1.1 "/etc/init.d/haproxy stop && /etc/init.d/haproxy disable"
🌐 WiFi连接但无网络
ssh root@192.168.1.1 "/etc/init.d/openclash restart"
💻 LuCI 无法访问
ssh root@192.168.1.1 "/etc/init.d/uhttpd restart"

查看LuCI看门狗日志:

ssh root@192.168.1.1 "tail -20 /root/luci_watchdog.log"
💿 SD卡寿命担忧

系统已优化:

  • 每天写入: ~65MB
  • 年写入量: ~24GB (仅占SD卡容量75%)
  • 预计寿命: 13.5年+ (远超5年目标) ✅

详见: System_Maintenance.md#SD卡寿命优化

部署监控脚本

如需在新系统部署监控脚本,使用项目中的脚本:

# 从项目目录执行
cd Raspi-ImmortalWrt/scripts

# 复制脚本到路由器
scp health_monitor.sh luci_watchdog.sh smart_backup.sh root@192.168.1.1:/root/

# 设置权限并配置定时任务
ssh root@192.168.1.1 << 'EOF'
chmod +x /root/*.sh
crontab -l | grep -v "health_monitor\|luci_watchdog\|smart_backup" > /tmp/cron.tmp
cat >> /tmp/cron.tmp << 'CRON'
*/30 * * * * /root/health_monitor.sh
*/5 * * * * /root/luci_watchdog.sh
0 15 * * * /root/smart_backup.sh >> /root/smart_backup.log 2>&1
CRON
crontab /tmp/cron.tmp && rm /tmp/cron.tmp
echo "✅ 监控脚本已部署"
EOF

详见: scripts/README.md


软件空间扩容

❤️ 感谢您的关注!

Views

About

Raspberry Pi OpenWrt/ImmortalWrt configuration guide. Full setup for OpenClash, DNS optimization, and network routing.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages