我已经在两个虚拟机(Windows 2000 是客户端,CentOS 8 是服务器)之间使用 CentOS 8 拨入服务器(mgetty+pppd)成功模拟了与 Windows 客户端(Windows 2000)的直接串行连接,在 Slackware 主机中使用 libvirt .
现在我想使用 kppp 和相同的 CentOS 8 服务器模拟与 Linux 客户端(Mandriva Linux)的旧 PPP 连接。我没有任何 56k 调制解调器,但我知道存在一个模拟调制解调器的项目,名为tcpser,Windows 无法工作,因为 tcpser 程序正忙于串行端口,所以我使用 Mandriva,在 Mandriva 上运行tcpser 程序:
tcpser -d /dev/ttyS0 -n"010010101"
在 Centos 我运行 tcpser 程序
tcpser -d /dev/ttyS0 -n"010010102"
使用 kppp 并进行“调制解调器询问”报告一切正常(我正在 Centos 上使用 minicom 检查)..但结果字符串都是空的。
当我尝试从 Mandriva 连接到编号时,调制解调器卡在初始化字符串中,正如您从这个 minicom 输出中看到的那样,并且不会创建连接:
OK
OK
+++ATH
OK
OK
ATZ
两个虚拟机通过一个假的串口(socket)直接连接,一个是绑定的,另一个是连接的。这些是机器的串口的XML。
曼德里瓦
<serial type="unix">
<source mode="connect" path="/tmp/ppp.sock"/>
<target type="isa-serial" port="0">
<model name="isa-serial"/>
</target>
<alias name="serial0"/>
</serial>
中央操作系统
<serial type="unix">
<source mode="bind" path="/tmp/ppp.sock"/>
<target type="isa-serial" port="0">
<model name="isa-serial"/>
</target>
<alias name="serial0"/>
</serial>
更新 1:一些进展,tcpser 只是简单地从串行到 TCP 应用程序建立“桥”,在我的情况下,不可能建立从串行到 mgetty 的桥(不是 TCP,它使用串行线路),但可以从串行到远程登录的桥梁:
tcpser -d /dev/ttyS1 -s 38400 -l 7 -tsSiI -i "s0=1" -n"010010102=centos.domain.private:23"
我已经从 Windows 客户端尝试了超级终端并且工作正常,我可以使用旧的好 ptsn-modem 方式登录。
不幸的是,在 Mandriva 和 Windows 客户端中,PPP 连接失败并出现“环回错误”“检测到环回”错误 17
PSL 我知道 Windows 2000、Mandriva Linux 不受支持,它们存在安全风险,但只是测试。
使用这篇非常好的“how to”博客文章找到的解决方案,我只更改了 PPP 的一些选项以使用 pap 身份验证。
我试图从 Windows 和 Mandriva 连接并且工作正常,使用假密码或空密码拒绝登录(PPP 的登录选项)一个好的“加号”是将真正的串行调制解调器连接到假的“tnt”线路,如果只是为了听到连接握手的美妙声音。
/etc/ppp/options
/etc/ppp/options.tnt3
/etc/ppp/pap-secrets
最后我用这些简单的参数启动 PPP 守护进程