Openwrt中ppp拨号总结

本文详细介绍了在OpenWrt系统中使用4G模块进行拨号上网的过程,包括comgt、pppd、ndis驱动等工具的使用,以及pppd配置和拨号脚本的编写。为了确保24小时在线,采用crond任务调度进行定时检测和重拨。通过调整和优化,如避免依赖hotplug和procd,可以进一步提升拨号连接的稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间做完一个是视频数据传输终端,使用4G模块拨号,接上摄像头,当一个路由器来传输视频信号;以及本身会带一些远程管理功能;当然这不是本文的重点;在此仅重点介绍4G拨号相关的内容,因为从开发到上线到量产过程中,拨号稳定性一直是一个考验;

设备使用的是openwrt系统,Ulong9300 LTE模块,MiniPcie接口,其实就是usb;

首先介绍几个相关的工具:

comgt:主要是发送AT指令以及读取结果,非常轻量级,一个.c文件,支持多种语法,可以自行编写配置脚本

pppd:3g ppp 协议拨号 工具,使用配置文件配置拨号参数:如APN,用户名,断线检测周期等等

usbserial: usb转tty驱动

option: usb转tty驱动

Ndis: LTE拨号专有驱动,与usbserial虚拟成串口不同,ndis虚拟成网口,可以获得更高的速率


下面根据使用流程一个一个做相关详细介绍:

驱动:如果使用usbserial驱动,Linux Kernel自带,无需配置,直接install即可;Option驱动同样;

           使用ndis驱动,需要LTE模块厂家提供相关的驱动包,以及应用层拨号程序

pppd参数:主要是APN和Dialnumber,用户名和密码一般不需要;APN及Dialnumber 可以咨询运营商,每个运营商固定的,不过地区不同也可能存在差别,尤其是现在IOT的M2M卡,专用卡等等。

            可以通过SIM卡ICCID来判断运营商类别,然后设定相关的APN和Dialnumber。参考comgt脚本如下:

:cimi
 waitquiet 1 0.2
 send "AT+CIMI^m"
 waitfor 3 "46000" "46002" "46007" "46001" "46006" "46003" "46005" "46011"
 if % = -1 goto err
 if % = 0 goto cmnet
 if % = 1 goto cmnet
 if % = 2 goto cmnet
 if % = 3 goto net3g
 if % = 4 goto net3g
 if % = 5 goto ctlte
 if % = 6 goto ctlte
 if % = 7 goto ctlte
 # default
 goto webset
:err
 exit 1
:cmnet
 send "AT+CGDCONT=1,\"IP\",\"CMNET\"^m"
 print "CMNET\n"
 goto waitret
:net3g
 send "AT+CGDCONT=1,\"IP\",\"3GNET\"^m"
 print "3GNET\n"
 goto waitret
:ctlte
 send "AT+CGDCONT=1,\"IP\",\"CTLTE\"^m"
 print "CTLTE\n"
:waitret

openwrt拨号机制:
  1. hotplu
