使用带有串行端口的 pppd?

使用带有串行端口的 pppd?

我只需要通过unix 套接字使用 PPP。但首先我想用一个常用的串行端口启动 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——唉,这里没有新的网络界面出现。

我也曾寻求过教程,但我找到的教程似乎都没什么用,主要是因为这些教程已被弃用:它们经常提到目前不存在的配置、软件或网站。部分原因是这些教程提到了很多对我来说似乎毫无意义的操作。

那么,有人知道我缺少什么选项吗?

答案1

一般来说pppd,PPP 主要用于拨号连接,因此所有默认设置都假设该pppd过程将作为手动启动序列的一部分启动。序列中的前一步应该是建立串行连接(即调制解调器通过说 来指示与远程调制解调器的握手完成CONNECT

您想反转事物的顺序,pppd先启动,然后等待物理连接出现。该persist选项可以实现这一点。

文档persist

最大失败次数选项仍然对持久连接有影响。

因此您可能还需要maxfail 0覆盖它。快速浏览手册页后,我可以看到其他相关选项,包括demandidleholdoff,所有这些选项都可以帮助您控制当对等方不存在时接口的行为。

还有一个有用的选项:connect在拨号情况下用于指定拨号调制解调器的程序的选项可能对您有用。您可以指定一个connect脚本,该脚本只监视串行端口状态并在连接存在时退出。

相关内容