pppd程序的参数——man手册翻译

2023-10-28

pppd全称

Point-to-Point Protocol Daemon——点对点协议守护进程

摘要

pppd [ options ]

描述

PPP是用于在拨号调制解调器、DSL连接和许多其他类型上建立互联网连接的协议点对点的链接。pppd守护进程与内核PPP驱动程序一起建立和维护PPP与另一个系统(称为对等体)连接,并协商互联网协议(IP)地址的每一端链接。Pppd还可以对对等体进行认证和/或向对等体提供认证信息。PPP可以使用与IP以外的其他网络协议,但这种使用正变得越来越少。

常用的选项

ttyname 串口名

  • 使用名为ttyname的串口与对端通信。如果ttyname不是以斜杠(/)开头,字符串“/dev/”被添加到ttyname前面,以形成要打开的设备名称。如果没有设备名称,或者如果给定了连接到标准输入的终端的名称,PPPD将使用该终端,并且不会把自己放在后台。来自特权源的此选项的值不能被非特权用户覆盖。

speed 波特率

  • 一个选项是一个十进制数字,被作为串行设备的期望波特率。在诸如4.4BSD和NetBSD这样的系统上,可以指定任何速度。其他系统(如Linux、SunOS)只支持常用的波特率。

asyncmap map

  • 该选项为链接的这一端设置异步控制字符映射(ACCM)。ACCM是一组32位的字符集,每个字符对应一个ASCII控制字符,取值范围为0 ~ 31,其中1位表示该控制字符不能用于发送到本系统的PPP报文。映射编码为一个十六进制数(没有前导0x),其中最低有效位(00000001)表示字符0,最高有效位(80000000)表示字符31。Pppd将要求对等端以2字节转义序列的形式发送这些字符。如果给出多个asyncmap选项,这些值是或的。如果没有给出asyncmap选项,默认值为零,因此pppd将要求对等体不要转义任何控制字符。若要转义传输的字符,请使用转义选项。

auth

  • 在允许发送或接收网络数据包之前,要求对端验证自己。如果系统有缺省路由,此选项为缺省值。如果既没有指定该选项,也没有指定noauth选项,pppd将只允许对等体使用系统中没有路由的IP地址。

noauth //不需要身份验证

call name

  • 从/etc/ppp/peer/ name文件中读取其他选项该文件可能包含特权选项,如noauth,即使pppd不是由root运行。name字符串不能以/开头,也不能包含…作为一个路径名组件。下面描述了选项文件的格式。

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

connect script 连接脚本

  • 在启动PPP协议之前,通常需要做一些准备工作来准备链路;例如,使用拨号调制解调器时,需要将命令发送到调制解调器以拨号适当的电话号码。该选项指定pppd在开始PPP协商之前执行的命令(通过传递给shell)。chat(8)程序在这里通常很有用,因为它提供了一种向调制解调器发送任意字符串并对接收到的字符作出响应的方法。非特权用户不能重写来自特权源的此选项的值。

crtscts

  • 指定pppd应通过RS-232接口中的RTS和CTS信号设置串口使用硬件流量控制。如果没有给出crtscts、nocrtscts、cdtrcts和nocdtrcts选项,串行端口的硬件流控制设置将保持不变。有些串行端口(如Macintosh串行端口)缺乏真正的RTS输出。通过该方式实现单向流量控制。当调制解调器(通过CTS)请求时,串口将暂停传输,但无法请求调制解调器停止向计算机发送。这种模式保留了使用DTR作为调制解调器控制线的能力。

defaultroute

  • IPCP协商成功后,在系统路由表中添加一条缺省路由,使用对等体作为网关。当PPP连接断开时,删除此表项。如果指定了nodefaultroute选项,则该选项具有特权。

一般指定defaultroute:使用默认路由

defaultroute-metric

  • 定义缺省路由的度量值,只有在没有其他缺省路由具有相同度量值时才添加该值。缺省值为-1时,只有在根本没有缺省路由的情况下才会添加路由

defaultroute6

  • 当IPv6CP协商成功后,在系统路由表中添加一条缺省IPv6路由,使用对等体作为网关。当PPP连接断开时,删除此表项。如果指定了nodefaultroute6选项,则该选项为特权选项。

replacedefaultroute

  • 该选项是defaultroute选项的标志。如果设置了defaultroute,并且设置了该标志,则pppd用新的缺省路由替换现有的缺省路由。这个选项是特权。

disconnect script 断开脚本

  • 在pppd终止链接之后,通过将脚本指定的命令传递给shell来执行该命令。例如,如果硬件调制解调器控制信号不可用,该命令可以向调制解调器发出命令,使其挂起。如果调制解调器已经挂起,则不会运行断开连接脚本。来自特权源的此选项的值不能被非特权用户重写。

escape xx, yy,… 逃避…

  • 指定某些字符应在传输时转义(无论对等端是否请求用其异步控制字符映射对其进行转义)。要转义的字符被指定为一个由逗号分隔的十六进制数字列表。注意,几乎可以为转义选项指定任何字符,这与asyncmap选项不同,后者只允许指定控制字符。不能转义的字符是十六进制值0x20 - 0x3f或0x5e的字符。

file name 文件名称

  • 从文件名读取选项(格式如下所述)。调用pppd的用户必须能够读取该文件。

init script 初始化脚本

  • 执行脚本指定的命令,将其传递给shell,以初始化串行线。这个脚本通常会使用chat(8)程序来配置调制解调器以启用自动应答。来自特权源的此选项的值不能被非特权用户重写。

lock 锁

  • 指定pppd应该为串行设备创建一个 UUCP-style 的锁文件,以确保对该设备的独占访问。缺省情况下,pppd不会创建锁文件。

mru n

  • 配置MRU[最大接收单元]的值为n, Pppd将要求对端发送不超过n字节的报文。n取值范围为128 ~ 16384;缺省值是1500。296的值在非常慢的链路上工作得很好(TCP/IP报头40字节+ 256字节的数据)。注意对于IPv6协议,MRU≥1280。

mtu n

  • 配置MTU [Maximum Transmit Unit]的值为n。除非对端通过MRU协商请求更小的值,否则pppd会请求内核组网码通过PPP网络接口发送不超过n字节的数据包。注意对于IPv6协议,MTU值至少为1280。

passive

  • 使能LCP中的“passive”选项。使用此选项,pppd将尝试发起连接;如果没有收到对等体的回复,pppd将只是被动地等待对等体的有效LCP报文,而不是退出,因为它没有这个选项。

OPTIONS 选项

<local_IP_address>:<remote_IP_address>

  • 配置本端和/或对端接口IP地址。任何一个都可以省略。IP地址可以用主机名或十进制点表示法指定(例如150.234.56.78)。默认的本地地址是系统的(第一个)IP地址(除非提供noipdefault选项)。如果没有在任何选项中指定,则将从对等体获得远端地址。因此,在简单的情况下,这个选项不是必需的。如果指定了本地和/或远端IP地址,pppd在IPCP协商中不会接受与对端不同的值,除非分别给出了IPCP -accept-local和/或IPCP -accept-remote选项。

+ipv6

  • 启用IPv6CP和ipv6协议。

ipv6 <local_interface_identifier>,<remote_interface_identifier>

  • 设置本地和/或远端64位接口标识符。任何一个都可以省略。该标识符必须以IPv6地址的标准ASCII表示法指定(例如::dead:beef)。如果指定ipv6cp-use-ipaddr选项,则本地标识符为本地IPv4地址(见上文)。在支持唯一持久id的系统上,例如从以太网MAC地址派生的EUI-48, ipv6cp-use-persistent选项可以用来替换ipv6的local>选择。否则标识符是随机的。

active-filter filter-expression

  • 指定一个数据包过滤器,用于确定哪些数据包被认为是链路活动,从而重置空闲定时器,或导致链路进入请求拨号模式。如果链路上有规律地发送或接收数据包(例如,路由信息包),则该选项与空闲选项结合使用是很有用的,否则会防止链路出现空闲状态。filter-expression语法与tcpdump(1)中描述的一样,只是不允许使用不适合PPP链路的限定符,如ether和arp。通常,过滤器表达式应该用单引号括起来,以防止shell解释表达式中的空白。该选项目前仅在Linux下可用,并且要求将内核配置为包含PPP过滤支持(CONFIG_PPP_FILTER)。请注意,可以使用入站和出站限定符对入站和出站数据包应用不同的约束。

allow-ip address(es)

  • 允许对等体使用给定的IP地址或子网,而无需对自己进行身份验证。该参数被解析为机密文件中允许的IP地址列表的每个元素(请参阅下面的身份验证部分)。

allow-number number

  • 允许对等端从给定的电话号码连接。尾随的’ *'字符将匹配以开头部分开始的所有数字。

bsdcomp nr, nt

  • 请求对端对自己发送的报文(使用BSD-Compress方案)压缩最大码长为nr比特的报文,同意对端对自己发送的报文(使用BSD-Compress方案)压缩最大码长为nt比特的报文。如果未指定nt,则默认为nr给定的值。nr和nt可以使用范围为9到15的值;值越大,压缩效果越好,但压缩字典消耗的内核内存也越多。或者,nr或nt的值为0将禁用相应方向的压缩。使用nobsdcomp或bsdcomp 0完全禁用BSD-Compress压缩。