<think>好的,我现在要解决用户的问题:测试通过PPP拨号后对Google的网络连通性。用户想确认拨号成功后是否能连接到Google。首先,我需要明确PPP拨号的基本流程和测试步骤。 首先,PPP(点对点协议)拨号通常用于通过调制解调器、DSL或移动网络连接到互联网。用户可能使用的是某种拨号连接,比如3G/4G调制解调器或者类似的设备。测试连通性的一般步骤是先建立PPP连接,然后使用ping命令测试目标域名或IP地址的可达性。 接下来,我需要回忆PPP拨号在Linux系统中的配置和启动方法。通常,pppd(PPP守护进程)和相关工具用于管理拨号连接。用户可能需要安装ppp包,并配置拨号脚本或配置文件,如/etc/ppp/peers/provider,指定调制解调器设备、APN(接入点名称,如果是移动网络)、用户名和密码等参数。例如,对于移动网络,APN可能会影响能否成功连接到互联网。如果APN设置错误,即使拨号成功,也可能无法访问外部网络。 然后,拨号成功后,系统会分配一个IP地址给ppp接口,通常是ppp0。用户需要确认该接口是否获得了有效的IP地址,并且默认路由是否正确设置。可以使用ifconfig或ip addr命令查看接口状态,使用route -n或ip route检查路由表。如果默认路由没有指向ppp0,可能导致流量仍然通过其他接口(如以太网)发送,而无法通过拨号连接访问外部网络。 接下来是测试连通性。首先,尝试ping一个公共DNS服务器,比如8.8.8.8(Google的DNS),这可以排除DNS解析的问题。如果能够ping通IP地址但无法解析域名,说明DNS配置可能有问题,需要检查/etc/resolv.conf文件是否配置了正确的DNS服务器。如果拨号连接自动更新了resolv.conf,可能需要确认是否覆盖了其他配置。 如果直接ping Google的域名(如google.com)失败,但IP可以ping通,那么问题出在DNS解析。可以尝试手动指定DNS服务器进行测试,例如使用dig或nslookup工具查询google.com的IP地址,然后用该IP进行ping测试。例如,运行dig google.com @8.8.8.8,查看是否返回正确的IP。 此外,防火墙设置也可能阻止ICMP请求。用户需要检查iptables或nftables规则,确保没有阻止出站或入站的ping数据包。有时,PPP接口可能被默认防火墙规则限制,需要添加允许规则。 如果所有步骤都正确,但仍无法连接,可能需要更深入的网络诊断。例如,使用traceroute或mtr工具查看数据包在何处丢失。这有助于确定是本地网络问题、ISP问题,还是Google服务器的问题。 另外,用户可能需要确认PPP拨号是否真正成功建立了互联网连接。有时,拨号可能连接到运营商的网络,但未正确获得互联网访问权限。这可能需要联系ISP确认账户状态或APN配置。 最后,考虑到用户提供的引用内容中有关于无线配置的信息,虽然PPP拨号与无线网络配置不同,但可能存在网络接口冲突的情况。例如,如果同时启用了无线网络(如引用中提到的OpenWrt配置)和PPP拨号,需要确认默认路由是否优先使用ppp0接口,而不是其他接口如wlan0或eth0。可以使用metric参数调整路由优先级,确保PPP接口的路由metric更低,从而优先使用。 总结步骤:1. 配置并启动PPP连接;2. 检查接口和路由;3. 测试IP连通性;4. 测试DNS解析;5. 检查防火墙;6. 使用诊断工具进一步排查。需要逐步排除每个环节的问题,才能确定无法连接的原因。</think>### PPP拨号后测试Google网络连通性的步骤 1. **建立PPP拨号连接** 首先确保已正确配置PPP拨号参数,包括调制解调器设备、APN(移动网络)、用户名和密码。 - 示例拨号命令(需安装`pppd`或相关工具): ```bash sudo pppd call provider # "provider"为预定义的拨号配置名称 ``` - 拨号成功后,使用`ifconfig`或`ip a`查看是否生成`ppp0`接口并分配IP地址。 2. **验证网络接口和路由** - 检查默认路由是否指向`ppp0`: ```bash ip route show | grep default ``` 若默认路由未更新,需手动添加(例如`ip route add default via ppp0`)[^4]。 3. **测试IP连通性** - 直接ping Google的DNS服务器IP(绕过DNS解析): ```bash ping 8.8.8.8 ``` 若成功,说明网络层连通性正常;若失败,检查防火墙或运营商限制[^2]。 4. **测试DNS解析** - 尝试解析Google域名: ```bash nslookup google.com 8.8.8.8 # 手动指定DNS服务器 ``` - 若解析失败,检查`/etc/resolv.conf`是否包含有效DNS(如`nameserver 8.8.8.8`)。 5. **检查防火墙规则** - 允许ICMP请求通过`ppp0`接口: ```bash sudo iptables -A OUTPUT -o ppp0 -p icmp --icmp-type echo-request -j ACCEPT sudo iptables -A INPUT -i ppp0 -p icmp --icmp-type echo-reply -j ACCEPT ``` 6. **高级诊断工具** - 使用`traceroute`分析路径: ```bash traceroute -i ppp0 8.8.8.8 ``` - 使用`mtr`实时监控网络质量: ```bash mtr 8.8.8.8 --interface=ppp0 ``` --- ### 常见问题排查 - **拨号成功但无网络访问**:可能是APN配置错误或运营商限制,需联系ISP确认[^4]。 - **DNS解析失败**:手动设置`/etc/resolv.conf`为公共DNS(如`8.8.8.8`)。 - **路由冲突**:若同时连接其他网络(如WiFi),调整路由metric值使`ppp0`优先。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值