pppd程序
pppd是(Point-to-Point Protocol Daemon)点对点协议守护进程
PPP是用于在拨号调制解调器、DSL连接和许多其他类型上建立互联网连接的协议点对点的链接。pppd守护进程与内核PPP驱动程序一起建立和维护PPP与另一个系统(称为对等体)连接,并协商互联网协议(IP)地址的每一端链接。pppd还可以进行认证和/或向对等体提供认证信息。
在目前的使用环境中,pppd主要使用串口和网口,前者常用于4G,GSM上网模块拨号,后者常用于家庭pppoe拨号,pppoe需要pppoe插件(OpenWRT为rp-pppoe.so)支持,并使用 nic-<interface>指定以太网接口。
如下为pppd的以太网拨号例子
/usr/sbin/pppd nodetach ipparam wan ifname pppoe-wan +ipv6 set AUTOIPV6=1 nodefaultroute usepeerdns maxfail 1 user tesdfsdf password sdfsdfsdfsdf ip-up-script /lib/netifd/ppp-up ip-down-script /lib/netifd/ppp-down mtu 1480 mru 1480 plugin rp-pppoe.so nic-eth0
如下为3G,4G上网拨号的例子
/usr/sbin/pppd nodetach ipparam 4g1 ifname 3g-4g1 +ipv6 set AUTOIPV6=1 nodefaultroute usepeerdns maxfail 1 connect /usr/sbin/chat -t5 -E -f /etc/chatscripts/3g.chat ip-up-script /lib/netifd/ppp-up ip-down-script /lib/netifd/ppp-down noaccomp nopcomp novj nobsdcomp noauth set EXTENDPREFIX=1 lock crtscts 115200 /dev/ttyUSB2
我们根据以上的例子解释参数
- nodetach, 不要脱离控制端子。如果没有此选项,如果指定了除标准输入终端以外的串行设备,pppd将分叉成为后台进程。
- ipparam <string>,为ip-up、ip-pre-up和ip-down脚本提供额外参数。如果提供了这个选项,提供的字符串将作为这些脚本的第6个参数提供。
- ifname <string>, 创建的ppp接口名称。如果接口名称已经被使用,或者由于任何其他原因不能使用该名称,pppd将终止。
- +ipv6,启用ipv6协议。
- set <name=value>,为pppd调用的脚本设置一个环境变量。
- nodefaultroute,禁止pppd添加默认路由
- usepeerdns,向对端请求最多两个DNS服务器地址
- maxfail <n>, 连续链接n次后失败,0表示没有限制,默认为10
- user <string>, 用于PAP/CHAP鉴别的用户名
- password <string>, 用于PAP/CHAP鉴别的用户密码
- ip-up-script <string>,连接成功是掉用的脚本
- ip-down-script <string>, 断开连接时掉用的脚本
- mtu <n>,配置MTU,除非对端通过MRU协商请求更小的值,否则pppd会请求内核组网码通过PPP网络接口发送不超过n字节的数据包。注意对于IPv6协议,MTU值至少为1280。
- mru <n>,配置MRU的值为n, Pppd将要求对端发送不超过n字节的报文。n取值范围为128 ~ 16384;缺省值是1500。296的值在非常慢的链路上工作得很好(TCP/IP报头40字节+ 256字节的数据)。注意对于IPv6协议,MRU≥1280。
- plugin <string>,将共享库对象文件filename加载为插件。如果文件名不包含斜杠(/),pppd将在/usr/lib/pppd/$version目录中查找插件,其中$version是pppd的版本号
- nic-<interface>,在以太网上建立PPP链路(PPPoE)需要加载pppd的插件PPPoE。然后指定选项nic-interface而不是调制解调器选项ttyname和speed.
- connect <string>, 连接脚本,在启动PPP协议之前,通常需要做一些准备工作来准备链路;例如,使用拨号调制解调器时,需要将命令发送到调制解调器以拨号适当的电话号码。该选项指定pppd在开始PPP协商之前执行的命令(通过传递给shell)。chat(8)程序在这里通常很有用,因为它提供了一种向调制解调器发送任意字符串并对接收到的字符作出响应的方法。
- noaccomp ,待补充
- novj,在发送和接收方向禁用Van Jacobson式TCP/IP报头压缩
- nobsdcomp,关闭Van Jacobson式TCP/IP报头压缩中的连接id压缩选项。有了这个选项,pppd将不会从Van Jacobson压缩的TCP/IP报头中忽略连接id字节,也不会要求对等端这样做。
- noauth ,不要求验证鉴别
- lock,指定pppd应该为串行设备创建一个 UUCP-style 的锁文件,以确保对该设备的独占访问。缺省情况下,pppd不会创建锁文件
- crtscts,待补充
- 115200, 波特率
- /dev/ttyUSB2,串口设备
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律