1. 树莓派OpenWrt网络接口基础认知
第一次把OpenWrt刷进树莓派时,看着那些陌生的网络接口名称,我仿佛回到了大学网络实验课被支配的恐惧。eth0、eth1、wan、lan这些标识符在普通路由器上可能已经预设好,但在树莓派这个"裸设备"上,所有网络接口都需要我们手动定义其角色。这里有个反直觉的事实:树莓派的物理网口(比如树莓派4B的千兆以太网口)默认在OpenWrt中可能被识别为eth0或eth1,但具体对应wan还是lan完全取决于我们的配置。
通过ifconfig命令可以看到,刚刷完OpenWrt的树莓派通常会显示两个关键接口:
- br-lan:这是OpenWrt创建的虚拟桥接接口,默认包含所有LAN侧设备
- eth0:物理以太网接口(具体编号可能因型号而异)
重要提示:在树莓派3B+等单网口机型上,要实现WAN/LAN分离必须依赖USB网卡或VLAN划分,这是很多新手容易忽略的硬件限制。
2. WAN与LAN的配置逻辑解析
2.1 网络拓扑的两种设计模式
根据我帮网友排查问题的经验,90%的OpenWrt网络故障源于对接口角色的误解。在树莓派上配置WAN/LAN时,本质上是在进行网络流量的路由决策:
模式A:传统路由器模式(推荐新手使用)
- WAN口:连接上级光猫/路由器,获取公网IP(通过DHCP或PPPoE)
- LAN口:连接内网设备,提供DHCP服务和NAT转换
- 典型应用:家庭主路由/二级路由场景
模式B:纯AP模式
- 所有接口都属于LAN
- 关闭防火墙和DHCP服务
- 典型应用:扩展无线覆盖范围
通过LUCI网页界面配置时,在"网络->接口"页面可以看到默认的LAN配置。点击"添加新接口"即可创建WAN口,这里有个关键细节:必须正确选择防火墙区域(WAN口应归属到wan区域)。
2.2 配置文件的手动修改方式
当网页界面操作失败时(比如我遇到过LUCI莫名丢失保存按钮的情况),可以直接修改网络配置文件:
bash复制vi /etc/config/network
典型配置示例(树莓派4B双网口):
config复制config device
option name 'br-lan'
option type 'bridge'
list ports 'eth1'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
config interface 'wan'
option device 'eth0'
option proto 'dhcp'
修改后需要重启网络服务:
bash复制/etc/init.d/network restart
3. 单网口设备的特殊处理方案
3.1 VLAN划分方案
我的树莓派3B+项目就遇到了单网口的尴尬,通过VLAN划分成功实现了单线复用。具体操作:
- 安装VLAN支持包:
bash复制opkg update
opkg install kmod-8021q
- 修改network配置文件:
config复制config device
option name 'eth0.1'
option type '8021q'
option ifname 'eth0'
option vid '1'
config device
option name 'eth0.2'
option type '8021q'
option ifname 'eth0'
option vid '2'
config interface 'lan'
option device 'eth0.1'
option proto 'static'
option ipaddr '192.168.1.1'
config interface 'wan'
option device 'eth0.2'
option proto 'dhcp'
- 交换机端需要配置对应的VLAN ID(普通家用交换机可能不支持)
3.2 USB网卡扩展方案
更简单的方案是使用USB以太网卡(推荐Realtek RTL8153芯片的)。安装驱动后:
bash复制opkg install kmod-usb-net-rtl8152
新网卡会被识别为eth1,直接将其分配给WAN口即可。实测RPi4B+USB3.0千兆网卡可以跑满500M宽带。
4. 防火墙与流量控制要点
4.1 防火墙区域配置
OpenWrt的防火墙默认包含三个区域:
- lan:信任区域,允许所有出站和跨设备通信
- wan:非信任区域,仅允许已建立的连接返回
- guest(可选):隔离区域
在/etc/config/firewall中确保有这样的规则:
config复制config zone
option name 'wan'
list network 'wan'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
4.2 流量标记与策略路由
我曾用mwan3实现多WAN负载均衡,关键配置:
bash复制opkg install mwan3 luci-app-mwan3
配置示例:
config复制config rule
option dest_port '80,443'
option proto 'tcp'
option use_policy 'balanced'
5. 疑难排查与性能优化
5.1 常见故障排查命令
- 查看接口状态:
bash复制ubus call network.interface.wan status
- 检查防火墙规则:
bash复制iptables -L -n -v
- 追踪路由路径:
bash复制traceroute -n 8.8.8.8
5.2 性能调优参数
在/etc/sysctl.conf中添加:
config复制net.netfilter.nf_conntrack_max=65536
net.ipv4.tcp_window_scaling=1
net.core.rmem_max=4194304
net.core.wmem_max=4194304
对于树莓派4B,建议关闭WiFi节能模式(如果使用无线):
bash复制iw dev wlan0 set power_save off
6. 实际应用场景案例
6.1 家庭智能网关部署
去年我为朋友部署的树莓派OpenWrt智能家居网关采用如下架构:
- eth0作为WAN连接光猫
- eth1(USB网卡)作为LAN连接交换机
- 无线AP提供IoT设备连接
- 跑AdGuard Home实现去广告
关键配置点在于为IoT网络单独划分VLAN并设置带宽限制:
bash复制tc qdisc add dev eth0.3 root tbf rate 10mbit burst 32kbit latency 400ms
6.2 移动4G路由器改造
用树莓派CM4+Quectel EC20模块构建的4G路由器,需要特别注意:
config复制config interface 'wan'
option device 'eth1'
option proto 'qmi'
option apn '3gnet'
option pdptype 'ipv4v6'
这种配置下NAT性能会明显下降,建议启用硬件加速(如有):
bash复制opkg install kmod-mt76
在树莓派上折腾OpenWrt这些年,最大的体会是:网络配置就像乐高积木,理解每个模块的作用后,就能组合出无限可能。最近发现把Docker跑在OpenWrt上时,需要特别注意网络命名空间隔离问题——但这又是另一个有趣的话题了。