ca ca-file

  • 使用CA -file文件作为建立EAP-TLS连接所需的X.509证书颁发机构(CA)文件(PEM格式)。在客户端,此选项与证书和键选项一起使用。

cdtrcts

  • 使用非标准的硬件流量控制(即DTR/CTS)来控制串口上的数据流。如果没有给出crtscts、nocrtscts、cdtrcts和nocdtrcts选项,串行端口的硬件流控制设置将保持不变。有些串行端口(如Macintosh串行端口)缺乏真正的RTS输出。这样的串口通过这种方式实现了真正的双向流量控制。牺牲的是这种流量控制模式不允许使用DTR作为调制解调器控制线。

cert certfile

  • 使用文件certfile作为X.509证书(PEM格式),用于建立EAP-TLS连接。该选项与ca和key选项一起用于客户端。

chap-interval n

  • 如果指定该选项,pppd将每n秒重新向对等体发起挑战。

chap-max-challenge n

  • 设置CHAP挑战传输的最大次数为n,默认为10。

chap-restart n

  • 设置CHAP重启时间间隔(challenge的重传超时时间)为n秒(默认为3)。

chap-timeout n

  • 设置对端CHAP认证超时时间为n秒(默认为60)。

chapms-strip-domain

  • 一些Windows 9x/ME客户端可能在提供的客户端名称中的用户名之前传输MS域。该选项允许在与秘密文件匹配之前从服务器端客户端名称中剥离域。

child-timeout n

  • 退出时,在退出前等待任何子进程(例如使用pty命令指定的命令)退出,最多等待n秒。在超时结束时,pppd将向任何剩余的子进程发送一个SIGTERM信号并退出。值为0意味着没有超时,即pppd将等待直到所有子进程退出。

connect-delay n

  • 在连接脚本结束后,等待最长n毫秒从对端收到一个有效的PPP报文。在这个时间结束时,或者当从对端收到一个有效的PPP报文时,pppd将通过发送第一个LCP报文开始协商。缺省值是1000(1秒)。这个等待时间仅适用于使用connect或pty选项的情况。

crl filename

  • (EAP-TLS)使用文件文件名作为证书撤销列表,检查对端证书的有效性。对于建立EAP-TLS连接,这个选项不是必需的。另请参阅crl-dir选项。

crl-dir directory

  • (EAP-TLS)使用directory目录扫描具有格式($hash.r0)的CRL文件,检查对端证书的有效性。对于建立EAP-TLS连接,这个选项不是必需的。另请参阅crl选项。

debug

  • 启用连接调试工具。如果指定了该选项,pppd将以可读的形式记录所有发送或接收的控制数据包的内容。报文通过syslog日志记录,带有设施守护进程和级别调试。通过适当地设置/etc/syslog.conf(参见syslog.conf(5)),可以将这些信息定向到文件中。

default-asyncmap

  • 禁用asyncmap协商,强制传输和接收方向的所有控制字符都被转义。

default-mru

  • 关闭MRU[最大接收单元]协商。通过该选项,pppd将在发送和接收方向使用缺省的MRU值1500字节。

deflate nr, nt

  • 请求对端使用Deflate方案压缩自己发送的最大窗口大小为2**nr字节的报文,并同意压缩发送给对端最大窗口大小为2**nt字节的报文。如果未指定nt,则默认为nr给定的值。nrnt可以使用范围为9到15的值;值越大,压缩效果越好,但压缩字典消耗的内核内存也越多。或者,nrnt的值为0将禁用相应方向的压缩。使用nodeflatedeflate 0完全禁用deflate压缩。(注:pppd请求Deflate压缩优先于BSD-Compress,如果对等体可以这样做。)

demand

  • 仅在需要时启动链路,即当数据流量存在时。使用此选项,远程IP地址可以由用户在命令行或选项文件中指定,如果不指定,pppd将使用10.x.x. x文件中的任意地址。x范围。Pppd将对接口进行初始化配置,并使能该接口的IP流量,而无需与对等体建立连接。当流量可用时,pppd将与对等体建立连接,进行协商、验证等。当这完成后,pppd将开始在链路上传递数据包(即IP数据包)。

  • 需求选项意味着持久化选项。如果不希望出现这种行为,可以在demand选项之后使用nopersist选项。idle和holdoff选项与demand选项一起使用也很有用。

domain d

  • 将域名d追加到本地主机名后进行认证。例如,如果gethostname()返回名称porsche,但完全限定的域名是porsche.Quotron.COM,您可以do-main Quotron.COM。Pppd将使用porsche.Quotron.COM这个名称在秘密文件中查找秘密,并在向对等方验证自己身份时将其作为默认名称发送给对等方。这个选项是特权。

dryrun

  • 使用dryrun选项,pppd将打印出所有已设置的选项值,然后在解析命令行和选项文件并检查选项值之后,在启动链接之前退出。选项值以信息级别记录,并打印到标准输出,除非标准输出上的设备是pppd将用于与对等体通信的设备。

dump

  • 使用转储选项,pppd将打印所有已设置的选项值。这个选项类似于dryrun选项,只是pppd会正常进行而不是退出。

enable-session 启用会话

  • 根据需要,通过PAM或wtwp/wtmpx启用会话计费。当PAM启用时,PAM“帐户”和“会话”模块栈确定行为,并为所有PPP身份验证协议启用。当PAM被禁用时,将记录wtmp/wtmpx条目,而不管对等体的名称是否识别本地系统上的有效用户,从而使对等体在最后(1)日志中可见。当使用pppd登录选项时,该功能将自动启用。缺省情况下,关闭会话计费功能。

endpoint <epdisc>

  • 设置多链路协商时本地机器发送给对端终端标识符为<epdisc>;默认是使用系统上第一个以太网接口的MAC地址(如果有的话),否则与主机名对应的IPv4地址(如果有的话,前提是它不在组播或本地分配的IP地址范围内)或localhost地址。端点鉴别器可以是字符串null或形式为type:value,其中type是一个十进制数字或字符串local、IP、MAC、magic或phone中的一个。其中IP类型为IP地址,点分十进制格式;其他类型为字节串,用“:”或“:”分隔。对于MAC类型,该值也可以是以太网或类似网络接口的名称。该选项目前仅在Linux下可用。

eap-interval n

  • 如果给出这个选项,并且pppd用EAP验证对等体(即服务器),pppd将每n秒重新启动EAP验证。对于EAP SRP-SHA1,请参见srp-interval选项,该选项启用轻量级重挑战。

eap-max-rreq n

  • 设置pppd将响应(作为客户端)而不听到EAP成功或失败的EAP请求的最大数量。(默认值是20)。

eap-max-sreq n

  • 设置pppd在尝试身份验证时(作为服务器)发出的EAP请求的最大数量。(默认值是10。)

eap-restart n

  • 当充当服务器(验证器)时,设置EAP请求的重传超时。(默认为3秒。)

eap-timeout n

  • 设置作为客户端(被验证方)时等待对等体发送EAP Request的最大时间。(默认为20秒。)

hide-password 密码隐藏

  • 当记录PAP报文内容时,该选项将导致pppd从日志中排除密码字符串。这是默认值。

holdoff n 拖延

  • 指定在链路终止后重新启动链路之前需要等待的秒数。这个选项只有在使用了持久化或需求选项时才会起作用。如果链路因空闲而终止,则不应用延迟时间。

idle n 闲置

  • 指定当链路空闲n秒时pppd断开连接。当没有数据包(即IP数据包)发送或接收时,链路处于空闲状态。注意:不建议在没有需求选项的情况下将此选项与持久选项一起使用。如果指定了active-filter选项,被指定的活动过滤器拒绝的数据包将被视为链路空闲。

ipcp-accept-local

  • 使用该选项,pppd将接受对等体对我们本地IP地址的想法,即使本地IP地址在选项中指定。

ipcp-accept-remote

  • 通过该选项,pppd将接受对等体对其(远端)IP地址的想法,即使远端IP地址在选项中指定。

ipcp-max-configure n

  • 设置IPCP配置请求的最大传输数为n,默认为10。

ipcp-max-failure n

  • 将开始发送configuration - rejects之前返回的IPCP configuration - naks的最大数量改为n(默认为10)。

ipcp-max-terminate n

  • 设置IPCP终止请求传输的最大数量为n(默认为3)。

ipcp-restart n

  • 设置IPCP重启的时间间隔(即重传超时时间)为n秒(默认为3秒)。

ipparam string

  • 为ip-up、ip-pre-up和ip-down脚本提供额外参数。如果提供了这个选项,提供的字符串将作为这些脚本的第6个参数提供。

ipv6cp-accept-local

  • 通过该选项,pppd将接受对等体对我们本地IPv6接口标识符的想法,即使本地IPv6接口标识符在选项中被指定。

ipv6cp-accept-remote

  • 通过该选项,pppd将接受对等体对其(远端)IPv6接口标识符的想法,即使远端IPv6接口标识符在选项中被指定。

ipv6cp-max-configure n

  • 设置IPv6CP配置请求传输的最大数目为n(默认为10)。

ipv6cp-max-failure n

  • 设置在开始发送configuration - rejects之前返回的IPv6CP configuration - naks的最大数量n(默认10)。

ipv6cp-max-terminate n

  • 设置IPv6CP终止请求传输的最大数量为n(默认为3)。

