PPP拨号连接建立虚拟网卡,并可以进行路由设置。几乎所有其他的连接服务都建立在其之上,PPPoE,PPTP,L2TP等等。

而其中一个最基本的话题可能被忽略了,PPP是如何工作的,如何使用PPP建立最简易的连接。

PPP协议实际上非常简单,握手信号之后即进行数据交换,由于原来的PPP连接的使用都是基于电话MODEM的点对点通信,不考虑过于复杂的加密并保证传输效率,所以PPP的缺省设置是基于tty设备的,如果使用串口就是ttyS0-ttyS?

当然,使用pppd应用于附加服务并不必须使用tty设备,代之以pty使用子进程的标准输入输出,stdio


建立本机的局域联接,命令如下


pppd noauth nodetach passive pty '/usr/sbin/pppd noauth notty' 192.168.2.123:192.168.2.254


解析


pppd服务端命令行,应该指明路径,/usr/sbin/pppd
noauth
不进行用户验证
nodetach
不作后台运行,用于调试目的,可以换作updetach,或不用此选项即作为后台
passive
等待连接,可以认为服务模式
pty
取代tty的输入输出为命令行的标准输入输出
notty
客户端命令行中notty将pppd通信直接用于标准输入输出

<local ip>

:

<remote ip>

点对点的地址分配


局域网内的拨号连接

实际上没有太多的应用意义,但即使仅仅作为拨号和虚拟网络测试也可以加以研究


服务端

pppd noauth nodetach passive pty 'nc -l -p 22334' 192.168.3.123:192.168.3.254

客户端

pppd noauth nodetach pty 'nc <ip> 22334'


使用ssh建立***连接

ssh需要保证已经设置好的自认证连接

客户端

pppd nodetach noauth passive pty "ssh <ip> -l <user> 'sudo /usr/sbin/pppd notty noauth'" 192.168.4.2:192.168.4.254