在编写脚本之前,要先安装好ppp相关驱动,pppd

已知pppd位于 /usr/sbin , chat 位于 /usr/sbin , options 位于 /etc/ppp 。

要编写脚本,就要切换目录到 /etc/ppp/peers,若没有peers目录则自行创建。因为是在/etc目录之下,需要使用sudo或者进入root模式才能创建或者编辑。安装ppp时,pppd就已经被固定到系统路径 /etc/ppp 找options, 到 /etc/ppp/peers 找脚本文件。可到ppp源码 ppp-2.4.7/pppd 下找pathnames.h 修改,如图:

所有的配置流程都是:

chat脚本的配置,options的脚本配置,该脚本会引用chat脚本,pppd应用程序会调用options脚本,如果需要用户、密码登陆,就要配置chat-secret或者pap-secret,该脚本也会被options脚本引用。

1.首先拷贝pppd和chat到/usr/sbin目录;

2.然后编写三个脚本,option脚本要注意的是串口设备名称,不要复制网上的脚本,一定要使用可用的串口设备名称。

pppd [ options ]

pppd应用程序会调用options脚本文件,得益于pppd程序的一个选项参数 call name

call name 和下面rasppp脚本中的选项一样,都是pppd的参数

它的解释是这样的:从/etc/ppp/peer/ name文件中读取其他选项该文件可能包含特权选项,如noauth,即使pppd不是由root运行。name字符串不能以/开头,也不能包含…作为一个路径名组件。

我们通常把这些选项放在name文件中,然后我们只需要pppd call name就可以了

rasppp

# /etc/ppp/peers/rasppp# Usage: sudo pppd call rasppp# 连接调试时隐藏密码
hide-password# 该手机不需要身份验证
noauth# 用于呼叫控制脚本
connect '/usr/sbin/chat -s -v -f /etc/ppp/peers/rasppp-connect-chat'# 断开连接脚本
disconnect '/usr/sbin/chat -s -v -f /etc/ppp/peers/rasppp-disconnect-chat'# 调试信息,pppd将以可读的形式记录所有发送或接收的控制数据包的内容
debug# 4G模块对应的串口设备名称
/dev/ttyUSB4# 串口波特率
115200# 使用默认路由,IPCP协商成功后,在系统路由表中添加一条缺省路由,使用对等体作为网关。当PPP连接断开时,删除此表项。
defaultroute# 不使用默认IP:当没有指定本地IP地址时禁用默认行为,这是为了从主机名确定(如果可能)本地IP地址。
noipdefault# 不使用PPP压缩
novj
novjccomp
noccp#使用该选项,pppd将接受对等体对我们本地IP地址的想法,即使本地IP地址在选项中指定
ipcp-accept-local#通过该选项,pppd将接受对等体对其(远端)IP地址的想法,即使远端IP地址在选项中指定
ipcp-accept-remote#不要使用调制解调器控制线
local# 指定pppd应该为串行设备创建一个锁文件,以确保对该设备的独占访问,其他程序在发现这个文件后,就能得知相应的串口已经被使用。
lock#使用转储选项,pppd将打印所有已设置的选项值
dump# 保持pppd连接到终端。在pppd程序需要放到后台运行时,最好不要该选项
nodetach# 用户名 密码
user ctnet@mycdma.cn
password vnet.mobi
#电信需要用户名和密码,移动、联通拨号不需要,下文给出不同运营商的配置# 硬件流量控制
crtscts#将用于身份验证的远程系统的假定名称设置为name
remotename 3gppp#为ip-up、ip-pre-up和ip-down脚本提供额外参数。如果提供了这个选项,提供的字符串将作为这些脚本的第6个参数提供
ipparam 3gppp# 向对端请求最多2个DNS服务器地址
usepeerdns

rasppp-connect-chat

# 连续5秒,收到以下字符,则退出执行
# 进行超时控制,增加对特殊情况的处理,加入下面字段
TIMEOUT 5
ABORT   "BUSY"
ABORT   "ERROR"
ABORT   "NO ANSWER"
ABORT   "NO CARRTER"
ABORT   "NO DIALTONE"#一个chat脚本都是由字符串对来组成的。前面的字符串都是期望获取的串,紧跟的是发送的字符串
# 例如 ""AT,不管收到什么字符串,先发出字符串AT
#      OK \rATZ,发送ATZ,希望收到的是OK
""AT
OK \rATZ# 建立连接,电信为空,下文给出各运营商配置
OK \rAT+CGDCONT=1,"IP",""# 拨号,#777是电信的拨号号码
OK-AT-OK ATDT#777
CONNECT \d\c

rasppp-disconnect-chat

ABORT "ERROR"
ABORT "NO DIALTONE"
SAY "\NSending break to the modem\n"""\k"
#挂断电话
""+++ATH"
SAY "\nGood bye !\n"