ipv6cp-restart n

  • 设置IPv6CP重启时间间隔(重传超时时间)为n秒(默认为3)。

ipx

  • 启用IPXCP和IPX协议。这个选项目前只在Linux下支持,并且只有当您的内核配置为包含IPX支持时才支持。

ipx-network n

  • 配置IPXCP配置请求帧中的IPX网络号为十六进制数n(不带前导0x)。没有有效的默认值。如果不指定该选项,则从对端获取网络号。如果对端没有网络号,则不会启动IPX协议。

ipx-node n:m

  • 设置IPX节点号。两个节点编号之间用“:”隔开。第一个数字n为本地节点编号。第二个数字m是对等体的节点编号。每个节点编号为16进制数,最大长度为10位。ipx-network中的节点编号不能重复。没有有效的默认值。如果不指定该选项,则从对等体获取节点号。

ipx-router-name <string>

  • 设置路由器的名称。这是一个字符串,作为信息数据发送给对等体。

ipx-routing n

  • 设置此选项接收的路由协议。可以指定多个ipx-routing实例。'none’选项(0)可以被指定为唯一的ipx-routing实例。NONE取值为0,RIP/SAP取值为2,NLSP取值为4。

ipxcp-accept-local

  • 接受在ipx-node选项中指定的节点号的对等体的NAK。如果指定了节点号,并且该节点号非零,默认值将坚持使用该值。如果包含此选项,则允许对等体覆盖节点号的条目。

ipxcp-accept-network

  • 接受对等体在ipx-network选项中指定的网络号的NAK。如果指定了网络号,并且不为零,则默认坚持使用该值。如果包含此选项,则允许对等体覆盖节点号的条目。

ipxcp-accept-remote

  • 使用配置请求帧中指定的对端网络号。如果为对等体指定了节点号,而没有指定该选项,则对等体将被迫使用您指定的值。

ipxcp-max-configure n

  • 设置系统发送的IPXCP配置请求帧的最大数目为n。缺省值为10。

ipxcp-max-failure n

  • 设置本地系统在拒绝选项之前发送的IPXCP NAK帧的最大数量。缺省值为3。

ipxcp-max-terminate n

  • 设置在本地系统认为没有侦听之前IPXCP终止请求帧的最大数目。缺省值为3。

kdebug n

  • 打开内核级PPP驱动程序的调试代码。参数值取决于特定的内核驱动程序,但通常值为1将启用一般的内核调试消息。(请注意,这些消息通常只对调试内核驱动程序本身有用。)对于Linux 2.2。X内核驱动,位的和:1表示通用调试消息,2表示请求打印接收报文的内容,4表示请求打印发送报文的内容。在大多数系统中,内核打印的消息由syslog(1)记录到/etc/syslog.conf配置文件中。

key keyfile

  • (EAP-TLS)使用文件keyfile作为私钥文件(PEM格式),建立EAP-TLS连接所需的私钥文件。在客户端,此选项与ca和cert选项一起使用。

ktune

  • 使pppd能够适当地更改内核设置。在Linux下,如果使用proxyarp选项,pppd将启用IP转发(即设置/proc/sys/net/ipv4/ip_forward为1),如果本地地址发生变化,则在demand模式下启用动态IP地址选项(即设置/proc/sys/net/ipv4/ip_dynaddr为1)。

lcp-echo-adaptive

  • 如果该选项与LCP -echo-failure选项一起使用,那么pppd将只在自上次发送回送请求以来没有收到来自对等体的流量时发送LCP回送请求帧。

lcp-echo-failure n

  • 如果指定了该选项,如果发送了n个LCP回显请求而没有收到有效的LCP回显应答,pppd将假定对等体已经死亡。如果发生这种情况,pppd将终止连接。使用该选项需要lcp-echo-interval参数的非零值。此选项可用于在没有硬件调制解调器控制线可用的情况下,使pppd在物理连接断开(例如,调制解调器已挂起)后终止。

lcp-echo-interval n

  • 如果指定该选项,pppd将每n秒向对等体发送一次LCP回显请求帧。正常情况下,对等体应该通过发送回显应答来响应回显请求。该选项可以与lcp-echo-failure选项一起使用,以检测对等体是否不再连接。

lcp-max-configure n

  • 配置LCP配置请求传输的最大数量为n(缺省为10)。

lcp-max-failure n

  • 将开始发送configuration - rejects之前返回的LCP configuration - naks的最大数量改为n(默认为10)。

lcp-max-terminate n

  • 设置LCP终止请求传输的最大数量为n(缺省为3)。

lcp-restart n

  • 设置LCP重启的时间间隔(重传超时时间)为n秒(缺省为3)。

linkname name

  • 将链接的逻辑名称设置为name。Pppd将创建一个名为ppp-name的文件。pid在/var/run(或/etc/ppp在某些系统)中包含它的进程ID。这在确定到给定对等体系统的链接由哪个pppd实例负责时非常有用。这是一个特权选项。

local

  • 不要使用调制解调器控制线。有了这个选项,pppd将忽略来自调制解调器的CD(载波检测)信号的状态,并且不会改变DTR(数据终端就绪)信号的状态。这与调制解调器的选项相反。

logfd n

  • 将日志消息发送到文件描述符n. Pppd最多将日志消息发送到一个文件或文件描述符(以及将日志消息发送到syslog),因此该选项和logfile选项是互斥的。缺省情况下,pppd将日志消息发送到标准输出(文件描述符1),除非串口在标准输出上已经打开。

logfile filename

  • 将日志消息附加到文件文件名中(以及将日志消息发送到syslog)。在追加模式下,使用调用pppd的用户的特权打开文件。

login

  • 使用系统密码数据库对对端进行PAP验证,并将用户记录在系统wtmp文件中。注意,对等体必须在/etc/pp /pap-secrets文件中有一个条目,以及允许访问的系统密码数据库。另请参阅启用会话选项。

master_detach

  • 如果multilink被启用,并且这个pppd进程是multilink bundle的主人,并且由这个pppd进程控制的链接终止,这个pppd进程继续运行以维护这个bundle。如果指定了master_detach选项,即使指定了nodetach选项,pppd也会在这种情况下从它的控制终端上分离。

maxconnect n

  • 当网络流量在n秒内可用时终止连接(即在第一个网络控制协议出现后n秒)。

maxfail n

  • 连续n次连接失败后终止。值为0意味着没有限制。缺省值为10。

modem

  • 使用调制解调器控制线。这个选项是默认的。有了这个选项,pppd将在打开串行设备时等待来自调制解调器的CD(载波检测)信号(除非指定了连接脚本),并且在连接终止和执行连接脚本之前,它将短暂地丢弃DTR(数据终端准备)信号。在Ultrix上,这个选项意味着硬件流控制,就像crtscts选项一样。这与本地选项相反。

mp

  • 允许使用PPP多链路;这是“multilink”选项的别名。该选项目前仅在Linux下可用。

mppe-stateful

  • 允许MPPE使用有状态模式。首先尝试无状态模式。默认是不允许有状态模式。

mpshortseq

  • 允许在多链路头部使用短(12位)的序列号,而不是24位的序列号。这个选项仅在Linux下可用,并且只有在启用了multilink时才会起作用(请参阅multilink选项)。

mrru n

  • 设置最大重构接收单元(MRRU)为n。MRRU是多链路捆绑中接收报文的最大尺寸,类似于各链路的MRU。该选项目前仅在Linux下可用,并且只有在启用了multilink时才有效(请参阅multilink选项)。

ms-dns <addr>

  • 如果pppd作为Microsoft Windows客户端的服务器,该选项允许pppd提供一个或两个DNS(域名服务器)地址给客户端。该选项的第一个实例指定主DNS地址;第二个实例(如果给出)指定第二个DNS地址。(此选项在一些较老版本的pppd中以dns-addr的名称出现。)

ms-wins <addr>

  • 如果pppd充当Microsoft Windows或“Samba”客户端的服务器,该选项允许pppd向客户端提供一个或两个WINS (Windows Internet Name Services)服务器地址。该选项的第一个实例指定了主WINS地址;第二个实例(如果给定)指定备用WINS地址。

multilink

  • 启用PPP多链路协议。如果对等体也支持多链路,那么该链路可以成为本地系统和对等体之间绑定的一部分。如果有一个已经存在的bundle, pppd将把这个链接连接到那个bundle,否则pppd将创建一个新的bundle。请参阅下面的MULTILINK部分。该选项目前仅在Linux下可用。

name name

  • 将用于认证的本地系统名称设置为name。这是一个特权选项。有了这个选项,pppd将在寻找用于验证对等体的秘密时,使用秘密文件中以名称作为第二个字段的行。另外,除非使用user选项覆盖,否则在对对等体进行本地系统验证时,name将被用作发送给对等体的名称。(注意pppd不将域名附加到name。)

noaccomp

  • 禁用双向地址/控制压缩(发送和接收)。

need-peer-eap

  • (EAP-TLS)要求对等端验证我们的身份验证凭证。

noauth

  • 不要求对等体验证自己。这个选项是特权。

nobsdcomp

  • 禁用BSD-Compress压缩;pppd不会请求或同意使用BSD-Compress方案压缩数据包。

noccp

  • 关闭CCP (Compression Control Protocol)协商。只有当对等体有bug并且被pppd的CCP协商请求弄糊涂时才需要这个选项。

