linux&android PPP 相关知识
Linux&Android PPP相关FAQ
目录
Linux&Android PPP相关FAQ.. 1
一、 文档说明... 3
二、 常见调试技术... 4
1. 查看PPP log信息... 4
2. 查看拨号IP. 4
3. 查看路由、配置路由... 4
4. Ping ip和网址... 4
5. 设置DNS. 5
三、 问题记录... 6
1. Linux下拨号失败... 6
2. Android下无法建立数据业务... 6
3. Linux和Android下有IP能ping地址不能ping域名... 6
4. Linux和Android下有IP能不能ping域名和地址... 7
5. 客户多网卡无法上网... 7
附录A:双网卡路由配置案例... 8
一、 文档说明
本文档主要是记录linux下PPP相关的易错点和典型客户支持记录。
客户在linux和Android下使用PPP进行数据业务一般会易遇到如下几类问题:
1) Linux下拨号失败
2) Android下无法建立数据业务
3) Linux和Android下有IP能ping地址不能ping域名
4) Linux和Android下有IP能不能ping域名和地址
5)客户多网卡无法上网
二、 常见调试技术
1. 查看PPP log信息
1)Linux下:
tail -f /var/log/syslog
或
tail -f /var/log/messages
2)Android下:
logcat -s pppd
2. 查看拨号IP
1)Linux 下:
ifconfig
2)Android下:
netcfg
3. 查看路由、配置路由
1)查看路由:
route
2)配置路由:
route add
3)Examples:
route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
向"eth0"添加一条指向网络192.56.76.x的路由。其中的C类子网掩码并不必须,因为192.*是个C类的IP地址。在此关键字"dev"可省略。
route add default gw mango-gw
加入一条缺省路由(如果无法匹配其它路由则用它)。使用此路由的所有分组将通过网关"mango-gw"进行传输。
4. Ping ip和网址
1)ping IP地址:
ping 8.8.8.8
2)ping域名:
ping www.baidu.com
5. 设置DNS
1)直接修改配置文件:
/etc /resolv.conf
2)Examples:
/system/etc/ppp # vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
三、
问题记录
1. Linux下拨号失败
|
问题 |
Linux下调用pppd call quectel-ppp返回失败 |
|
现象1 |
提示:Connect script failed |
|
分析 |
脚本连接错误,可能是脚本格式问题。 |
|
解决方法 |
在linux下执行:dos2unix 脚本文件名 |
|
现象2 |
拨号log出现,但是获取不到IP |
|
分析 |
检查卡是否欠费、是否没有插卡、是否没连天线或者信号过弱 |
|
解决方法 |
针对以上分析排除针对解决 |
2. Android下无法建立数据业务
|
问题 |
Linux下调用pppd call quectel-ppp返回失败 |
|
现象1 |
拨号ppp log显示error |
|
分析 |
APN错误(国内公网卡APN随便设,错的可以但是不能没有;专网卡需要专门的APN,不可填错;国外需要根据运营商要求写入正确APN) |
|
解决方法 |
添加正确APN |
|
现象2 |
拨号log出现,但是拨号一直失败,获取不到IP |
|
分析 |
检查卡是否欠费、是否没有插卡、是否没连天线或者信号过弱 |
|
解决方法 |
针对以上分析排除针对解决 |
|
现象3 |
从logcat看不到拨号信息,或者ril信息里很多error |
|
分析 |
可能RIL由于error导致重启,检查是否ril确实是重启了 |
|
解决方法 |
提交重启log,研发分析 |
|
现象4 |
Android打电话发短信等功能OK,但是无法获取IP |
|
分析 |
检查数据业务开关是否开启;APN是否设置;检查init.rc里面是否正确设置数据业务对应service |
|
解决方法 |
可能数据业务没有开启,需要开启数据业务;APN没有设置需要填写正确APN;添加正确service |
|
现象5 |
电话、短信、信号显示、数据业务均不能正常使用 |
|
分析 |
检查RIL是否正确集成 |
|
解决方法 |
不正确则重新集成 |
3. Linux和Android下有IP能ping地址不能ping域名
|
问题 |
通过ifconfig可以查看到ppp0有IP,并且可以ping网址却不能ping域名 |
|
现象1 |
通过ifconfig可以查看到ppp0有IP,并且可以ping网址却不能ping域名 |
|
分析 |
这种情况是DNS没有设置或者DNS设置有问题,可以检查/etc/resolv.conf确认 |
|
解决方法 |
修改/etc/resolv.conf添加DNS再试。 正常情况下应该是已经设置成功的,linux发行版本的ip-up会配置DNS,Android的ip-up我们做了处理也会设置DNS。 |
4. Linux和Android下有IP能不能ping域名和地址
|
问题 |
通过ifconfig可以查看到ppp0有IP,但是不能ping网址也不能ping域名 |
|
现象1 |
通过ifconfig可以查看到ppp0有IP,但是不能ping网址也不能ping域名 |
|
分析 |
这种情况很可能是路由设置问题。需要使用route检查路由是否存在并且是否正确 |
|
解决方法 |
如果不存在路由信息那必然是有问题的;如果存在路由信息,但是没有默认路由应该也是不对的,因为我们脚本里将ppp0加为了默认路由。 |
5. 客户多网卡无法上网
|
问题 |
客户设备使用多个网卡,使用无线模块上网出现失败情况 |
|
现象1 |
客户设备使用多个网卡,使用无线模块上网出现失败情况 |
|
分析 |
由于多个网卡同时存在,则可能出现路由设置出现问题,当路由配置错误则导致数据走不出去。 |
|
解决方法 |
参考附录A |
6.
PPP拨号断开,不上报NO CARRIER
|
问题 |
断开PPP,不上报NO CARRIER |
|
现象1 |
客户在LCP阶段协商认证方式的时候,模块请求PAP,被MCU拒掉以后,模块发送了终止帧。但是,在PPP过程中,没有看到NO CARRIER上报,而模块确实是退出了PPP状态。如果客户打开了回显,这时有回环的错误。 |
|
分析 |
监控模块TX,确认模块是有上报NO CARRIER。 用客户的脚本测试调查了,客户的脚本的确会在terminate终断后还继续向模块发送请求。 |
|
解决方法 |
将客户的脚本中的nolock选项改为lock并增加modem选项(modem选项应该是pppd默认选项,可以不加,加了更保险) |
附录A:双网卡路由配置案例
1、我机器有线网卡是eth0,ppp拨号生成ppp0,信息如下:
root@joe-OptiPlex-790:~# ifconfig
eth0
Link encap:以太网
硬件地址 d4:be:d9:9a:01:5d
inet 地址:192.168.10.46 广播:192.168.10.255 掩码:255.255.255.0
inet6 地址: fe80::d6be:d9ff:fe9a:15d/64
Scope:Link
UP BROADCAST RUNNING MULTICAST
MTU:1500 跃点数:1
接收数据包:897703 错误:10 丢弃:0 过载:0 帧数:5
发送数据包:42177 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:84285024 (84.2 MB) 发送字节:20817523
(20.8 MB)
中断:20 Memory:e1a00000-e1a20000
ppp0
Link encap:点对点协议
inet 地址:10.4.24.116 点对点:10.64.64.64 掩码:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST
MTU:1500 跃点数:1
接收数据包:5 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:4 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:3
接收字节:55 (55.0 B) 发送字节:58
(58.0 B)
2、路由配置要求是这样的:
192.168.10.0网段(即我的局域网)的数据走eth0,访问外网走ppp0。
3、配置操作
1)修改前
root@joe-OptiPlex-790:~# route
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
default 192.168.10.1 0.0.0.0 UG
0 0 0 eth0
10.64.64.64 * 255.255.255.255 UH 0
0 0 ppp0
192.168.10.0 * 255.255.255.0 U
0 0
0 eth0
2)删除默认路由
因为该默认路由是走eth0,外网要走ppp0,所以该路由不正确,故删除。
root@joe-OptiPlex-790:~# route del default
root@joe-OptiPlex-790:~# route
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
10.64.64.64 * 255.255.255.255 UH 0
0 0 ppp0
192.168.10.0 * 255.255.255.0 U
0 0 0 eth0
root@joe-OptiPlex-790:~# ping www.baidu.com
ping: unknown host www.baidu.com
root@joe-OptiPlex-790:~# ping 8.8.8.8
connect: Network is unreachable
3)添加默认路由,让外网数据走ppp0
root@joe-OptiPlex-790:~# route add default gw
10.4.24.116
root@joe-OptiPlex-790:~# route
内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
default 10.4.24.116 0.0.0.0 UG
0 0 0 ppp0
10.64.64.64 * 255.255.255.255 UH 0
0 0 ppp0
192.168.10.0 * 255.255.255.0 U
0 0 0 eth0
root@joe-OptiPlex-790:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=36
time=405 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=36
time=434 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet
loss, time 1001ms
rtt min/avg/max/mdev =
405.474/419.767/434.060/14.293 ms
5)
添加路由让局域网数据走eth0
从路由中已经可以看到如下信息:
192.168.10.0 * 255.255.255.0 U
0 0 0 eth0
该路由就是将192.168.10.0网段数据走eth0,因此此路由无需添加,如果该路由不存在则可使用以下命令添加:
route add -net 192.168.10.0 netmask
255.255.255.0 gw 192.168.10.46 dev eth0
linux&android PPP 相关知识的更多相关文章
- Android View相关知识问答
Android View相关核心知识问答 Activity Window View之间的三角关系 你真的了解View的坐标吗? 在渲染前获取 View 的宽高 5种手势工具类 浅析Android的窗口
- LINUX涉及网络相关知识
才接触到网络的老铁,是否比较晕呢? 简单记录一下网络相关知识吧(IPV4)! A0. 网络号.主机号 A1.网络地址分类: A2. 保留地址: A3. 子网掩码作用:(子网掩码.IPV4地址做“与”运 ...
- Linux的CPU相关知识
超线程和多线程的区别? 超线程从硬件层面理解,即一个CPU的部件(可以理解为核)同时执行多条指令,表现就是同时执行多个线程.多线程是软件层面的概念,比如CPU只有一个核,通过线程调度可以在一个时间段内 ...
- linux shell脚本相关知识
最近的项目中,有一个编写linux shell脚本的任务.由于之前不是很熟悉,在这个过程中遇到了很多困难,查找了很多资料,也收获了很多.下面是linux shell脚本中常用的知识总结. 1基础语法 ...
- Android.mk相关知识
Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名.引用的头文件目录.需要编译的.c/.cpp文件和.a静态库文件等.要掌握jni,就必须熟练掌握Andr ...
- Sdcard插拔、状态广播监听,Android文件系统,Android存储器相关知识总结
一 SDcard广播监听,注册,取消注册的实现 (1)根据实际需要监听的事件,添加action,并注册,一般在onCreate中添加 //在IntentFilter中选择你要监听的行为 IntentF ...
- linux下分区相关知识
Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码.以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1.hda2.hda3.hda4,而逻辑分区占用 ...
- Android——dpi相关知识总结
1.术语和概念 术语 说明 备注 Screen size(屏幕尺寸) 指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸...... nexus4手机是4.7英寸 As ...
- Android拍照相关知识总结
1.调用系统的照相机程序 Intent intent = newIntent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(inte ...
随机推荐
- 导出导入grafana完整的dashboard(非单个图表)
导出很简单,如下图操作即可 导入
- 自定义页签logo
1.webpack.prod.conf new HtmlWebpackPlugin({ filename: process.env.NODE_ENV === 'testing' ? 'index.ht ...
- App Transfer:苹果允许iOS App从一个开发者帐号转至另一个开发者账号
App Transfer:苹果允许iOS App从一个开发者帐号转至另一个开发者账号 苹果在WWDC上宣布超过30万的开发者为iOS平台开发超过90万的应用,你可能会想到有人想出售或者购买app. 现 ...
- 微信小程序插件开发
小程序插件功能介绍 插件,是可被添加到小程序内直接使用的功能组件.开发者可以像开发小程序一样开发一个插件,供其他小程序使用.同时,小程序开发者可直接在小程序内使用插件,无需重复开发,为用户提供更丰富的 ...
- chapter02 回归模型在''美国波士顿房价预测''问题中实践
#coding=utf8 # 从sklearn.datasets导入波士顿房价数据读取器. from sklearn.datasets import load_boston # 从sklearn.mo ...
- elastic job简单用法
public class JobMain { //配置注册中心 private ZookeeperConfiguration zkConfig = new ZookeeperConfiguration ...
- CTF-练习平台-Misc之 再来一道隐写
十二.再来一道隐写 下载文件后打开,用常用的几个方法都没有找到有用的信息,然后观察图片发现搞度有点低,所以用WinHex打开把图片高度改大,保存.再次打开图片发现flag
- hdu2067 小兔的棋盘 DP/数学/卡特兰数
棋盘的一角走到另一角并且不越过对角线,卡特兰数,数据量小,可以当做dp求路径数 #include<stdio.h> ][]; int main() { ; ) { int i,j; lon ...
- test20181007 wzoi
题意 分析 考场40分 错误的Manacher+dp. 用\(f(i)\)表示\(s_{1 \sim i}\)的最长偶数回文覆盖长度,在Manacher的同时用刷表法转移,每次还要对\(f(i-1)\ ...
- MySQL Transaction--RC事务隔离级别下加锁测试
==============================================================================非索引列更新 在读提交的事务隔离级别下,在非 ...