环境:raspbian-stretch(2018-06-27)

树莓派:3代B型

  SIM868模块具有GPRS数据传输功能(2G网络),但是模块是通过AT指令控制的,在树莓派上用AT指令控制会非常不方便,如果可以像wifi一样操作就很方便了。通过ppp拨号上网就可以实现这个功能。

  这样就可以实现树莓派通过socket或者http协议直接与服务器访问。

1、安装ppp

sudo apt-get install ppp

2、进入/etc/ppp/peers目录,复制一份provider文件并命名为gprs

sudo su
sudo cd /etc/ppp/peers
cp provider gprs

3、打开并编辑gprs脚本,编写gprs脚本为PPP连接指定了连接使用的设备、使用的控制字符传输速率、指定了硬件加速、溢出控制等。

vim /etc/ppp/peers/gprs

内容修改如下:

注:加上参数-v 告诉 chat命令将其所有的输出/入拷贝到系统记录里(通常是 #/var/log/messages),chat脚本的位置可以位于/etc/目录下,也可以位于/var下,这个可以根据需要灵活设置

4、打开并编辑gprs的chat脚本

从上图中可以看到gprs的chat脚本放置在/etc/chatscripts/文件夹下的gprs文件

cd /etc/chatscriptscp gprs gprs_copy
vim gprs

配置文件修改如下:

通过查看AT命令手册,CGDCONT是有很多参数的

三大运营商拨号设置表:

5、测试ppp拨号上网

注意:需要将eth0、wlan0即网口给禁用掉,这样ping命令才会通过ppp0端口寻找路由连接外网,但是eth0、wlan0网口禁用掉之后就不能联网了,所以下面分两种情况进行操作!

(1)、树莓派与显示器通过hdmi线直连,可按照如下进行操作

需要将eth0、wlan0即网口给禁用掉

sudo ifconfig eth0 down
sudo ifconfig wlan0 down 

启动ppp拨号

pppd call gprs &

拨号成功如图所示:

ping 一下度娘看下是否可以上网,如ping通就是可以上网了。

(2)、树莓派与电脑通过 ssh 或者 远程桌面 方式连接,可按照如下进行操作

新建一个linux shell脚本,命名为:bat.sh,内容如下:

PS:使用shell脚本的目的就是为了在禁用 eth0、wlan0 网口后,让树莓派自动启动ppp拨号,并启动完成之后将 eth0、wlan0 网口开启,方便继续远程连接!!!

#!/bin/bashecho -e "start!"
#将eth0、wlan0网口给禁用掉
sudo ifconfig eth0 down
sudo ifconfig waln0 down
#启动ppp拨号pppd call gprs &
#将eth0、wlan0网口开启sudo ifconfig eth0 up sudo ifconfig waln0 up 

echo -e "end!"

打开Terminal终端,cd 到 bat.sh 目录下

#开启root模式su

#执行bat.sh脚本chmod 755 bat.sh./bat.sh

拨号成功如图所示:

指定ppp0网口ping百度,可以看到ping通了,也就说树莓派可以使用ppp拨号上网了。

PS:指定ppp0网口ping百度操作可参考指定网卡进行ping操作。

6、 对于第5步操作的思考

我们注意到,如果是单独执行 pppd call gprs & 也是会产生ppp0网口 并且运营商也会分配公网ip,但是我们指定源ip去ping,却无法ping通百度,经过摸索,发现无法通过sim868上网和linux 的路由配置有关

执行完 pppd call gprs & 之后,ifconfig 查看网口配置情况

sudo pppd call gprs & ifconfig

可以看到,虽然无法ping通百度,但是有公网ip 10.25.98.151,查看当前路由配置

route -n

发现对于ppp0网口来说,只有一条路由记录为:

192.168.254.254     0.0.0.0    255.255.255.255    VH    0    0    0    ppp0

注:这是条主机路由,目的ip地址为192.168.254.254,所以当然无法ping通百度。

我们增加一条路由规则,

sudo route add -net 0.0.0.0 netmask 0.0.0.0 dev ppp0

可以看到多出一条目的ip地址为0.0.0.0,网关为默认网关 0.0.0.0,子网掩码为 0.0.0.0 的默认路由规则为:

0.0.0.0  0.0.0.0  0.0.0.0  V  0  0  0  ppp0

可以看到通过ppp0网口可以ping通百度了,也就是说可以通过sim868上网了。

7、 对于第5步操作的进一步思考

我们注意到5步中,有个操作为先将eth0、wlan0即网口给禁用掉,再启动ppp拨号,最后再up开启eth0、wlan0网口

先将eth0、wlan0即网口给禁用掉之前,路由配置如下:

启动ppp拨号

sudo ./bat.sh

查看路由配置如下:

发现多处一条ppp0网口的默认路由!!!

指定源ip为10.9.169.76也可ping通百度!!

8、 结语

经过第6、7步的思考,我们知道了如果单纯的执行 pppd call gprs & 启动ppp拨号的话,虽然能获得ip,但是缺少对于ppp0网口的路由配置,才导致无法通过sim868模块拨号上网。这时就需要我们增加一条如下的默认路由即可:

sudo route add -net 0.0.0.0 netmask 0.0.0.0 dev ppp0

参考资料:   http://www.waveshare.net/study/article-790-1.html

      https://blog.csdn.net/allen19881119/article/details/72457541

转载于:https://www.cnblogs.com/little-kwy/p/9484737.html

树莓派实现SIM868 ppp拨号上网相关推荐

  1. 第三节 树莓派EC20之PPP拨号上网

    EC20 ppp拨号上网步骤 1. 准备工作 2.安装软件 3.上网测试 树莓派内核现在已集成了EC20的驱动,不需要再去进行驱动移植,虽然没有MiniPcie的接口,但用usb转minipcie也是 ...

  2. 树莓派搭载EC200U 4G模块(USB网卡上网和PPP拨号上网)

    文章目录 一.EC200U模块4G模块介绍 二.USB转串口驱动设置 (1)打开树莓派的串口 (2)lsusb是否有EC200U模块 (3)添加 VID 和 PID 信息 三.USB网卡驱动上网 四. ...

  3. 实现4G模块EC20在树莓派系统下的PPP拨号上网

    目录 PPP协议 PPP通信建立 PPP认证方式 ppp协议栈 pppd数据传输 Pppd 控制协议数据流程 Linux中的PPP实现 安装PPP 方法一:源码安装 方法二: 直接安装 PPP拨号上网 ...

  4. 树莓派中SIM7600G-H 4G DONGLE模块使用记录(一)PPP拨号上网/4G上网

    项目场景: 如何使用SIM7600系列的4G通信模块进行PPP网上拨号以实现4G通信,在讲解前,未搭建好树莓派远程连接桌面的读者可以先转向树莓派4B环境搭建+电脑远程连接+打开文件管理闪退(上). 模 ...

  5. sim7600ce 拨号上网测试_SIM7600CE TCP/IP连接与PPP拨号上网 4G上网

    SIM7600CE联网测试分为两部分: 1.TCP/IP连接 2.PPP拨号上网 实验环境:ubuntu-meta 16.04 硬件:树莓派3B,SIM7600CE 上网卡:移动的NB-IOT物联网卡 ...

  6. SIM7600CE TCP/IP连接与PPP拨号上网

    SIM7600CE联网测试分为两部分: 1.TCP/IP连接 2.PPP拨号上网 实验环境:ubuntu-meta 16.04 硬件:树莓派3B,SIM7600CE 上网卡:移动的NB-IOT物联网卡 ...

  7. linux怎么使用4g模块的网络,在ARM-linux上实现4G模块PPP拨号上网(示例代码)

    在ARM平台上实现4G模块的PPP拨号上网,参考网上的资料和自己的理解,从一无所知到开发完成花了一周多.最后看到ARM板ping通www.baidu.com时甚是高兴,现将此过程整理如下.当然,除此之 ...

  8. sim900芯片—GPRS模块ppp拨号上网

    --------------------------------------- 主机操作系统:Centos 6.7 交叉编译器环境:arm-linux-gcc-4.5.4  开发板平台: FL2440 ...

  9. 在ARM-linux上实现4G模块simcom7100c 的PPP拨号上网

    转http://blog.sina.com.cn/s/blog_7880d3350102wb92.html 在ARM平台上实现4G模块的PPP拨号上网,参考网上的资料和自己的理解,从一无所知到开发完成 ...

  10. 【原创】ppp拨号上网总结

    [原创]ppp拨号上网总结 Author: chad Mail: linczone@163.com 本文可以自由转载,但转载请务必注明出处以及本声明信息. 一.开发环境简述 GPRS模块 MC52I ...

最新文章

  1. python selenium 爬取js加载的内容为空,Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容...
  2. 【工具】模板引擎 Velocity
  3. 初等数论--整除--欧几里得算法/辗转相除法/更相减损术
  4. python修改html的td_python3修改HTMLTestRunner,生成有截图的测试报告,并发送测试邮件(一)...
  5. 北斗导航 | RAIM奇偶矢量法理论分析(公式推导:原理图)
  6. 临时表与表变量深入探究
  7. RHEL 6.6安装桌面环境GNOME
  8. python 调用控制台并获取返回结果_Java调用Python脚本并获取返回值
  9. java 垃圾回收手动回收_Java垃圾回收(2)
  10. 分析影响流媒体服务器性能的硬件瓶颈
  11. 前端开发 锚点链接 简单轮播图 0302
  12. dj电商-需求分析-商品模块
  13. 「Flink」使用Managed Keyed State实现计数窗口功能
  14. 学MFC的九九八十一难
  15. 【信息系统项目管理师】第12章-项目采购管理 知识点详细整理
  16. presscad图层LIsp_PressCADLisp程序说明
  17. 【语音处理】开始学习语音,从基本概念和应用讲起
  18. 小程序上传大小限制问题解决
  19. Dagger2 依赖注入框架介绍
  20. firefox插件开发和调试

热门文章

  1. python画同心圆程序_如何用python画同心圆并内接一个五角星?
  2. Gradle入门教程学习笔记
  3. 记录xmapp升级过程中解决mysql扩展中出现的问题
  4. 数据分析——KMeans聚类算法
  5. FMEA失效模式和影响分析
  6. 2020-2022年最全湖南省矢量数据(路网含城市道路、铁路(包括地铁、轻轨)高速、国道、省道、县道、乡道+几百万个poi数据+省市县乡镇行政区划+河流水系网+建筑轮廓+30米dem等shp数据
  7. 电机与拖动matlab仿真,Matlab仿真软件在电机与拖动中的应用
  8. 华为模拟器eNSP下载与安装教程
  9. PDF识别文字、关键字,获取对应坐标,用于插入电子签名
  10. 五色电阻在线计算机,色环电阻在线计算器