nocrtscts

  • 在串口上禁用硬件流量控制(即RTS/CTS)。如果没有给出crtscts、nocrtscts、cdtrcts或nocdtrcts选项,串行端口的硬件流控制设置将保持不变。

nocdtrcts

  • 这个选项是nocrtscts的同义词。这些选项中的任何一个都将禁用这两种形式的硬件流控制。

nodefaultroute

  • 关闭默认troute选项。如果系统管理员想要阻止用户在pppd中添加默认路由,可以把这个选项放在/etc/pp /options文件中。

noreplacedefaultroute

  • 禁用replacedefaultroute选项。这允许禁用先前在配置中设置的replacedefaultroute选项。

nodefaultroute6

  • 关闭defaultroute6选项。如果系统管理员想要阻止用户在pppd中添加默认路由,可以把这个选项放在/etc/pp /options文件中。

nodeflate

  • 禁用压缩压缩;pppd不会请求或同意使用Deflate方案压缩数据包。

nodetach

  • 不要脱离控制端子。如果没有此选项,如果指定了除标准输入终端以外的串行设备,pppd将分叉成为后台进程。

noendpoint

  • 禁止pppd向对等体发送端点标识符或从对等体接受端点标识符(参见下面的MULTILINK部分)。只有当对等体有错误时才需要此选项。

noip

  • 关闭IPCP协商和IP通信功能。只有当对等体有bug并且被pppd的IPCP协商请求弄糊涂时才需要这个选项。

noipv6

  • 关闭IPv6CP协商和IPv6通信。只有当对等体有bug并且被pppd的IPv6CP协商请求弄糊涂时才需要这个选项。

noipdefault

  • 当没有指定本地IP地址时禁用默认行为,这是为了从主机名确定(如果可能)本地IP地址。使用此选项,对等体将必须在IPCP协商期间提供本地IP地址(除非在命令行或选项文件中明确指定)。

noipx

  • 关闭IPXCP和IPX协议。只有当对等体有bug并且被pppd的IPXCP协商请求弄糊涂时才需要这个选项。

noktune

  • 与ktune选项相反;禁用PPPD改变系统设置。

nolock

  • 与锁选项相反;指定pppd不应该为串行设备创建uucp风格的锁文件。这个选项是特权。

nolog

  • 不要将日志消息发送到文件或文件描述符。该选项取消logfd和logfile选项。

nomagic

  • 禁用魔术数协商功能。使用此选项,pppd无法检测回环线路。只有当对等体有错误时才需要此选项。

nomp

  • 禁用PPP多链路功能。该选项目前仅在Linux下可用。

nomppe

  • 禁用MPPE(微软点对点加密)。这是默认值。

nomppe-40

  • 使用MPPE禁用40位加密。

nomppe - 128

  • 使用MPPE关闭128位加密功能。

nomppe-stateful

  • 关闭MPPE状态模式。这是默认值。

nompshortseq

  • 在PPP多链路协议中禁用短(12位)序列号,强制使用24位序列号。该选项目前仅在Linux下可用,并且只有在启用多链接时才有效。

nomultilink

  • 禁用PPP多链路功能。该选项目前仅在Linux下可用。

nopcomp

  • 关闭接收方向和发送方向的协议字段压缩协商。

nopersist

  • 连接建立并终止后退出。这是默认值,除非指定了persist或demand选项。

nopredictor1

  • 不接受或同意预测器-1压缩。

noproxyarp

  • 禁用proxyarp选项。如果系统管理员不想用户创建带有pppd的代理ARP表项,可以在/etc/ppp/options文件中设置该选项。

noremoteip

  • 允许pppd在没有对端IP地址的情况下运行。此选项仅在Linux下可用。正常情况下,pppd会请求对等体的IP地址,如果对等体没有提供,pppd会使用10.x.x. x文件中的任意地址。x子网。通过该选项,如果对等体不提供自己的IP地址,则pppd不会向对等体请求IP地址,也不会设置ppp接口的目的地址。在这种情况下,ppp接口可以用来创建设备路由,但不能对IP流量直接寻址对等体本身。

notty

  • 通常情况下,pppd需要终端设备。有了这个选项,pppd将为自己分配一个伪tty主/从对,并使用从设备作为终端设备。Pppd将创建一个子进程作为“字符分流”,在伪tty主机及其标准输入和输出之间传输字符。因此,pppd将在其标准输出上传输字符,并在其标准输入上接收字符,即使它们不是终端设备。该选项增加了通过ppp接口传输数据的延迟和CPU开销,因为所有发送和接收的字符都必须通过字符分流过程。如果使用此选项,可能不会给出显式的设备名称。

novj

  • 在发送和接收方向禁用Van Jacobson式TCP/IP报头压缩。

novjccomp

  • 关闭Van Jacobson式TCP/IP报头压缩中的连接id压缩选项。有了这个选项,pppd将不会从Van Jacobson压缩的TCP/IP报头中忽略连接id字节,也不会要求对等端这样做。

papcrypt

  • 表示/etc/pp /pap-secrets文件中所有用于检查对端身份的秘密信息都被加密,因此pppd不应该接受与/etc/pp /pap-secrets文件中相同的密码。

pap-max-authreq n

  • 配置PAP验证请求传输的最大次数为n(缺省为10)。

pap-restart n

  • 配置PAP重启的时间间隔(重传超时时间)为n秒(缺省为3)。

pap-timeout n

  • 配置pppd等待对等体用PAP验证自己的最大时间为n秒(0表示无限制)。

pass-filter filter-expression

  • 指定要应用于正在发送或接收的数据包的包过滤器,以确定应该允许通过哪些包。被过滤器拒绝的报文将被静默丢弃。此选项可用于防止特定的网络守护进程(如路由)耗尽链路带宽,或提供非常基本的防火墙能力。filter-expression语法与tcpdump(1)中描述的一样,只是不允许使用不适合PPP链路的限定符,如ether和arp。通常,过滤器表达式应该用单引号括起来,以防止shell解释表达式中的空白。请注意,可以使用入站和出站限定符对入站和出站数据包应用不同的约束。该选项目前仅在Linux下可用,并且要求将内核配置为包含PPP过滤支持(CONFIG_PPP_FILTER)。

password password-string

  • 指定对对等体进行验证时使用的密码。不鼓励使用此选项,因为密码可能对系统上的其他用户可见(例如,使用ps(1))。

persist

  • 在连接被终止后不要退出;尝试重新打开连接。maxfail选项仍然对持久连接有影响。

plugin filename

  • 将共享库对象文件filename加载为插件。这是一个特权选项。如果文件名不包含斜杠(/),pppd将在/usr/lib/pppd/version目录中查找插件,其中version是pppd的版本号(例如,2.4.2)。

predictor1

  • 请求对等端使用Predictor-1压缩来压缩它发送的帧,并且如果请求,同意用Predictor-1压缩传输的帧。除非内核驱动程序支持Predictor-1压缩,否则这个选项没有作用。

privgroup group-name

  • 允许组group-name的成员使用特权选项。这是一个特权选项。使用这个选项需要谨慎,因为不能保证group-name的成员不能使用pppd成为根用户。可以认为这相当于将group-name的成员放在kmem或磁盘组中。

proxyarp

  • 在本系统的ARP[地址解析协议]表中添加一条表项,其中包含本系统的邻居IP地址和本系统的以太网地址。这将产生使对等体在本地以太网上对其他系统显示的效果。

pty script

  • 指定命令脚本用于通信,而不是特定的终端设备。Pppd将为自己分配一个伪tty主/从对,并使用从设备作为终端设备。该脚本将在子进程中运行,pseudo-tty master作为其标准输入和输出。如果使用此选项,可能不会给出显式的设备名称。(注意:如果将record选项与pty选项结合使用,子进程将在其标准输入和输出上有管道。)

receive-all

  • 使用此选项,pppd将接受来自对等体的所有控制字符,包括那些在接收asyncmap中标记的字符。如果没有这个选项,pppd将丢弃RFC1662中指定的那些字符。只有当对等体有错误时才需要此选项。

record filename

  • 指定pppd应该记录所有发送和接收到名为filename的文件的字符。该文件使用用户的user- id和权限以追加模式打开。这个选项是使用伪tty和在伪tty和真实串行设备之间传输字符的进程来实现的,因此它将增加通过ppp接口传输数据的延迟和CPU开销。字符以带时间戳的标记格式存储,可以使用pppdump(8)程序以可读的形式显示。

remotename name

  • 将用于身份验证的远程系统的假定名称设置为name。

remotenumber number

  • 设置远程系统假定的身份验证电话号码为number。

refuse-chap

  • 使用该选项,pppd将不同意使用CHAP向对等体验证自己。

refuse-mschap

  • 使用该选项,pppd将不同意使用MS-CHAP向对等体验证自己。

refuse-mschap-v2

  • 有了这个选项,pppd将不会同意使用MS-CHAPv2向对等体验证自己。

refuse-eap

  • 有了这个选项,pppd将不同意使用EAP向对等体验证自己。

refuse-pap

  • 使用该选项,pppd将不同意使用PAP向对等体验证自己。

require-chap

  • 要求对端使用CHAP (Challenge Handshake Authentication Protocol)认证方式对自身进行认证。

