主路由联网:WAN DHCP 与 PPPoE 分别怎么验证
完成后你能确认什么
Section titled “完成后你能确认什么”- WAN 是 DHCP 还是 PPPoE,分别看哪些状态;
- WAN 有没有地址/网关/DNS,而不是只看“已连接”;
- LAN 客户端有没有拿到地址、网关和 DNS;
- WAN 通了但 LAN 上不了网时,先查转发/NAT 还是 DNS;
- PPPoE 需要哪些信息,为什么没有真实线路不能写“已实测”。
本页示例:
上游路由器/光猫 192.168.50.1 │ WAN eth1(DHCP 192.168.50.166/24) │ OpenWrt VM 200 │ LAN br-lan 192.168.10.1/24 │ LAN 客户端 192.168.10.191/24- WAN/LAN 必须是不同网段;不要和上游 LAN 冲突。
- 主路由要负责 NAT/转发;旁路网关/AP 的验证不同。
- 改 WAN 前保留控制台;不要只留一个网页会话。
先分清 WAN 协议
Section titled “先分清 WAN 协议”路由器 Shell读取 WAN/LAN 当前配置
uci show network.wanuci show network.wan6 2>/dev/nulluci show network.lanip -4 addr showip routeWAN 的 proto 决定后面看什么日志:dhcp 看 udhcpc,pppoe 看 pppd/pppoe-wan。
预期知道 WAN 是 dhcp、pppoe 还是 static。
WAN DHCP
Section titled “WAN DHCP”LuCI把 WAN 设为 DHCP 客户端
进入 Network → Interfaces → WAN → Edit:
- Protocol 选
DHCP client; - 保存并应用;
- 回到 Interfaces,确认 WAN 有 IPv4 地址,而不是只有“Connected”。
CLI 等价:
uci set network.wan.proto='dhcp'uci commit network/etc/init.d/network reload预期WAN 能从上游拿到地址、网关和 DNS。
路由器 Shell验证 WAN 地址/网关/DNS
ubus call network.interface.wan statusip -4 addr show eth1ip routecat /tmp/resolv.conf.d/resolv.conf.autonslookup openwrt.org 192.168.50.1本实验拿到:
- WAN
192.168.50.166/24; - 网关/DNS
192.168.50.1; - WAN 口
eth1。
如果 ubus 显示 up: false 或没有 ipv4-address,先看 logread -e udhcpc,不要先改 LAN。
预期WAN 有地址,默认路由指向上游,DNS 可用。
电脑验证 LAN 客户端
ip addr showip routecat /etc/resolv.confping 192.168.10.1本次 LAN DHCP 客户端拿到 192.168.10.191/24,网关 192.168.10.1。
进一步测公网:
ping -c 3 1.1.1.1nslookup openwrt.org本次 E2 复测了 WAN DHCP 和 LAN DHCP;LAN 客户端到公网的 NAT/DNS 端到端没有再次完整跑通,所以不把“客户端已能上网”写成已实测。
预期客户端拿到 LAN 网段地址、网关和 DNS。
路由器 ShellWAN 通了但 LAN 不通时
uci show firewallnft list ruleset 2>/dev/null | head -80logread | grep -i firewall | tail -20检查:
- LAN/WAN 是否在正确 firewall zone;
- WAN zone 是否开启 masquerade;
- forward 是否允许 LAN→WAN;
- 客户端网关/DNS 是否指向 OpenWrt;
- 是否有第二个 DHCP 或网段冲突。
预期先分清转发/NAT 和 DNS。
PPPoE(E1,需要真实线路)
Section titled “PPPoE(E1,需要真实线路)”电脑先确认你有哪些信息
PPPoE 通常需要:
- 宽带账号/密码(不要发到聊天/仓库/截图);
- 部分地区需要 VLAN ID;
- 服务名/AC 名称(有些地区需要);
- 上游光猫是否已经拨号(桥接还是路由模式);
- MTU/MSS 和 IPv6 需求。
没有这些信息就不要写“PPPoE 已实测”;也不能用别人的账号测试。
预期账号、密码、VLAN/服务名等齐全,且知道从哪里获取。
LuCI在 LuCI 配置 PPPoE(示例,不填真实密码)
Network → Interfaces → WAN → Edit → Protocol: PPPoE:
- Username/Password 填你的宽带凭据;
- 需要 VLAN 时在设备/接口层配置;
- Keepalive 可用
5 3起步; - 保存并应用。
CLI 形态(不要把真实密码写进命令历史/仓库):
uci set network.wan.proto='pppoe'uci set network.wan.username='<your-account>'uci set network.wan.password='<your-password>'uci set network.wan.keepalive='5 3'uci commit network/etc/init.d/network reload预期WAN 协议变为 PPPoE,凭据只保存在设备本地。
路由器 Shell验证 PPPoE 状态
ubus call network.interface.wan statusip -4 addr show pppoe-wanip routelogread | grep -Ei 'pppd|pppoe' | tail -30重点看:
- 是否拿到
pppoe-wan的 IPv4; - 默认路由是否走
pppoe-wan; - DNS 是否可用;
- MTU 是否 1492(PPPoE 常见值);
- 认证失败/超时/服务名错误分别对应什么日志。
本页没有真实宽带账号,PPPoE 部分保持 E1,不提供“已拨号成功”的结论。
预期pppoe-wan 有地址,默认路由和 DNS 正常。
WAN DHCP 没地址
Section titled “WAN DHCP 没地址”- 网线插错(WAN/LAN);
- 上游没有开 DHCP;
- 上游做了 MAC 绑定/认证;
- 需要 VLAN;
logread -e udhcpc看 discover/offer;- 不要用固定 IP 猜上游网段。
PPPoE 认证失败
Section titled “PPPoE 认证失败”- 账号/密码错(注意大小写/后缀);
- 需要 VLAN/服务名;
- 光猫仍在拨号(双重拨号);
- 账号被绑定 MAC/端口;
- 连续重试可能触发运营商限制;看日志,不要狂重拨。
WAN 有地址,LAN 不能上网
Section titled “WAN 有地址,LAN 不能上网”- firewall zone/forward/masquerade;
- 客户端网关/DNS;
- 上游只允许单设备/MAC;
- 网段冲突/双重 NAT;
- IPv6 与 IPv4 的差异。
DNS 不通
Section titled “DNS 不通”- 先测 WAN 侧 DNS(
nslookup ... 192.168.50.1); - 再测路由器本机(
nslookup ... 127.0.0.1); - 最后测 LAN 客户端(
cat /etc/resolv.conf); - 不要把所有 DNS 问题都归因于 WAN。
E2/E1 记录
Section titled “E2/E1 记录”WAN DHCP(E2)
Section titled “WAN DHCP(E2)”- 环境:OpenWrt 25.12.6 x86 VM 200;WAN
eth1;上游192.168.50.1。 - 结果:WAN
192.168.50.166/24,网关/DNS192.168.50.1;LAN192.168.10.1/24。 - LAN DHCP:netns 客户端
192.168.10.191/24,网关192.168.10.1。 - 未复测:LAN 客户端到公网的 NAT/DNS 端到端、IPv6、真实物理 WAN。
PPPoE(E1)
Section titled “PPPoE(E1)”- 没有真实宽带账号/线路,未拨号、未验证认证/MTU/DNS。
- 需要读者用自己合法账号按设备/运营商文档验证;不要把凭据发到公开渠道。
- 本页 WAN DHCP 为 E2;PPPoE 为 E1,不能把两者混成“主路由已全部实测”。
- 复现配方:
tests/recipes/wan-dhcp-pppoe-25.12.md。 - 没有第二评审人;结论只限本次 VM/上游环境。