我只需要通过带有 PPP的unix-socket发送/接收消息。但起初我想用普通的串口启动 pppd 以确保我知道它是如何工作的。如我所见,如果我将 pppd 绑定到串行,所有到达那里的数据包都将从 PPP/IP/... 解包,并使用我的应用程序重定向到某个端口。据我了解,这只能通过 pppd 创建一个新的网络接口来完成。所以我需要给pppd一个IP。在阅读手册并遇到一些问题后,我想出了一个似乎正确的选项,但我仍然无法让它工作:
$ pppd local -detach 10.5.57.198: /dev/ttyS4
Using interface ppp0
Connect: ppp0 <--> /dev/ttyS4
LCP: timeout sending Config-Requests
Connection terminated.
Modem hangup
在标题LCP: timeout sending Config-Requests
出现之前我有一段时间,我在这个时间启动了ifconfig
——唉,这里没有出现新的网络接口。
我还被要求提供教程,但我发现的所有内容似乎都没有用,主要是因为这些已被弃用:这些经常提到配置、软件或现在不存在的站点。部分原因是这些提到了许多对我来说似乎没有意义的行为。
那么,有人知道,我缺少哪些选项?
一般来说,PPP
pppd
主要用于拨号连接,因此所有默认设置都假定该pppd
过程将作为手动启动序列的一部分启动。序列中的前一个步骤应该是建立串行连接(即调制解调器通过说 表示它与远程调制解调器的握手完成CONNECT
)您想颠倒事情的顺序,首先开始
pppd
并使其等待物理连接出现。该persist
选项可以做到这一点。文档
persist
说所以你可能还需要
maxfail 0
覆盖它。通过快速查看手册页,我可以看到其他相关选项是demand
、idle
和holdoff
,所有这些选项都将帮助您控制在对等方不存在时接口的行为方式。另一个有用的
connect
选项:在拨号情况下用于指定拨号调制解调器的程序的选项可能对您有用。您可以指定一个connect
脚本,它只监视串行端口状态并在存在连接时退出。