前言
在配置 OpenWrt 路由器进行 PPPoE 拨号上网时,很多新手会遇到"拨号成功但无法访问网络"的问题。本文将详细讲解 OpenWrt 网络配置的基础概念,以及如何排查和解决常见的 DNS 配置问题。
目录
1. OpenWrt 网络接口基础概念
1.1 什么是 LAN 和 WAN?
OpenWrt 路由器有两个主要的网络接口:
┌─────────────────────────────────────┐
│ OpenWrt 路由器设备 │
│ │
│ ┌──────────────┐ ┌─────────────┐ │
│ │ WAN 接口 │ │ LAN 接口 │ │
│ │ (eth1) │ │ (eth0) │ │
│ │ │ │ │ │
│ │ 对外:连接 │ │ 对内:连接 │ │
│ │ 光猫/互联网 │ │ 电脑/手机 │ │
│ │ │ │ │ │
│ │ 公网 IP: │ │ 内网 IP: │ │
│ │10.68.x.x │ │192.168.0.x │ │
│ └──────────────┘ └─────────────┘ │
└─────────────────────────────────────┘
WAN(Wide Area Network)- 广域网接口:
连接到光猫或上级路由器
负责与互联网通信
通过 PPPoE 拨号获取公网 IP
LAN(Local Area Network)- 局域网接口:
连接你的电脑、手机等设备
路由器在局域网的管理地址
提供 DHCP 和 DNS 服务
1.2 LAN IP 就是路由器的 IP
重要理解:LAN 接口的 IP 地址(如 192.168.0.123)就是 OpenWrt 路由器本身在局域网的 IP 地址。
你通过这个 IP 访问路由器管理页面
这个 IP 同时是局域网设备的默认网关
这个 IP 也是 DHCP 和 DNS 服务器地址
2. OpenWrt 三种网络配置方式详解
在首次配置 OpenWrt 时,系统会提供三种连接方式:
2.1 宽带拨号连接(PPPoE)
适用场景:
家庭光纤宽带
需要使用运营商提供的账号密码拨号
OpenWrt 作为主路由使用
配置要点:
需要填写运营商提供的宽带账号和密码
WAN 口直接连接光猫
路由器负责 PPPoE 拨号认证
2.2 连接现有路由器
适用场景:
OpenWrt 作为二级路由使用
上级已有路由器提供网络接入
扩展现有网络覆盖
配置要点:
WAN 口连接上级路由器的 LAN 口
通过 DHCP 自动获取 IP 地址
不需要拨号
2.3 配置为旁路由
适用场景:
不改变现有网络拓扑
仅提供增值服务(广告过滤、流量监控等)
其他设备可选择性使用
配置要点:
不负责拨号和主路由功能
作为网关提供特定服务
设备可以手动指定使用此网关
3. PPPoE 拨号配置步骤
3.1 Web 界面配置方法
步骤 1:进入网络向导
浏览器访问
http://192.168.0.123(或你的路由器 IP)点击 "网络向导"
选择 "宽带拨号连接"
步骤 2:选择 WAN 接口
点击 "网络" → "接口" → "WAN" → "编辑"
协议选择:
PPPoE设备选择:
eth1(通常 WAN 口对应 eth1,LAN 口对应 eth0)
步骤 3:填写拨号信息
基本设置:
- 协议:PPPoE
- 设备:eth1
PPPoE 设置:
- PAP/CHAP 用户名:你的宽带账号
- PAP/CHAP 密码:你的宽带密码
- 开机自动运行:勾选
高级设置:
- 使用自定义 DNS 服务器:
223.5.5.5
114.114.114.114
8.8.8.8
- 取消勾选 "使用对等方通告的 DNS 服务器"
- MTU:1492
步骤 4:保存并应用
点击 "保存并应用"
等待 30 秒,查看接口状态
3.2 命令行配置方法
# 配置 WAN 接口为 PPPoE
uci set network.wan=interface
uci set network.wan.proto='pppoe'
uci set network.wan.device='eth1'
uci set network.wan.username='你的宽带账号'
uci set network.wan.password='你的宽带密码'
uci set network.wan.ipv6='auto'
uci set network.wan.peerdns='0' # 不使用运营商 DNS
uci add_list network.wan.dns='223.5.5.5'
uci add_list network.wan.dns='114.114.114.114'
uci add_list network.wan.dns='8.8.8.8'
uci commit network
# 重启网络服务
/etc/init.d/network restart
3.3 验证拨号是否成功
# 查看 PPPoE 接口是否创建
ip addr show | grep pppoe
# 应该看到类似输出:
# pppoe-wan: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP>
# inet 10.68.139.195 peer 10.68.0.1/32 scope global pppoe-wan
# 查看路由表
ip route show
# 应该看到:
# default via 10.68.0.1 dev pppoe-wan proto static
4. 常见问题 1:能 Ping 通 IP 但无法解析域名
4.1 问题现象
# 能 Ping 通 IP 地址
root@OpenWrt:~# ping -c 4 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=103 time=205.647 ms
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
# 但无法 Ping 域名
root@OpenWrt:~# ping baidu.com
ping: bad address 'baidu.com'
# 手动指定 DNS 可以解析
root@OpenWrt:~# nslookup baidu.com 223.5.5.5
Server: 223.5.5.5
Address: 223.5.5.5:53
Name: baidu.com
Address: 111.63.65.247
4.2 问题原因
PPPoE 拨号成功,网络连接正常,但系统 DNS 配置不正确,导致无法解析域名。
4.3 诊断步骤
# 1. 测试 IP 连通性
ping -c 4 223.5.5.5
# 2. 测试 DNS 解析
nslookup baidu.com 223.5.5.5
# 3. 查看系统 DNS 配置
cat /etc/resolv.conf
# 4. 查看 WAN 接口 DNS 配置
uci show network.wan | grep dns
4.4 解决方案
方案 A:通过 Web 界面配置(推荐)
配置 WAN 接口 DNS
打开 "网络" → "接口" → "WAN" → "编辑"
点击 "高级设置" 标签
❌ 取消勾选 "使用对等方通告的 DNS 服务器"
在 "使用自定义的 DNS 服务器" 填写:
223.5.5.5114.114.114.1148.8.8.8点击 "保存并应用"
配置全局 DNS(可选,增强稳定性)
打开 "网络" → "DHCP/DNS"
在 "服务器设置" 标签的 "DNS 转发" 框中填写:
223.5.5.5114.114.114.114点击 "保存并应用"
重启服务
打开 "系统" → "启动项"
找到
network和dnsmasq,点击 "重启"
方案 B:通过命令行配置
# 1. 配置 WAN 接口使用自定义 DNS
uci delete network.wan.dns
uci add_list network.wan.dns='223.5.5.5'
uci add_list network.wan.dns='114.114.114.114'
uci add_list network.wan.dns='8.8.8.8'
uci set network.wan.peerdns='0' # 关键:不使用运营商 DNS
uci commit network
# 2. 重启网络服务
/etc/init.d/network reload
# 3. 重启 dnsmasq 服务
/etc/init.d/dnsmasq restart
# 4. 等待 10 秒后测试
sleep 10
ping -c 4 baidu.com
4.5 验证修复
# 1. 检查 resolv.conf
cat /etc/resolv.conf
# 应该看到:
# nameserver 223.5.5.5
# nameserver 114.114.114.114
# 2. 测试域名解析
ping -c 4 baidu.com
curl -I baidu.com
# 3. 查看 DNS 查询
nslookup baidu.com
5. 常见问题 2:dnsmasq 服务无法启动
5.1 问题现象
root@OpenWrt:~# /etc/init.d/dnsmasq status
not running
root@OpenWrt:~# nslookup baidu.com 127.0.0.1
nslookup: write to '127.0.0.1': Connection refused
root@OpenWrt:~# /etc/init.d/dnsmasq start
error: address 192.168.0.123 inside range 192.168.0.100..192.168.0.246
5.2 问题原因
核心错误:address 192.168.0.123 inside range 192.168.0.100..192.168.0.246
路由器的 LAN IP (192.168.0.123) 位于 DHCP 地址池范围 (192.168.0.100-192.168.0.246) 内,导致 IP 地址冲突,dnsmasq 无法启动。
5.3 解决方案对比
5.4 方案 1:修改路由器 IP 为标准地址(推荐)
通过命令行:
# 1. 修改 LAN IP 为 192.168.0.1
uci set network.lan.ipaddr='192.168.0.1'
uci commit network
# 2. 修改 DHCP 范围(可选,更标准)
uci set dhcp.lan.start='100'
uci set dhcp.lan.limit='150'
uci commit dhcp
# 3. 应用配置(会断开连接)
/etc/init.d/network reload
# 4. 等待 30 秒后,用新 IP 访问
# 浏览器打开:http://192.168.0.1
通过 Web 界面:
打开 "网络" → "接口" → "LAN" → "编辑"
在 "基本设置" 中:
IPv4 地址:改为
192.168.0.1
点击 "DHCP 服务器" 标签:
开始地址:
100地址数量:
150
点击 "保存并应用"
等待 30 秒,用新地址
http://192.168.0.1访问路由器
⚠️ 注意:修改后需要:
电脑重新获取 IP(断开网络重连)
使用新地址访问路由器管理页面
5.5 方案 2:修改 DHCP 范围(保持原 IP)
通过 Web 界面:
打开 "网络" → "接口" → "LAN" → "编辑"
点击 "DHCP 服务器" 标签
修改地址池:
IPv4 地址池开始地址:
130IPv4 地址池大小:
116
点击 "保存并应用"
通过命令行:
# 修改 DHCP 从 130 开始,避开 123
uci set dhcp.lan.start='130'
uci set dhcp.lan.limit='116' # 130-246 共 116 个地址
uci commit dhcp
# 重启 dnsmasq
/etc/init.d/dnsmasq restart
5.6 方案 3:快速修复(最简单)
# 一键修复命令
uci set dhcp.lan.start='130'
uci set dhcp.lan.limit='116'
uci commit dhcp
/etc/init.d/dnsmasq restart
# 验证
/etc/init.d/dnsmasq status
ping -c 4 baidu.com
5.7 其他可能原因
原因 1:端口 53 被占用
# 检查端口占用
netstat -tulnp | grep :53
# 如果发现其他进程占用,停止该进程
kill <PID>
# 重启 dnsmasq
/etc/init.d/dnsmasq restart
原因 2:配置文件错误
# 查看详细错误日志
logread | grep -i dnsmasq | tail -20
# 重置 dnsmasq 配置(慎用)
cp /etc/config/dhcp /etc/config/dhcp.bak
uci revert dhcp
uci commit dhcp
/etc/init.d/dnsmasq restart
6. 网络接口详解:LAN、WAN、Docker
6.1 接口信息解读
以下是 OpenWrt 接口页面的详细信息说明:
LAN 接口(局域网)
协议:静态地址 (Static Address)
Carrier:Present(物理连接正常)
运行时间:0h 26m 54s
MAC 地址:BC:24:11:AA:0F:C0
接收:44.157 KB (3257 数据包)
发送:4.11 MB (2688 数据包)
IPv4:192.168.0.123/24
关键信息说明:
IPv4: 192.168.0.123/24
192.168.0.123- 路由器在局域网的 IP 地址/24- 子网掩码 255.255.255.0,局域网范围 192.168.0.1-254
流量统计
发送 4.11 MB - 路由器向局域网设备发送的数据(管理页面、配置下载等)
接收 44.157 KB - 从局域网设备接收的数据
作用
你通过这个 IP 访问路由器管理页面
作为局域网设备的默认网关
提供 DHCP 和 DNS 服务
WAN 接口(广域网)
协议:PPPoE
Carrier:Present(物理连接正常)
运行时间:0h 26m 8s
接收:88.22 KB (541 数据包)
发送:54.49 KB (541 数据包)
IPv4:10.68.139.195/32
IPv6:fe80::f910:9b7d:378b:ef69/128
关键信息说明:
IPv4: 10.68.139.195/32
运营商分配的公网 IP 地址
/32表示点对点连接(PPPoE 特有)
IPv6 地址
本地链路地址,用于 IPv6 通信
流量统计
刚配置完成,流量较小
主要是连接握手和 DNS 查询
作用
连接到互联网
处理外网和内网的 NAT 转换
Docker 接口
协议:不配置协议
Carrier:Absent(无物理连接)
MAC:02:42:C9:B7:30:1D
接收:0 B (0 数据包)
发送:0 B (0 数据包)
说明:
Docker 容器网络的虚拟网桥
没有运行容器时处于空闲状态
不影响正常网络使用
6.2 数据流向示意图
┌─────────────┐
│ 互联网 │
└──────┬──────┘
│
┌───┴────┐
│ 光猫 │
└───┬────┘
│ (通过网线)
│
┌──────┴──────────────────────────┐
│ OpenWrt 路由器 (物理设备) │
│ │
│ ┌────────────┐ ┌────────────┐│
│ │ WAN 接口 │ │ LAN 接口 ││
│ │ (eth1) │ │ (eth0) ││
│ │ │ │ ││
│ │ 公网 IP: │ │ 内网 IP: ││
│ │10.68.139.. │ │192.168.0.. ││
│ │ │ │ ││
│ │ PPPoE 拨号 │ │ DHCP/DNS ││
│ │ NAT 转换 │ │ 服务 ││
│ └────────────┘ └────────────┘│
└─────────────────────┬───────────┘
│ (通过网线/WiFi)
│
┌─────────────┼─────────────┐
│ │ │
┌────┴────┐ ┌────┴────┐ ┌────┴────┐
│ 电脑 │ │ 手机 │ │ 其他 │
│192.168 │ │192.168 │ │ 设备 │
│ .0.x │ │ .0.y │ │ │
└─────────┘ └─────────┘ └─────────┘
6.3 访问流程示例
示例 1:访问路由器管理页面
你的电脑 (192.168.0.x)
↓
输入 http://192.168.0.123
↓
通过 LAN 接口连接
↓
OpenWrt 管理界面
示例 2:访问百度
你的电脑 (192.168.0.x)
↓
请求发送到路由器 (192.168.0.123)
↓ [LAN 接口接收]
OpenWrt 路由器进行 NAT 转换
↓ [WAN 接口发送]
通过公网 IP (10.68.139.195) 访问互联网
↓
访问 baidu.com
↓ [WAN 接口接收]
路由器进行 NAT 转换返回
↓ [LAN 接口发送]
返回数据到你的电脑
示例 3:局域网设备互访
设备 A (192.168.0.100)
↓
通过 LAN 接口
↓
OpenWrt 路由器转发(不经过 WAN)
↓
通过 LAN 接口
↓
设备 B (192.168.0.101)
7. 完整验证和测试
7.1 基础连通性测试
# 1. 测试 IP 连通性(不需要 DNS)
ping -c 4 223.5.5.5
ping -c 4 8.8.8.8
# 2. 测试域名解析
ping -c 4 baidu.com
ping -c 4 google.com
# 3. 测试 HTTP 访问
curl -I baidu.com
curl -I google.com
7.2 网络配置检查
# 1. 查看所有网络接口
ip addr show
# 2. 查看路由表
ip route show
# 应该看到:
# default via 10.68.0.1 dev pppoe-wan proto static
# 3. 查看 DNS 配置
cat /etc/resolv.conf
# 应该看到:
# nameserver 223.5.5.5
# nameserver 114.114.114.114
# 4. 查看 PPPoE 状态
ifstatus wan
# 5. 查看 dnsmasq 状态
/etc/init.d/dnsmasq status
# 应该显示:running
7.3 服务状态检查
# 1. 检查所有网络服务
/etc/init.d/network status
/etc/init.d/dnsmasq status
/etc/init.d/firewall status
# 2. 查看系统日志
logread | tail -50
# 3. 实时监控日志
logread -f
# 然后在另一个终端执行 ping baidu.com,观察日志输出
7.4 防火墙规则验证
# 1. 查看 NAT 表
iptables -t nat -L -n -v
# 应该看到 MASQUERADE 规则:
# Chain POSTROUTING (policy ACCEPT)
# target prot opt in out source destination
# MASQUERADE all -- * pppoe-wan 192.168.0.0/24 0.0.0.0/0
# 2. 查看 FORWARD 链
iptables -L FORWARD -n -v
# 3. 查看防火墙配置
uci show firewall | grep -E "wan|masq"
7.5 速度和质量测试
# 1. 测试下载速度(使用 curl)
curl -o /dev/null -w "Speed: %{speed_download} bytes/sec\n" \
http://speedtest.tele2.net/10MB.zip
# 2. 测试延迟
ping -c 10 baidu.com
# 3. 跟踪路由
traceroute baidu.com
# 4. DNS 查询速度
time nslookup baidu.com
7.6 Web 界面验证
访问路由器管理页面,检查:
"网络向导" 页面
网络连接和 IP 地址显示是否正常
下载/上传速度是否有数据
"网络" → "接口" 页面
LAN 接口状态:Present(绿色)
WAN 接口状态:Present(绿色)
WAN 接口显示公网 IP 地址
"网络" → "诊断" 工具
Ping 测试:输入
baidu.com,点击 "Ping"Traceroute:输入
baidu.com,点击 "Traceroute"Nslookup:输入
baidu.com,点击 "Nslookup"
7.7 客户端设备验证
在连接到 OpenWrt 的电脑上:
Windows:
# 1. 查看网络配置
ipconfig /all
# 应该看到:
# 默认网关: 192.168.0.123
# DNS 服务器: 192.168.0.123
# 2. 测试连通性
ping baidu.com
tracert baidu.com
# 3. DNS 查询
nslookup baidu.com
Linux/Mac:
# 1. 查看网络配置
ip route show
cat /etc/resolv.conf
# 2. 测试连通性
ping -c 4 baidu.com
traceroute baidu.com
# 3. DNS 查询
dig baidu.com
nslookup baidu.com
8. 故障排查流程图
开始
↓
能否访问路由器管理页面?
├─ 否 → 检查物理连接和 LAN 配置
↓
是
↓
WAN 接口是否显示 "Present"?
├─ 否 → 检查 WAN 口物理连接和接口配置
↓
是
↓
是否有 pppoe-wan 接口?
├─ 否 → 重新配置 PPPoE(参考第 3 节)
↓
是
↓
能否 ping 通 8.8.8.8?
├─ 否 → 检查路由表和防火墙配置
↓
是
↓
能否 ping 通 baidu.com?
├─ 否 → DNS 问题(参考第 4 节)
│ ↓
│ 检查 dnsmasq 是否运行?
│ ├─ 否 → 参考第 5 节解决
│ ↓
│ 是
│ ↓
│ 配置自定义 DNS(223.5.5.5 等)
↓
是
↓
配置成功!
9. 常用命令速查表
9.1 网络配置
9.2 服务管理
9.3 网络测试
9.4 日志查看
9.5 防火墙检查
10. 最佳实践建议
10.1 网络配置建议
路由器 LAN IP 使用标准地址
推荐使用
192.168.0.1或192.168.1.1避免使用在 DHCP 范围内的 IP
DHCP 地址池合理规划
预留静态 IP 范围:
192.168.0.2-99DHCP 范围:
192.168.0.100-250路由器使用:
192.168.0.1
DNS 配置
主 DNS:
223.5.5.5(阿里 DNS,国内速度快)备用 DNS:
114.114.114.114、8.8.8.8关闭运营商 DNS,避免劫持
MTU 设置
PPPoE 连接推荐 MTU:
1492如遇到部分网站无法访问,尝试
1480
10.2 安全配置建议
修改默认密码
修改路由器管理密码
使用强密码(字母+数字+符号)
防火墙配置
WAN 区域:入站拒绝,出站接受
开启 NAT 伪装(Masquerading)
开启 MSS 钳制(MSS Clamping)
禁用不必要的服务
如不需要 IPv6,可以禁用
关闭远程管理(除非需要)
10.3 性能优化建议
启用硬件加速(如果支持)
Flow Offloading
NAT 硬件加速
DNS 缓存优化
增加 dnsmasq 缓存大小
使用国内 DNS 服务器
QoS 配置(可选)
为重要应用分配带宽优先级
限制 P2P 下载速度
10.4 维护建议
定期备份配置
"系统" → "备份/升级" → "生成备份"
保存配置文件到本地
定期更新固件
关注 OpenWrt 官方更新
更新前务必备份配置
监控日志
定期查看系统日志
关注异常连接和错误
11. 总结
11.1 关键要点回顾
网络接口理解
LAN 接口:局域网,路由器管理地址
WAN 接口:广域网,连接互联网
LAN IP 就是路由器本身的 IP
PPPoE 拨号配置
正确选择 WAN 物理接口(通常是 eth1)
填写正确的宽带账号密码
配置自定义 DNS 服务器
DNS 问题排查
能 ping IP 但不能 ping 域名 → DNS 配置问题
取消使用运营商 DNS
配置可靠的公共 DNS
dnsmasq 问题解决
路由器 IP 不能在 DHCP 范围内
修改路由器 IP 或调整 DHCP 范围
确保 dnsmasq 服务运行
11.2 快速配置清单
最小化配置步骤:
✅ 物理连接:光猫 → WAN 口,电脑 → LAN 口
✅ PPPoE 配置:协议、设备、账号、密码
✅ DNS 配置:223.5.5.5, 114.114.114.114
✅ 取消运营商 DNS
✅ 检查 dnsmasq 运行状态
✅ 验证:ping baidu.com
验证成功标志:
# 所有命令都应该成功
ping -c 4 8.8.8.8 # ✅ IP 连通
ping -c 4 baidu.com # ✅ 域名解析
curl -I baidu.com # ✅ HTTP 访问
/etc/init.d/dnsmasq status # ✅ running
11.3 常见误区
❌ 误区 1:"LAN 是一个独立的设备" ✅ 正确:LAN 是路由器的一个网络接口,LAN IP 就是路由器的 IP
❌ 误区 2:"拨号成功就能上网了" ✅ 正确:还需要正确配置 DNS 才能解析域名
❌ 误区 3:"使用运营商 DNS 更好" ✅ 正确:运营商 DNS 可能不稳定或有劫持,建议用公共 DNS
❌ 误区 4:"DHCP 范围越大越好" ✅ 正确:DHCP 范围要避开路由器自己的 IP
12. 参考资源
12.1 官方文档
12.2 常用 DNS 服务器
12.3 社区支持
结语
通过本文的详细讲解,相信你已经掌握了 OpenWrt PPPoE 拨号配置和常见问题的排查方法。网络配置虽然看起来复杂,但只要理解了基本原理,按照步骤操作,就能顺利配置成功。
如果在配置过程中遇到问题,记住这个排查顺序:
物理连接是否正确
PPPoE 是否拨号成功
IP 是否能 ping 通
DNS 是否配置正确
dnsmasq 是否正常运行
祝你配置成功,享受 OpenWrt 带来的强大功能!
本文更新时间:2024 年 12 月
适用版本:OpenWrt 23.05 及以上版本
作者:技术分享
如有问题或建议,欢迎留言交流!
默认评论
Halo系统提供的评论