树莓派OpenWrt防火墙与SSH实战:主路由与旁路由模式下的安全配置
1. 树莓派OpenWrt基础配置
第一次接触树莓派刷OpenWrt的朋友可能会觉得复杂,其实就像给手机刷机一样简单。我去年用树莓派4B搭建家庭网络时,实测整个过程不超过30分钟。关键是要准备好这三个东西:一张16GB以上的高速TF卡、官方OpenWrt镜像文件、以及balenaEtcher烧录工具。
烧录完成后,把TF卡插入树莓派通电启动。这时你会看到一个名为"OpenWrt"的WiFi热点,用电脑连接后访问192.168.1.1就能进入管理后台。默认账号是root,密码password。强烈建议首次登录后立即修改密码,我有次忘记改密码,结果被邻居家小孩误连后乱改配置,折腾了半天才修复。
2. 主路由模式下的防火墙配置
2.1 网络接口设置
在主路由模式下,树莓派要承担整个网络的流量调度。我建议先到"网络→接口"里检查LAN口和WAN口的配置。有个常见坑点是WAN口协议类型选错——PPPoE、DHCP、静态IP这三种要根据你的宽带类型选择。我家用的是电信光纤,就需要选择PPPoE并填写宽带账号密码。
2.2 防火墙基础规则
在"网络→防火墙"页面,需要特别注意这三个区域的设置:
- LAN区域:input建议accept(方便内网管理),output和forward保持accept
- WAN区域:input一定要设为reject(防止外网入侵),forward建议设为accept
- Guest区域(如果有):input设为reject,output和forward设为accept
去年我给朋友配置时,他要求实现"家长控制"功能。这时可以用防火墙的流量规则功能,比如禁止192.168.1.100-192.168.1.150这个IP段在22:00-6:00访问网络。设置方法是在"流量规则"添加新规则,源地址填IP段,目标地址留空,时间范围选好,动作选择reject。
2.3 端口转发实战
端口转发是主路由的必备技能。比如你想在外网访问家里的NAS(假设内网IP是192.168.1.10),就需要设置:
- 名称:NAS_Web
- 外部端口:5000(避免用80等常见端口)
- 内部IP地址:192.168.1.10
- 内部端口:5000
- 协议:TCP
重要安全提示:不要图省事设置DMZ主机!我见过有人把整个内网暴露在外网,结果第二天就中了勒索病毒。正确的做法是只开放必要端口,并且定期检查防火墙日志。
3. 旁路由模式特殊配置
3.1 网络拓扑差异
旁路由模式最大的特点是"不接管DHCP"。我的工作室网络就采用这种方案:主路由是华硕AX86U负责拨号和DHCP,树莓派旁路由只做流量处理。这种架构的好处是即使树莓派宕机,整个网络仍能正常工作。
配置关键点:
- 在LAN口设置里关闭DHCP服务
- IPv4网关要指向主路由IP(如192.168.50.1)
- 使用自定义DNS服务器(建议用主路由IP或公共DNS)
3.2 旁路由防火墙技巧
旁路由模式下有个经典问题:设备通过旁路由上网时,访问内网其他设备速度变慢。这是因为流量走了"设备→旁路由→主路由→目标设备"的迂回路径。解决方法是在防火墙自定义规则添加:
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
这条规则能让返回流量直接走主路由,实测下载速度能从30Mbps提升到200Mbps。不过要注意,如果你的OpenWrt版本≥22.03,需要用nftables语法:
nft add rule ip nat POSTROUTING oifname "eth0" counter masquerade
4. SSH安全加固方案
4.1 基础防护配置
OpenWrt默认开启SSH非常危险,我建议做这些加固:
- 修改默认端口:在/etc/config/dropbear里将Port 22改为50000等高位端口
- 禁用root登录:同样在dropbear配置添加
option RootLogin 'off' - 启用密钥登录:用ssh-keygen生成密钥对,公钥放入
/etc/dropbear/authorized_keys
最近发现个更安全的方案:只允许通过WireGuard VPN连接后再SSH。配置方法是在防火墙将SSH端口仅开放给VPN网段(如10.0.0.0/24)。
4.2 Fail2Ban自动封禁
安装fail2ban能有效防止暴力破解:
opkg update
opkg install fail2ban
配置文件/etc/fail2ban/jail.conf建议这样修改:
[ssh]
enabled = true
port = 50000 # 你的SSH端口
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h
我有台放在公网的树莓派,没装fail2ban时每天有上千次登录尝试,安装后立即清净了。
5. 两种模式对比与选择
5.1 性能实测数据
用iperf3测试树莓派4B在不同模式下的表现:
| 测试项 | 主路由模式 | 旁路由模式 |
|---|---|---|
| NAT吞吐量 | 650Mbps | 950Mbps |
| 延迟(内网) | 1.2ms | 0.8ms |
| CPU占用(满速) | 75% | 45% |
可以看出旁路由模式性能更优,因为它不需要处理NAT转换等重负载任务。
5.2 适用场景建议
根据我的经验:
-
选择主路由模式当:
- 主路由器性能较差
- 需要深度流量控制(如QoS)
- 网络设备少于20台
-
选择旁路由模式当:
- 已有高性能主路由
- 需要透明代理/去广告等进阶功能
- 网络稳定性要求高
有个客户案例很典型:200平米的复式公寓,用单个小米路由器信号覆盖不足。后来用树莓派旁路由+多个AP的方案完美解决,总成本不到800元。
6. 故障排查与优化
6.1 常见问题解决
问题1:设置旁路由后设备无法上网
- 检查主路由DHCP是否分配了正确网关
- 在树莓派上
tcpdump -i eth0 port 53看DNS请求是否正常 - 尝试关闭IPv6(在DHCP/DNS设置中过滤AAAA记录)
问题2:端口转发不生效
- 确认防火墙WAN区域的input策略是accept
- 检查
netstat -tuln确认服务确实在监听 - 测试内网直接访问目标IP:端口是否通
6.3 性能优化技巧
- 启用硬件加速:
opkg install kmod-tcp-bbr
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
- 定时重启服务: 在系统→计划任务添加:
0 4 * * * /etc/init.d/network restart
- 内存优化:
安装
luci-app-ramfree插件,设置每6小时自动清理缓存。我的树莓派长期运行内存占用始终保持在30%以下。
更多推荐

所有评论(0)