跳转到内容

主路由联网:WAN DHCP 与 PPPoE 分别怎么验证

  • 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 前保留控制台;不要只留一个网页会话。
路由器 Shell读取 WAN/LAN 当前配置
终端窗口
uci show network.wan
uci show network.wan6 2>/dev/null
uci show network.lan
ip -4 addr show
ip route

WAN 的 proto 决定后面看什么日志:dhcp 看 udhcpc,pppoe 看 pppd/pppoe-wan。

预期知道 WAN 是 dhcp、pppoe 还是 static。

LuCI把 WAN 设为 DHCP 客户端

进入 Network → Interfaces → WAN → Edit:

  1. Protocol 选 DHCP client;
  2. 保存并应用;
  3. 回到 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 status
ip -4 addr show eth1
ip route
cat /tmp/resolv.conf.d/resolv.conf.auto
nslookup 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 show
ip route
cat /etc/resolv.conf
ping 192.168.10.1

本次 LAN DHCP 客户端拿到 192.168.10.191/24,网关 192.168.10.1。

进一步测公网:

终端窗口
ping -c 3 1.1.1.1
nslookup openwrt.org

本次 E2 复测了 WAN DHCP 和 LAN DHCP;LAN 客户端到公网的 NAT/DNS 端到端没有再次完整跑通,所以不把“客户端已能上网”写成已实测。

预期客户端拿到 LAN 网段地址、网关和 DNS。

路由器 ShellWAN 通了但 LAN 不通时
终端窗口
uci show firewall
nft list ruleset 2>/dev/null | head -80
logread | grep -i firewall | tail -20

检查:

  • LAN/WAN 是否在正确 firewall zone;
  • WAN zone 是否开启 masquerade;
  • forward 是否允许 LAN→WAN;
  • 客户端网关/DNS 是否指向 OpenWrt;
  • 是否有第二个 DHCP 或网段冲突。

预期先分清转发/NAT 和 DNS。

电脑先确认你有哪些信息

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 status
ip -4 addr show pppoe-wan
ip route
logread | grep -Ei 'pppd|pppoe' | tail -30

重点看:

  • 是否拿到 pppoe-wan 的 IPv4;
  • 默认路由是否走 pppoe-wan;
  • DNS 是否可用;
  • MTU 是否 1492(PPPoE 常见值);
  • 认证失败/超时/服务名错误分别对应什么日志。

本页没有真实宽带账号,PPPoE 部分保持 E1,不提供“已拨号成功”的结论。

预期pppoe-wan 有地址,默认路由和 DNS 正常。

  • 网线插错(WAN/LAN);
  • 上游没有开 DHCP;
  • 上游做了 MAC 绑定/认证;
  • 需要 VLAN;
  • logread -e udhcpc 看 discover/offer;
  • 不要用固定 IP 猜上游网段。
  • 账号/密码错(注意大小写/后缀);
  • 需要 VLAN/服务名;
  • 光猫仍在拨号(双重拨号);
  • 账号被绑定 MAC/端口;
  • 连续重试可能触发运营商限制;看日志,不要狂重拨。
  • firewall zone/forward/masquerade;
  • 客户端网关/DNS;
  • 上游只允许单设备/MAC;
  • 网段冲突/双重 NAT;
  • IPv6 与 IPv4 的差异。
  • 先测 WAN 侧 DNS(nslookup ... 192.168.50.1);
  • 再测路由器本机(nslookup ... 127.0.0.1);
  • 最后测 LAN 客户端(cat /etc/resolv.conf);
  • 不要把所有 DNS 问题都归因于 WAN。
  • 环境:OpenWrt 25.12.6 x86 VM 200;WAN eth1;上游 192.168.50.1。
  • 结果:WAN 192.168.50.166/24,网关/DNS 192.168.50.1;LAN 192.168.10.1/24。
  • LAN DHCP:netns 客户端 192.168.10.191/24,网关 192.168.10.1。
  • 未复测:LAN 客户端到公网的 NAT/DNS 端到端、IPv6、真实物理 WAN。
  • 没有真实宽带账号/线路,未拨号、未验证认证/MTU/DNS。
  • 需要读者用自己合法账号按设备/运营商文档验证;不要把凭据发到公开渠道。
  • 本页 WAN DHCP 为 E2;PPPoE 为 E1,不能把两者混成“主路由已全部实测”。
  • 复现配方:tests/recipes/wan-dhcp-pppoe-25.12.md。
  • 没有第二评审人;结论只限本次 VM/上游环境。

来源

Router.Homes

独立的 OpenWrt 实操笔记。每页写明固件、设备、包管理器与恢复路径。

图标:Solar by 480 Design, CC BY 4.0