require-mppe

  • 需要使用MPPE(微软点对点加密)。此选项禁用所有其他压缩类型。该选项同时支持40位和128位加密。为了成功地实现MPPE,您必须使用MS-CHAP或MS-CHAPv2进行身份验证。这个选项目前只在Linux下支持,并且只有在内核配置为包含MPPE支持的情况下才支持。

require-mppe-40

  • 要求使用MPPE,具有40位加密。

require-mppe - 128

  • 要求使用MPPE,具有128位加密。

require-mschap

  • 要求对端使用MS-CHAP [Microsoft Challenge Handshake Authentication Protocol]认证方式对自身进行认证。

require-mschap-v2

  • 要求对等体使用MS-CHAPv2[微软挑战握手认证协议,版本2]认证来验证自己。

require-eap

  • 要求对等体使用EAP[可扩展认证协议]认证对自身进行认证。

require-pap

  • 要求对端使用PAP (Password Authentication Protocol)认证方式验证自己。

set name=value

  • 为pppd调用的脚本设置一个环境变量。当由特权源设置时,由名称指定的变量不能由非特权源中包含的选项更改。另请参阅SCRIPTS中描述的unset选项和环境。

show-password

  • 当记录PAP报文内容时,该选项会导致pppd在日志消息中显示密码字符串。

silent

  • 通过该选项,pppd将不会发送LCP报文来发起连接,直到从对等体收到一个有效的LCP报文(对于古老版本的pppd的被动选项)。

srp-interval n

  • 如果指定了该参数,pppd使用EAP SRP- sha1验证对等体(即服务器),那么pppd将每隔n秒使用可选的轻量级SRP再挑战机制。此选项比eap-interval重新身份验证更快,因为它使用基于散列的机制,并且不派生新的会话密钥。

srp-pn-secret string

  • 为服务器设置长期的假名生成秘密。这个值是可选的,如果设置,只需要在服务器(验证器)端知道,并且每个服务器(或相同服务器的轮询)应该是不同的。它与当前日期一起使用来生成一个密钥,用于加密和解密假名中包含的客户机身份。

srp-use-pseudonym

  • 当作为EAP SRP-SHA1客户机运行时,尝试使用存储在~/中的假名。ppp_假名首先作为身份,并将对等端在身份验证过程中提供的任何假名保存在此文件中。

stop-bits n

  • 设置串口的停止位数。取值范围为1 ~ 2。缺省值为1。

sync

  • 使用同步HDLC串行编码代替异步。pppd使用此选项的设备必须具有同步支持。目前支持Linux和FreeBSD 2.2.8及更高版本下的Microgate SyncLink适配器。

unit num

  • 为输出连接设置ppp单元号(用于ppp0或ppp1等接口名称)。如果该单元已经在使用中,则将使用动态分配的号码。

ifname string

  • 配置出方向连接的ppp接口名称。如果接口名称已经被使用,或者由于任何其他原因不能使用该名称,pppd将终止。

unset name

  • 从pppd调用的脚本的环境变量中删除一个变量。当由特权源指定时,变量名不能由非特权源中包含的选项设置。另请参阅脚本中描述的set选项和环境。

updetach

  • 使用此选项,一旦成功建立ppp连接,pppd将从控制终端分离(直到出现第一个网络控制协议,通常是IP控制协议)。

up_sdnotify

  • 使用此选项在类型为notify (up_sdnotify表示nodeach)的systemd服务单元中运行pppd。当up_sdnotify启用时,一旦pppd成功建立了ppp连接(到第一个网络控制协议,通常是IP控制协议,已经出现的点),pppd将通知systemd。此选项仅在pppd在系统支持下编译时可用。

usehostname

  • 强制使用主机名(如果给出,附加域名)作为本地系统的名称进行身份验证(覆盖名称选项)。这个选项通常不需要,因为name选项是有特权的。

usepeerdns

  • 向对端请求最多2个DNS服务器地址。由对等体提供的地址(如果有)被传递到环境变量DNS1和DNS2中的/etc/ppp/ip-up脚本,环境变量USEPEERDNS将被设置为1。此外,pppd将创建一个/etc/ppp/resolv.conf文件,其中包含一个或两个nameserver行,其中包含对等端提供的地址(es)。

user name

  • 设置本地系统对对等体进行认证时使用的名称。

vj-max-slots n

  • 设置Van Jacobson TCP/IP报头压缩解压缩代码使用的连接槽数为n, n必须在2 ~ 16之间(包括16)。

welcome script

  • 连接脚本(如果有)完成后,在发起PPP协商前执行脚本指定的可执行命令或shell命令。来自特权源的此选项的值不能被非特权用户重写。

xonxoff

  • 使用软件流量控制(即XON/XOFF)来控制串口上的数据流。

PPPOE OPTIONS

在以太网上建立PPP链路(PPPoE)需要加载pppd的插件PPPoE。然后指定选项nic-interface而不是调制解调器选项ttyname和speed。

公认的pppd的PPPoE选项有:

nic-interface

  • 使用以太网设备接口与对端通信。例如,在eth0接口上通过指定ppp选项nic-eth0建立PPPoE链路。前缀nic-如果接口名是明确的并且看起来不像任何其他pppd选项,则可以避免使用此选项。

pppoe-service name

  • 连接到指定的PPPoE服务名称。为了向后兼容,还支持rp_pppoe_service选项名。

pppoe-ac name

  • 连接到指定的PPPoE访问集中器名称。为了向后兼容,也支持rp_pppoe_ac选项名。

pppoe-sess sessid:macaddr

  • 附加到现有的PPPoE会话。为了向后兼容,还支持rp_pppoe_sess选项名。

pppoe-verbose n

  • 详细说明所发现的访问集中器。为了向后兼容,还支持rp_pppoe_verbose选项名称。

pppoe-mac macaddr

  • 连接指定的MAC地址。

pppoe-host-uniq string

  • 将PPPoE Host-Uniq标记设置为提供的十六进制字符串。缺省情况下,PPPoE Host-Uniq标记为PPPoE进程的PID。为了向后兼容,可以不指定pppoe- prefix。

pppoe-padi-timeout n

  • 发现报文初始超时时间(缺省为5秒)。

pppoe-padi-attempts n

  • 发现次数(默认为3)。