3.执行pppd,成功获取ip。

sudo pppd call rasppp &

4.得到ip和dns后,关掉eth0,添加dns到/etc/resolv.conf,再用route命令添加默认网关为远端ip。

route add default gw xx.xx.xx.xx

5.此时就能ping通外网。

更多的设置可以去学习pppd和chat程序的选项参数~
Linux下man pppd、man chat就可以了
另外,在我的博客中也有两个程序的man手册的翻译

参考链接:https://blog.csdn.net/pjwshuai/article/details/124533452

Linux 4G模块pppd拨号上网脚本解析相关推荐

  1. linux 串口4g ppp,在ARM-linux上实现4G模块PPP拨号上网

    原标题:在ARM-linux上实现4G模块PPP拨号上网 在ARM平台上实现 的 ,参考网上的资料和自己的理解,从一无所知到开发完成花了一周多.最后看到ARM板ping通www.baidu.com时甚 ...

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

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

  3. 怎么在Linux内核模块加打印,在ARM-linux上实现4G模块PPP拨号上网

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

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

    搞了3.4天4G模块,从毫无头绪到可以ping通外网,着实不轻松.用的是一不知名品牌EC20, 技术支持很少,资料很乱,然后自己搜集资料,一步一步调试,才搞通. 环境: ubuntu12.04.02 ...

  5. Centos 7.6 下使用美格SLM750(4G模块)拨号上网

    文章目录 概述 准备 编译内核源码 添加串口的ID 删除NDIS和ADB端口 开始编译 编译NDIS驱动 编译Gobinet拨号工具 服务化拨号工具 概述 ​ 想要实现4G上网有两种方式,要么加多一个 ...

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

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

  7. linux中的pppoe拨号上网

    实例:(linux中的pppoe拨号上网) ① 安装软件:把下载的pppoe传到linux下的/root目录下,在终端对软件进行拆包: ll:查看目录,能看见软件包的名字 tar -zxvf rp-p ...

  8. linux桌面版拨号连接,linux中的pppoe拨号上网

    实例:(linux中的pppoe拨号上网) ①安装软件:把下载的pppoe传到linux下的/root目录下,在终端对软件进行拆包: ll:查看目录,能看见软件包的名字 tar -zxvf rp-pp ...

  9. linux操作系统adsl 上网设置,Linux操作系统下ADSL拨号上网详细步骤 -电脑资料

    本指南将帮助你在Ubuntu 6.06 LTS (Dapper Drake)下用PPPoE以太网modem建立ADSL网络连接, 1. 简介 虽然用路由器联网很常见,我们有时也需要用PPPoE直接连接 ...

  10. linux拨号上网指令,linux中的pppoe拨号上网

    实例:(linux中的pppoe拨号上网) ①安装软件:把下载的pppoe传到linux下的/root目录下,在终端对软件进行拆包: ll:查看目录,能看见软件包的名字 tar -zxvf rp-pp ...

最新文章

  1. 扫码点餐小程序源码_扫码点餐小程序有什么用?怎么制作?
  2. Python3 基础语法(笔记2)
  3. “数据中国”路在何方?答:在“数据中国加速计划”
  4. 跟本菜菜一起去体验Microsoft Windows Server Code Name Longhorn Server Core
  5. C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译)
  6. 在三个Java IDE中生成的三种常见方法
  7. 图像特征提取与描述_角点特征02:SIFT算法+SURF算法
  8. 数据库报错SELECT list is not in GROUP BY clause and contains nonaggregated col
  9. html5声称需要大写吗,html5中有没有规定字母标签是用大写还是小写?
  10. Android-EasyChart第二波饼图
  11. PS制作gif表情包
  12. 响应式布局的实现方式
  13. 效率工具 Snipaste、坚果云、印象笔记
  14. Linux下编写C语言
  15. 【通信】通信网络基础分类
  16. solr全文搜索的使用
  17. JDK配置(Win10, jdk1.8.0_181)
  18. SkeyeVSS森林防火远程监控解决方案
  19. Compareable接口
  20. 2023英伟达显卡排名天梯图(已更新)

热门文章

  1. 关于图片格式的选择,jpg、png、gif、svg
  2. 搅拌站特征码序列号_芝奇的特征码与颗粒的命名规则
  3. MPP文件怎么打开 五种方法最合适
  4. 六分解谜四分温情,浅谈《像素小屋》倍受新手解谜者的青睐的原因
  5. 迈向新征程!2019国际第三代半导体大赛颁奖典礼盛大举办!
  6. C# 合并Excel工作表
  7. linux挂马检测,检测网站挂马程序(Python)
  8. 如何用Latex合并两个pdf
  9. Linux-you need at least 8.6GB disk space to install Ubuntu,this computer has only 8GB
  10. python绘制太阳花_Python绘制蟒蛇和太阳花