Debian 8 pppd 2.4.6 LCP配置失败求助(Ubuntu 22.0可正常连接)
PPPD连接问题:Debian 8(pppd 2.4.6)认证失败,Ubuntu 22.0(pppd 2.4.9)正常
我使用搭载Wireless Logic SIM卡的Teltonika调制解调器,通过Linux pppd守护进程经串口连接网络。目前遇到问题:无法升级的Debian 8系统(pppd 2.4.6)中无法完成认证,最终卡在‘Discarded non-LCP packet when LCP not open’错误;但在Ubuntu 22.0系统(pppd 2.4.9)中使用相同配置可正常连接。
Chat脚本内容
TIMEOUT 60 ECHO ON ABORT '\nBUSY\r' ABORT '\nERROR\r' ABORT '\nNO ANSWER\r' ABORT '\nNO CARRIER\r' ABORT '\nNO DIALTONE\r'' ATZ OK 'AT+CGDCONT=1,"IP","wlapn.com"' OK ATD*99***1# CONNECT ''
Peer配置文件内容
cp-echo-failure 0 lcp-echo-interval 0 #nodetach debug connect "/usr/sbin/chat -v -f /etc/chatscripts/wireless-logic" /dev/ttyUSB0 115200 crtscts noipdefault default-asyncmap defaultroute nobsdcomp noauth passive persist ipcp-accept-local ipcp-accept-remote user R2PUKSYS password R2PUKSYS usepeerdns lock novj show-password
Debian 8下失败的调试日志
ATZ OK AT+CGDCONT=1,"IP","wlapn.com" OK ATD*99***1# CONNECT Script /usr/sbin/chat -v -f /etc/chatscripts/gprs finished (pid 3229), status = 0x0 Serial connection established. using channel 9 Using interface ppp0 Connect: ppp0 <--> /dev/ttyS2 sent [LCP ConfReq id=0x1 <magic 0x9fec45d1> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x2a <asyncmap 0x0> <auth chap MD5> <magic 0xd13c8cca> <pcomp> <accomp>] sent [LCP ConfRej id=0x2a <asyncmap 0x0>] rcvd [LCP ConfReq id=0x2b <auth chap MD5> <magic 0xd13c8cca> <pcomp> <accomp>] sent [LCP ConfAck id=0x2b <auth chap MD5> <magic 0xd13c8cca> <pcomp> <accomp>] rcvd [LCP DiscReq id=0x2c magic=0xd13c8cca] sent [LCP ConfReq id=0x1 <magic 0x9fec45d1> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x2d <asyncmap 0x0> <auth chap MD5> <magic 0xd13c9885> <pcomp> <accomp>] sent [LCP ConfRej id=0x2d <asyncmap 0x0>] rcvd [LCP ConfReq id=0x2e <auth chap MD5> <magic 0xd13c9885> <pcomp> <accomp>] sent [LCP ConfAck id=0x2e <auth chap MD5> <magic 0xd13c9885> <pcomp> <accomp>] rcvd [LCP DiscReq id=0x2f magic=0xd13c9885] LCP: timeout sending Config-Requests rcvd [CHAP Challenge id=0x2 <fa05d11a50d2b1b27348a897aa62ab92>, name = "UMTS_CHAP_SRVR"] Discarded non-LCP packet when LCP not open rcvd [CHAP Challenge id=0x3 <0692e9e924970fcd3bc39cf1c0ebdfaf>, name = "UMTS_CHAP_SRVR"] Discarded non-LCP packet when LCP not open rcvd [CHAP Challenge id=0x4 <a513a0bbc0a57e3769a6cf74883dc16e>, name = "UMTS_CHAP_SRVR"] Discarded non-LCP packet when LCP not open rcvd [CHAP Challenge id=0x5 <62434f6aabb3f3c981c572115fcb298c>, name = "UMTS_CHAP_SRVR"] Discarded non-LCP packet when LCP not open rcvd [CHAP Challenge id=0x6 <4e25351af6614f8d2cd4921f49186666>, name = "UMTS_CHAP_SRVR"] Discarded non-LCP packet when LCP not open
Ubuntu下正常连接的调试日志
OK AT+CGDCONT=1,"IP","wlapn.com" OK ATD*99***1# CONNECT Script /usr/sbin/chat -v -f /etc/chatscripts/wireless-logic finished (pid 8876), status = 0x0 Serial connection established. using channel 1 Using interface ppp0 Connect: ppp0 <--> /dev/ttyUSB0 sent [LCP ConfReq id=0x1 <magic 0x77d321f9> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x0 <asyncmap 0x0> <auth chap MD5> <magic 0x2d03c0b> <pcomp> <accomp>] sent [LCP ConfRej id=0x0 <asyncmap 0x0>] rcvd [LCP ConfAck id=0x1 <magic 0x77d321f9> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <auth chap MD5> <magic 0x2d03c0b> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <auth chap MD5> <magic 0x2d03c0b> <pcomp> <accomp>] rcvd [LCP DiscReq id=0x2 magic=0x2d03c0b] rcvd [CHAP Challenge id=0x1 <b85176b8ba400effcb027573e0394a5e>, name = "UMTS_CHAP_SRVR"] sent [CHAP Response id=0x1 <97247cf226529819c7d9cf5a16345f7c>, name = "********"] rcvd [CHAP Success id=0x1 ""] CHAP authentication succeeded CHAP authentication succeeded sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15>] sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>] sent [IPV6CP ConfReq id=0x1 <addr fe80::2c99:da39:1484:84a0>] rcvd [LCP ProtRej id=0x3 80 fd 01 01 00 0c 1a 04 78 00 18 04 78 00] Protocol-Reject for 'Compression Control Protocol' (0x80fd) received rcvd [IPCP ConfReq id=0x0] sent [IPCP ConfNak id=0x0 <addr 0.0.0.0>] rcvd [IPCP ConfNak id=0x1 <addr 10.94.158.0> <ms-dns1 10.4.0.240> <ms-dns2 10.4.0.230>] sent [IPCP ConfReq id=0x2 <addr 10.94.158.0> <ms-dns1 10.4.0.240> <ms-dns2 10.4.0.230>] rcvd [IPCP ConfReq id=0x1] sent [IPCP ConfAck id=0x1] rcvd [IPCP ConfAck id=0x2 <addr 10.94.158.0> <ms-dns1 10.4.0.240> <ms-dns2 10.4.0.230>] Could not determine remote IP address: defaulting to 10.64.64.64 Script /etc/ppp/ip-pre-up started (pid 8888) Script /etc/ppp/ip-pre-up finished (pid 8888), status = 0x0 not replacing default route to wlp59s0 [10.20.31.254] local IP address 10.94.158.0 remote IP address 10.64.64.64 primary DNS address 10.4.0.240 secondary DNS address 10.4.0.230 Script /etc/ppp/ip-up started (pid 8893) Script /etc/ppp/ip-up finished (pid 8893), status = 0x0
解决思路建议
- 调整LCP协商参数:在peer配置中添加
lcp-max-configure 10(增加LCP配置请求重试次数)和lcp-configure-timeout 10(延长单次协商超时时间),解决Debian 8下pppd因协商超时导致的LCP断开问题。 - 修改asyncmap配置:移除peer配置中的
default-asyncmap,或者主动设置asyncmap 0x0,避免与对端的asyncmap协商冲突,让LCP协商更快完成。 - 强制启用CHAP认证:在peer配置中添加
chap参数,明确告知pppd使用CHAP认证,确保LCP协商阶段就做好认证准备,避免后续无法响应CHAP挑战。 - 优化Chat脚本:在Chat脚本的
CONNECT ''后添加TIMEOUT 10,确保串口连接建立后给pppd足够的接管时间,避免数据同步问题。 - 尝试替换pppd版本:如果系统允许编译安装软件,可以下载pppd 2.4.9源码在Debian 8上编译安装,直接避开旧版本的协议协商bug。
内容的提问来源于stack exchange,提问作者Peter Deed
相关产品推荐
相关产品推荐