OPTION FILES 选项文件

  • 选项可以从文件中获取,也可以从命令行中获取。Pppd从文件/etc/pp /options, ~/中读取选项。ppprc和/etc/ppp/options.Ttyname(按顺序),然后处理命令行上的选项。(实际上,会扫描命令行选项,以便在选项之前找到终端名称。读取Ttyname文件。)在形成选项的名称。Ttyname文件中,初始的/dev/将从终端名称中删除,剩余的/字符将替换为点。

  • 选项文件被解析为一系列由空格分隔的单词。通过将单词括在双引号中("),可以在单词中包含空白。反斜杠()引用以下字符。注释以散列(#)开始,注释会一直持续到行尾。在选项文件中使用文件或调用选项没有限制。


ROUTING 路由

  • 当IPCP协商成功后,pppd将ppp接口的本地IP地址和远端IP地址通知内核。这足以创建到链路远端的主机路由,它将使对等体交换IP数据包。与其他机器通信通常需要进一步修改路由表和/或ARP(地址解析协议)表。在大多数情况下,defaultroute和/或proxyarp选项就足够了,但在某些情况下需要进一步的干预。/etc/ppp/ip-up脚本可以用于此。
  • 有时,我们希望通过远程主机添加一个默认路由,例如,对于一台机器,它与Internet的唯一连接是通过ppp接口。缺省路由选项使pppd在IPCP启动时创建一条缺省路由,在链路终止时删除该路由。
  • 在某些情况下,使用代理ARP是可取的,例如在连接到局域网的服务器机器上,以便允许其他主机与远程主机通信。proxyarp选项导致pppd在与远程主机相同的子网中寻找一个网络接口(支持广播和ARP的接口,它是up的,不是点对点或环回接口)。如果找到,pppd创建一个永久的、发布的ARP表项,其中包含远端主机的IP地址和找到的网络接口的硬件地址。
  • 当使用需求选项时,当IPCP启动时,接口IP地址已经设置好。如果ppp pd协商出的地址与配置接口时的地址不一致(例如对等体是ISP,采用动态分配IP地址的方式),则ppp pd必须将接口的IP地址修改为协商出的地址。这可能会破坏现有的连接,并且不建议对进行动态IP地址分配的对等体使用需求拨号。

MULTILINK multilink多链路

  • Multilink PPP提供了将一对机器之间的两条或多条PPP链路合并成一个“bundle”的能力,该“bundle”看起来像一个单独的虚拟PPP链路,具有单独链路的组合带宽。目前只支持Linux下的多链路PPP协议。
  • Pppd使用对等体的端点识别器和验证过的身份(如果它对自己进行了验证)检测到它控制的链路与另一条链路连接在同一对等体上。端点鉴别器是一个对每个对等点来说都是唯一的数据块。可以使用几种类型的数据,包括本地分配的字节串、IP地址、MAC地址、随机字节串或E-164电话号码。pppd发送给对等体的端点标识符可以使用端点选项设置。
  • 在某些情况下,对等端可能不发送端点标识符或非唯一值。bundle选项添加了一个额外的字符串,当匹配连接到一个bundle中的链接时,该字符串被添加到对等的端点标识符和身份验证标识中。bundle选项还可以用于允许在本地系统和对等系统之间建立多个bundle。Pppd在/var/run/pppd2中使用TDB数据库TDB匹配链接。
  • 假设multilink是启用的,并且对等体愿意协商multilink,那么当pppd被调用来启动到对等体的第一个链路时,它将检测到没有其他链路连接到对等体,并创建一个新的bundle,即另一个ppp网络接口单元。当调用另一个pppd来打开另一个到对等体的链接时,它将检测现有的捆绑包并连接到它的链接。
  • 如果第一个链接终止(例如,由于挂起或接收到的LCP终止请求),bundle不会被销毁,除非bundle中已经没有其他链接了。第一个pppd不是退出,而是在它的链接终止后继续运行,直到bundle中的所有链接都终止。如果第一个pppd接收到一个SIGTERM或SIGINT信号,它将销毁这个bundle,并为bundle中的每个链接发送一个SIGHUP给pppd进程。如果第一个pppd接收到SIGHUP信号,它将终止它的链接,但不会终止bundle。

注意:多链路目前不支持请求模式。


SECURITY security安全

  • pppd为系统管理员提供了充分的访问控制,可以向合法用户提供对服务器机器的PPP访问,而不必担心会危及服务器或其所在网络的安全。这种控制是通过对对等体可以使用哪些IP地址的限制来提供的,基于其已验证的身份(如果有的话),以及通过对非特权用户可以使用哪些选项的限制来提供的。pppd的一些选项是特权的,特别是那些允许潜在的不安全配置;这些选项只在系统管理员控制下的文件中被接受,或者PPPD是由root运行的。

  • pppd的缺省行为是,只有在系统中没有到指定IP地址的路由时,才允许未经验证的对等体使用该IP地址。例如,一个系统与更广泛的互联网有一个永久连接,通常会有一个默认路由,因此所有的对等点将不得不验证自己,以建立连接。在这样的系统中,auth选项是默认的。另一方面,当PPP链路是唯一连接到互联网的系统通常不会有缺省路由,因此对端将能够使用几乎任何IP地址,而无需验证自己。

  • 如上所述,一些安全敏感选项是有特权的,这意味着运行setuid-root pppd的普通非特权用户可能不会使用它们,无论是在命令行中,在用户的~/中。PPPRC文件,或在选项文件中使用file选项读取。特权选项可以在/etc/pp /options文件中使用,也可以在使用呼叫选项读取的选项文件中使用。如果pppd是由root用户运行的,特权选项可以不受限制地使用。

  • 当打开设备时,pppd使用调用用户的用户ID或根UID(即0),这取决于设备名是由用户还是系统管理员指定的。如果设备名来自特权源,即/etc/ppp/options或使用调用选项读取的选项文件,pppd在打开设备时使用完全根权限。因此,通过在/etc/ppp/peers下创建适当的文件,系统管理员可以允许用户通过他们通常没有访问权限的设备建立ppp连接。否则,pppd在打开设备时使用调用用户的真实UID。


EXAMPLES examples例子

下面的例子假设/etc/ppp/options文件中包含了 auth 选项(就像在ppp分发文件的默认/etc/ppp/options文件中一样)

pppd最常见的用法可能是向ISP拨号。这可以通过以下命令完成

pppd  call  isp

其中/etc/ppp/ peer/ isp文件是由系统管理员设置的,包含如下内容:

ttyS0 19200 crtscts
connect '/usr/sbin/chat -v -f /etc/ppp/chat-isp'
noauth

在本例中,我们使用聊天来拨号ISP的调制解调器,并完成所需的任何登录序列。/etc/ppp/chat-isp文件中包含

聊天脚本(chat);例如,它可以包含如下内容:

ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
ABORT "Username/Password Incorrect"
"" "at"
OK "at&d0&c1"
OK "atdt2468135"
"name:" "^Umyuserid"
"word:" "\qmypassword"
"ispts" "\q^Uppp"
"~-^Uppp-~"  

有关聊天脚本的详细信息,请参阅聊天(8)手册页。

Pppd也可用于为用户提供拨号式ppp服务。如果用户已经有登录帐户,设置ppp服务最简单的方法是让用户登录到他们的帐户,并使用如下命令运行pppd(安装setuidroot)

pppd proxyarp

为了允许用户使用PPP功能,你需要为该用户的机器分配一个IP地址,并在/etc/ppp/pap-secrets、/etc/ppp/chap-secrets或/etc/ppp/srp-secrets(这取决于用户机器上的PPP实现支持哪种验证方法)中创建一个条目,以便用户的机器能够验证自己。例如,如果Joe有一台名为“joespc”的机器,它被允许拨号到名为“服务器”的机器,并使用joespc.my.net的IP地址,你可以在/etc/pp /pap-secrets或/etc/pp /chap-secrets中添加如下条目:

joespc    server    "joe's secret" joespc.my.net

(参见SRP-SHA1使用时生成服务器条目的方法参见srp-entry(8))。或者,您可以创建一个名为的用户名"ppp"(打个比方),登录shell为PPPD,主目录为/etc/ppp当pppd以这种方式运行时要使用的选项可以放在/etc/ppp/.ppprc中

如果您的串行连接比一段导线更复杂,您可能需要安排一些控制字符进行转义。特别是,使用asyncmap a0000转义XON (Q)和XOFF (S)通常很有用。如果路径包含telnet,您可能也应该转义^](asyncmap 200a0000)。如果路径包含一个rlogin,你将需要在运行rlogin客户机的末尾使用escape ff选项,因为许多rlogin实现不是透明的;它们将从流中删除序列[0xff, 0xff, 0x73, 0x73,后面跟着任何8字节]。


DIAGNOSTICS diagnostics诊断

  • 使用工具LOG_DAEMON将消息发送到syslog守护进程。(这可以通过使用定义为所需功能的宏LOG_PPP重新编译pppd来重写。)有关syslog守护进程将在何处写入消息的详细信息,请参阅syslog(8)文档。在大多数系统中,syslog守护进程使用/etc/syslog.conf文件指定syslog消息的目标。您可能需要编辑该文件以适应需要。

  • 调试选项将记录所有发送或接收的控制报文的内容,即所有LCP、PAP、CHAP、EAP或IPCP报文。如果PPP协商不成功或验证失败,这将非常有用。如果在编译时启用调试,则调试选项还会导致记录其他调试消息。

  • 通过向pppd进程发送SIGUSR1信号,也可以打开或关闭调试开关。这个信号就像一个开关。


EXIT STATUS 退出状态

**pppd的退出状态被设置为是否检测到任何错误,或者链路被终止的原因。**使用的值是:

  • 0 Pppd已经分离,或者连接建立成功,并在对等体的请求下终止。

  • 1 某种类型的致命错误立即发生,例如一个重要的系统调用失败,或虚拟内存耗尽。

  • 2 在处理给定选项时检测到错误,例如使用两个互斥选项。

  • 3 Pppd不是setuid-root,调用用户不是root。

  • 4 内核不支持PPP,如不包含PPP内核驱动、无法加载等。

  • 5 Pppd终止,因为它被发送了一个SIGINT, SIGTERM或SIGHUP信号。

  • 6 串口无法锁定。

  • 7 串口无法打开。

  • 8 连接脚本失败(返回一个非零退出状态)。

  • 9 不能运行指定为pty选项参数的命令。

  • 10 PPP协商失败,即没有达到至少一个网络协议(如IP)正在运行的点。

  • 11 对端系统认证失败(或拒绝)。

  • 12 链路建立成功,由于空闲而断开。

  • 13 连接建立成功,连接超时终止。

  • 14 正在协商回拨,很快就会有来电。

  • 15 由于对端不响应响应请求,链路终止。

  • 16 modem挂起,链路终止。

  • 17 检测到串行环回,PPP协商失败。

  • 18 初始化脚本执行失败,返回非零退出状态。

  • 19 我们没能向同伴证明自己。


SCRIPTS scripts脚本

Pppd在其处理的各个阶段调用脚本,这些脚本可用于执行特定于站点的辅助处理。这些脚本通常是shell脚本,但也可以是可执行的代码文件。Pppd不等待脚本完成(ip-pre-up脚本除外)。这些脚本以root身份执行(实际有效的用户id设置为0),因此它们可以执行更新路由表或运行特权守护进程等操作。请注意,这些脚本的内容不要危及系统的安全性。Pppd运行脚本时,将标准输入、输出和错误重定向到/dev/null,环境为空,除了一些提供有关链接信息的环境变量。


pppd设置的环境变量如下:

DEVICE 设备

正在使用的串行tty设备的名称。

IFNAME

正在使用的网络接口的名称。

IPLOCAL

链路本端IP地址。这只在IPCP启动时设置。

IPREMOTE

链路对端IP地址。这只在IPCP启动时设置。

PEERNAME

被验证的对等体名称。只有当对等体对自己进行身份验证时才设置此选项。

SPEED 速度

tty设备的波特率。

ORIG_UID

调用pppd的用户的真实用户id。

PPPLOGNAME

调用pppd的真实用户id的用户名。这是固定的。


对于ip-down和auth-down脚本,pppd还设置了以下变量,为连接提供统计信息:

CONNECT_TIME

从PPP协商开始到连接终止的秒数。

BYTES_SENT

