2. 首次启动配置与网络基础设置

任务说明

本案例面向一块已刷写OpenWrt固件的开发板(以x86_64或ARM通用镜像为例),完成从首次上电到设备正常联网的完整初始化过程。你需要通过串口或SSH登录系统,将默认的LAN口IP修改为与上游路由器不冲突的网段,配置WAN口通过DHCP获取地址,并开启无线AP供终端连接。最终验证标准:开发板能ping通外网(如223.5.5.5),无线客户端可获取IP并访问互联网。

登录与初始状态确认

首次启动后,OpenWrt默认LAN口IP为192.168.1.1/24,无密码。通过串口(115200,8N1)或网线连接LAN口后SSH登录:

ssh root@192.168.1.1
# 若通过串口则直接进入shell,无需SSH

登录后先确认当前网络接口状态:

uci show network          # 查看当前network配置
ifstatus lan              # 查看LAN接口实际状态
cat /etc/config/wireless  # 查看无线配置

LAN/WAN接口配置

为避免与上游路由器(通常也是192.168.1.1)冲突,将LAN口改为192.168.10.1/24,并新增WAN口通过DHCP获取地址。编辑/etc/config/network,修改后执行reload_config生效:

# /etc/config/network 关键配置
config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

config interface 'lan'
    option ifname 'eth0'
    option proto 'static'
    option ipaddr '192.168.10.1'
    option netmask '255.255.255.0'
    option ip6assign '60'

config interface 'wan'
    option ifname 'eth1'
    option proto 'dhcp'

config interface 'wan6'
    option ifname 'eth1'
    option proto 'dhcpv6'

若你的设备只有一个物理网口(如大多数家用路由器),需通过交换机芯片将LAN和WAN划分到不同VLAN。以常见MT7621方案为例,在config switch段中配置:

config switch
    option name 'switch0'
    option reset '1'
    option enable_vlan '1'

config switch_vlan
    option device 'switch0'
    option vlan '1'
    option ports '0 1 2 3 6t'    # LAN口(CPU标记)

config switch_vlan
    option device 'switch0'
    option vlan '2'
    option ports '4 6t'          # WAN口(CPU标记)

修改后重启网络:/etc/init.d/network restart,此时LAN口IP变为192.168.10.1,需用新地址重新登录。

无线网络配置

启用无线并设置SSID与密码。OpenWrt使用wireless配置文件,先扫描可用无线射频:

ls /sys/class/ieee80211/   # 查看phy设备
uci show wireless          # 查看当前无线配置

典型双频设备配置如下(以5GHz为例):

# /etc/config/wireless 关键配置
config wifi-device 'radio0'
    option type 'mac80211'
    option channel '36'
    option hwmode '11a'
    option path 'pci0000:00/0000:00:00.0'
    option htmode 'VHT80'
    option disabled '0'

config wifi-iface 'default_radio0'
    option device 'radio0'
    option network 'lan'
    option mode 'ap'
    option ssid 'OpenWrt-Lab'
    option encryption 'psk2'
    option key 'iot2024secure'
    option disabled '0'

启用无线并应用配置:

uci set wireless.radio0.disabled='0'
uci set wireless.default_radio0.disabled='0'
uci commit wireless
wifi reload

防火墙与DNS确认

OpenWrt默认防火墙规则允许LAN→WAN转发,但需确认WAN口已加入wan防火墙区域:

uci show firewall | grep wan
# 应包含 config zone 'wan' 且 option network 'wan'

检查DNS解析是否正常:

echo "nameserver 223.5.5.5" > /etc/resolv.conf
uci set network.wan.dns='223.5.5.5'
uci commit network
/etc/init.d/network reload

验证方法与判定标准

按以下步骤验证配置是否成功,全部通过即视为任务完成:

  1. LAN连通性:电脑连接LAN口,设置静态IP 192.168.10.2/24,执行ping 192.168.10.1,应收到回复;
  2. WAN获取地址:在OpenWrt上执行ifstatus wan | grep -E '"address"|"up"',确认WAN口已获取到192.168.x.x地址且"up": true;
  3. 外网连通:执行ping -c 4 223.5.5.5,丢包率应为0%;
  4. DNS解析:执行nslookup www.baidu.com,应返回A记录IP;
  5. 无线接入:手机或电脑搜索SSID OpenWrt-Lab,输入密码iot2024secure连接,获取192.168.10.x网段IP后可正常上网。
OpenWrt 首次启动网络配置拓扑与验证路径 Internet 223.5.5.5 上游路由器 DHCP Server WAN (eth1) DHCP Client OpenWrt 网关 LAN: 192.168.10.1/24 防火墙: NAT + 转发 DNS: 223.5.5.5 无线AP (radio0) SSID: OpenWrt-Lab LAN Switch eth0 (VLAN 1) 有线客户端 192.168.10.2 无线客户端 192.168.10.x 验证路径: 有线/无线客户端 → OpenWrt网关 → WAN DHCP → 上游路由器 → Internet (ping 223.5.5.5)

故障排查要点

若验证不通过,按以下顺序定位:

  • WAN未获取IP:检查物理网线是否接在WAN口(对应eth1或VLAN 2),执行logread | grep dhcp查看DHCP请求日志;
  • 无线搜不到SSID:执行iwinfo确认radio0已启用且信道无干扰,检查wifi status是否显示running;
  • 能ping通IP但无法解析域名:确认/etc/resolv.conf包含有效DNS,检查防火墙是否阻止了DNS请求(53端口);
  • LAN客户端无法上网:确认防火墙zone规则中lan区域允许转发到wan,执行iptables -t nat -L查看MASQUERADE规则是否存在。

以上配置全部完成后,设备即具备网关能力,后续案例可在此基础上进行更高级的IoT功能开发。