在连接期间发送的字节数(在串口级别)。

BYTS_RCVD

在连接期间接收的字节数(在串口级别)。

LINKNAME 链接名

  • 链接的逻辑名称,用linkname选项设置。

CALL_FILE

  • 看涨期权的值。

DNS1

  • 如果对等体提供了DNS服务器地址,该变量被设置为提供的第一个DNS服务器地址(无论是否提供了usepeerdns选项)。

DNS2

  • 如果对等体提供了DNS服务器地址,该变量被设置为提供的第二个DNS服务器地址(无论是否使用usepeerdns

选择了)。


Pppd调用以下脚本(如果它们存在的话)。如果它们不存在,那就不是错误。

/etc/ppp/auth-up

  • 远程系统成功验证自身身份后执行的程序或脚本。它是通过参数执行的

interface-name peer-name user-name tty-device speed

注意:如果对等端不验证自己,例如使用noauth选项时,就不会执行此脚本。

/etc/ppp/auth-down

  • 链接断开时执行的程序或脚本,如果之前执行了/etc/ppp/auth-up。执行方式与/etc/ppp/auth-up.相同

/etc/ppp/ip-pre-up

  • 在ppp网络接口启动之前执行的程序或脚本。它使用与ipup脚本相同的参数执行(如下)。此时接口已经存在,并且已经分配了IP地址,但仍然处于down状态。这可以用来在任何IP流量通过该接口之前添加防火墙规则。Pppd将在启动接口之前等待这个脚本完成,所以这个脚本应该可以快速运行。

/etc/ppp/ip-up

  • 当链路可用于发送和接收IP数据包时执行的一种程序或脚本(即IPCP启动)。它是通过参数执行的

interface-name tty-device speed local-IP-address remote-IP-address ipparam

/etc/ppp/ip-down

  • 当链路不再可用于发送和接收IP数据包时执行的一种程序或脚本。该脚本可用于消除/etc/ppp/ip-up和/etc/ppp/ip-pre-up脚本的影响。调用它的方式和参数与ipup脚本相同。

/etc/ppp/ipv6-up

  • 类似于/etc/ppp/ip-up,只不过它是在链路可用于发送和接收IPv6报文时执行的。它是通过参数执行的

/etc/ppp/ipv6-down

  • 类似于/etc/ppp/ip-down,但在链路上不能再传输IPv6报文时执行。它使用与ipv6-up脚本相同的参数执行。

/etc/ppp/ipx-up

  • 当链路可用于发送和接收IPX包时执行的一种程序或脚本(即IPXCP启动)。它是通过参数执行的
<u>interface-name  

tty-device  

speed   

network-number   

local-IPX-node-address   

remote-IPX-node-address   

local-IPX-routing-protocol   

remote-IPX-routing-protocol 

local-IPX-router-name 

remote-IPX-router-name 

ipparam 

pppd-pid

local-IPX-routing-protocolremote-IPX-routing-protocol 字段可以是如下其中之一:

NONE						表示没有路由协议

RIP							表示采用RIP/SAP协议

NLSP						表示使用Novell NLSP

RIP NLSP					表示同时使用RIP/SAP和NLSP

/etc/ppp/ipx-down

  • 当链路不再可用于发送和接收IPX包时执行的一种程序或脚本。这个脚本可以用来消除/etc/ppp/ipx-up脚本的影响。调用它的方式和参数与ipx-up脚本相同。

FILES 文件

/var/run/pppn.pid (BSD或Linux), /etc/pp /pppn.pid(others)

  • ppp接口单位n上pppd进程号。

/var/run/ppp-name.pid (BSD或Linux),

  • /etc/ppp/ppp-name.pid (others) pppd进程id,表示逻辑链路名(参见linkname选项)。

/var/run/pppd2.tdb

  • 包含pppd进程、接口和链路信息的数据库,用于在多链路操作中将链路与捆绑包进行匹配。外部程序可以检查pppd实例的运行情况、使用的接口和设备、IP地址分配等信息。/etc/ppp/pap-secrets PAP验证的用户名、密码和IP地址。这个文件应该由root用户拥有,其他用户不能读或写。如果不是这样,Pppd将记录一个警告。

/etc/ppp/chap-secrets

  • CHAP/MS-CHAP/MS-CHAPv2认证的名称、机密信息和IP地址。对于/etc/ppp/pap-secrets,这个文件应该为root所有,其他用户不能读或写。如果不是这样,Pppd将记录一个警告。

/etc/ppp/srp-secrets

  • EAP认证的名称、机密信息和IP地址。对于/etc/ppp/pap-secrets,这个文件应该为root所有,其他用户不能读或写。如果不是这样,Pppd将记录一个警告。

~ / .ppp_pseudonym

  • 保存的客户端SRP-SHA1假名。请参阅srp-use-假名选项了解详细信息。

/etc/ppp/options

  • pppd的系统默认选项,在用户默认选项或命令行选项之前读取。

~ / .ppprc

  • 用户默认选项,在/etc/pp /options.ttyname之前读取。

/etc/ppp/options.ttyname

  • 系统默认的串口选项被使用,读~/.ppprc后。在形成这个文件名的ttyname部分时,从端口名称中去掉一个初始的/dev/(如果存在),其余部分中的斜杠都转换为点。

/etc/ppp/peers

  • 一个包含选项文件的目录,其中可能包含特权选项,即使pppd是由root以外的用户调用的。系统管理员可以在此目录中创建选项文件,允许非特权用户在不需要对等体身份验证的情况下拨出,但只允许某些受信任的对等体。

NOTES 信号相关

通过从下面的列表中发送一个信号,可以对正在运行的pppd进程进行一定程度的控制。

SIGINT,SIGTERM

  • 这些信号导致pppd终止链路(通过关闭LCP),恢复串行设备设置,并退出。如果一个连接器或隔离进程正在运行,pppd将向它的进程组发送相同的信号,以终止连接器或隔离进程。

SIGHUP

  • 该信号导致pppd终止链路,恢复串行设备设置,并关闭串行设备。如果指定了persist或demand选项,pppd将尝试重新打开串行设备并启动另一个连接(在延迟时间之后)。否则pppd将退出。如果在暂停期间接收到这个信号,它会导致pppd立即结束暂停期。如果一个连接器或隔离进程正在运行,pppd将向它的进程组发送相同的信号。

SIGUSR1

  • 这个信号切换调试选项的状态。

SIGUSR2

  • 这个信号导致pppd重新协商压缩。在由于致命的解压错误而禁用压缩后,这可以用于重新启用压缩。(致命的解压错误通常表明一个或其他实现中的错误。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pppd程序的参数——man手册翻译 的相关文章

  • 使用 Grep 查找两个短语之间的文本块(包括短语)

    是否可以使用 grep 来高亮所有以以下内容开头的文本 mutablePath CGPathCreateMutable 并以以下内容结尾 CGPathAddPath skinMutablePath NULL mutablePath 这两个短
  • Fortran gfortran linux 中的“分段错误(核心转储)”错误

    我正在创建一个程序 该程序将分析目录中的文件 fits 然后它将在另一个目录中创建另一个文件 txt 它只是一个转换器 当我尝试执行该程序 编译正常 时 它给了我一条错误消息 程序收到信号 SIGSEGV 分段错误 无效的内存引用 此错误的
  • NUMA 在虚拟内存中是如何表示的?

    有许多资源 https en wikipedia org wiki Non uniform memory access从硬件角度描述NUMA的架构性能影响 http practical tech com infrastructure num
  • 高效的内存屏障

    我有一个多线程应用程序 其中每个线程都有一个整数类型的变量 这些变量在程序执行期间递增 在代码中的某些点 线程将其计数变量与其他线程的计数变量进行比较 现在 我们知道在多核上运行的线程可能会无序执行 一个线程可能无法读取其他线程的预期计数器
  • 在 Mac OSX 上交叉编译 x86_64-unknown-linux-gnu 失败

    我尝试将我的 Rust 项目之一编译到 x86 64 unknown linux gnu 目标 cargo build target x86 64 unknown linux gnu Compiling deployer v0 1 0 fi
  • 捕获实时流量时如何开启纳秒精度?

    如何告诉 libpcap v1 6 2 将纳秒值存储在struct pcap pkthdr ts tv usec 而不是微秒值 捕获实时数据包时 Note This question is similar to How to enable
  • Capistrano 3 部署无法连接到 GitHub - 权限被拒绝(公钥)

    我使用 Capistrano v3 和 capistrano symfony gem 设置了以下部署脚本 我正在使用 Ubuntu 14 4 部署到 AWS EC2 实例 我正在连接从 AWS 下载的 pem 文件 我的deploy rb中
  • Linux 上的基准测试程序

    对于一项任务 我们需要使用不同的优化和参数来对我们的实现进行基准测试 有没有一种可行的方法可以在Linux命令行 我知道时间 上使用不同的参数对小程序进行基准测试 从而为我提供CSV或类似内容的时间数据 输出可能类似于 Implementa
  • 如何在 GNU/Linux 上设置 Subversion (SVN) 服务器 - Ubuntu [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一台运行 Ubuntu 的笔记本电脑 我想将其用作 Subversion 服务器 既让我自己在本地承诺 也让其他人远程承诺 要使其
  • 后台分叉无法正常工作[重复]

    这个问题在这里已经有答案了 我运行这个程序 在前景和背景中 int main int pid printf App Start pid d n getpid while 1 pid fork if pid 0 printf Child n
  • Fedora dnf 更新不起作用?

    当我尝试使用 update 命令更新 Fedora 22 时 sudo dnf update 我收到以下错误 错误 无法同步存储库 更新 的缓存 无法准备内部镜像列表 Curl 错误 6 无法解析主机名 无法解析主机 mirrors fed
  • 捕获数据包后会发生什么?

    我一直在阅读关于网卡捕获数据包后会发生什么的内容 我读得越多 我就越困惑 首先 我读过传统上 在网卡捕获数据包后 它会被复制到内核空间中的一个内存块 然后复制到用户空间 供随后处理数据包数据的任何应用程序使用 然后我读到了 DMA 其中 N
  • 使用 inotify 的正确方法是什么?

    我想使用inotifyLinux 上的机制 我希望我的应用程序知道文件何时aaa被改变了 您能给我提供一个如何做到这一点的示例吗 文档 来自监视文件系统活动 inotify https developer ibm com tutorials
  • C - 为什么我无法映射较小(256UL 或更小)的内存?

    请告诉我 为什么我的简单应用程序无法映射较小的内存 而且 为什么有这样一个特定的边界 257UL define MAP SIZE 256UL or below fail define MAP SIZE 257UL ok include
  • 码头无故停止

    我需要经验丰富的码头用户的建议 我在负载均衡器 亚马逊云 后面维护着 2 台 Linux 机器 使用 Jetty 9 0 3 有时我的 Jetty 容器会被 Thread 2 无故关闭 同时地 显示以下日志并且容器无故停止 没有错误 没有例
  • Linux“屏幕”的 Windows 等效项还是其他替代方案?

    我正在寻找一种在 Windows 环境中控制程序的方法 我希望它与 Linux 软件有点相似 screen 我搜索的原因是我需要使用标识符启动一个程序 在 Windows 上 这样我以后就能够关闭该特定程序 而无需关闭其他任何程序 即使实际
  • 查看 Linux 上的多核或多 CPU 利用率

    我有一个在 Linux 上运行的程序 我需要确定它如何利用所有 CPU 内核 有没有什么程序可以查看这些信息 跑过 top 命令并按下 1 查看各个核心
  • 如何设置Java线程的CPU核心亲和力?

    我搜索了以前关于类似主题的帖子 但找不到合适的答案 因此提出这个问题 非常感谢您帮助回答 我知道在 Linux 中通过任务集命令设置进程与特定 CPU 核心的关联性 但我想设置 Java 线程与特定 cpu 核心的亲和力 以便属于同一进程的
  • 无需 root 访问权限即可安装 zsh? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有可能 以及如何 我确实需要在几台具有 ssh 访问权限 但没有 root 访问权限 的远程计算机上使用此功能 下载 zsh wget O zsh t
  • 如何重命名 .tar.gz 文件而不提取内容并在 UBUNTU 中创建新的 .tar.gz 文件?

    我有一个命令将创建一个新的 tar gz现有文件中的文件 sudo tar zcvf Existing tar gz New tar gz 该命令将创建一个新的New tar gz从现有的文件Existing tar gz file 谁能告

随机推荐

  • Zookeeper闪退、报错JAVA_HOME is not set 解决方法

    打开服务端闪退 编辑打开zkServer cmd 在末尾添加 pause 查看报错原因 这里的报错原因是JAVA HOME is not set 没有设置JAVA HOME 这里我们可以看到zkService 启动的时候 加载zkEvn文件
  • mac浏览器没有网络,通讯软件(QQ、微信、飞书等)正常

    网上的方法 1 在网络dns里加 114 114 114 114 或者8 8 8 8 我自己试的是没有解决问题 2 关闭网络代理中的一些勾选 我电脑里本来就没有勾选 3 重置DNS 可能是mac版本不同 提示discoveryutil未找到
  • 企业数字化转型之道:3L8P转型模型

    作者 韩磊 摘要 数字化转型的本质是 在 数据 算法 定义的世界中 以数据服务的流动 化解复杂系统的不确定性 优化资源配置效率 企业数字化转型的本质则是以需求为中心 以数据为资产 以技术为手段 以人才为依托 快速构建能满足客户需求的 支持业
  • Java IO流

    1File类 java io File类 文件和文件目录路径的抽象表示形式 与平台无关 File 能新建 删除 重命名文件和目录 但 File不能访问文件内容本身 如果需要访问文件内容本身 则需要使用输入 输出流 想要在Java程序中表示一
  • 微信小程序之数据的同步渲染

    微信小程序之数据的同步渲染 结论 微信小程序通过setData方法实现数据的同步渲染 直接修改data无法实现同步渲染 setData工作原理 小程序分为逻辑层和渲染层 而每次逻辑层改变了 要借用Native运行 小程序的渲染层和逻辑层由两
  • ExayExcel 阿里出品的ExayExcel

    1 首先引入依赖
  • cJSON笔记——三种结构的cJSON数组

    最近的项目中 涉及对cJSON库的使用 特别是不同结构的cJOSN数组的运用 在此小结以下 1 指定 路径 文件类型 文件名 读取整个文本 brief param file dir 文件所在的路径 param file name 文件名 p
  • 模型参数量(Parameters)和计算量(FLOPs)获取【使用thop】

    Tips 针对部分开源代码没有提供相关计算网络参数量和计算量的代码 这里给出一个通用的获取网络的参数量和计算量的方法 使用thop即可快速获取 1 模型参数量和计算量 参数量 params 即为网络模型中含有多少个参数 与输入的数据无关 主
  • win11热点提示我们无法设置热点

    问题还原 首先是连接win11的热点时 手机总是显示正在获取IP地址 然后连不上 之前都好好的 也没干过啥 或者选择性失忆 然后一通瞎操作 把电脑IP都给整成自动ip去了 初步估计是点了 网络重置 了如图 公司设置了固定ip 接下来就难受了
  • vue+iview 进行table表格数据的更新显示,局部刷新

    hello 在这个新做了一个网站 想提高一下权重 麻烦看见的给我点一下哦 是吉他乐谱分享的哦 www lsjita com 使用vue iview进行vue后台管理系统 对iview不太熟悉 然后就出现了好多问题 上一个有记录 这个来区分一
  • HaaS Python + AI 隆重登场 使用 ESP32 + 摄像头 机器视觉实现水果识别

    水果识别系统 现在很多农场里边使用摘采机器人识别水果进行水果摘采 盒马超市也使用自动识别称来识别水果种类自动计费 本案例则是使用HaaS Python对摄像头图像进行采集 并调用HaaS云端积木能力对水果进行识别 1 背景知识 水果的种类繁
  • 【AI实战】快速搭建中文 Alpaca 33B 大模型 Chinese-Alpaca-33B

    AI实战 快速搭建中文 Alpaca 33B 大模型 Chinese Alpaca 33B 中文 33B 大模型 Chinese Alpaca 33B 环境配置 搭建过程 1 拉取 chinese alpaca lora 33b 2 合并l
  • 【python学习笔记】seaborn模块

    目录 热力图介绍 seaborn模块绘制热力图 热力图介绍 热力图是一种特殊的图表 它是一种通过对色块着色来显示数据的统计图表 在绘图时 需要指定每个颜色映射的规则 一般以颜色的强度或色调为标准 比如颜色越深的表示数值越大 程度越深 颜色越
  • spark运行报错:(null) entry in command string: null chmod 0644

    在WIndows操作系统中本地运行spark程序 报以下错误 null entry in command string null chmod 0644 后面是目的目录 解决方法 下载hadoop dll文件 并拷贝到c windows sy
  • JS中的call()和apply()方法和区别

    一 方法定义 apply 调用一个对象的一个方法 用另一个对象替换当前对象 例如 B apply A arguments 即A对象应用B对象的方法 call 调用一个对象的一个方法 用另一个对象替换当前对象 例如 B call A args
  • 分析996个词根在各大考纲词汇中的作用(五)总结精选篇

    CET4 CET6 GRE IELTS TOEFL 考研英语总的词汇量为14055 分析词根总数为996 有11544个单词分布在这些词根中 剩下的2511个词汇没有任何词根信息 本文精选5206个跟词根结合最紧密的单词 superword
  • KVM的HVM虚拟机使用非串口方式建立virsh console 连接

    在去年写的文章中 http blog csdn net dobell article details 14442457 写到了怎么利用serial 设备进行console连接 不过比较麻烦 因为1 需要修改虚拟机内部的grub启动选项 2
  • unity学习笔记-有关打包安卓apk的一些注意事项

    unity学习笔记 有关打包安卓apk的一些注意事项 打包到build project的时候报错 报错信息里出现了jdksdk等 打包报错显示andriodfestxml文件版本有问题 有关urp线管环境打包的时候的一些注意事项 在编辑器里
  • 一款开源的文件搜索神器,终于不用记 find 命令了

    Python微信订餐小程序课程视频 https blog csdn net m0 56069948 article details 122285951 Python实战量化交易理财系统 https blog csdn net m0 5606
  • pppd程序的参数——man手册翻译

    文章目录 pppd全称 摘要 描述 常用的选项 ttyname 串口名 speed 波特率 asyncmap map auth call name connect script 连接脚本 crtscts defaultroute defau