以下是一次记录pptpd vpn无法连接后的心酸历程:

pptp client拨号发现一直无响应,查看日志

  因为pptpd服务端是一台高质量公网地址,所以平时拨入vpn连接都非常快,今天发起拨号请求后却迟迟无相应,所以迅速登录服务端进行排查,发现有以下大量日志:

Jun  5 21:29:38 Linux kernel: pptpctrl[25540]: segfault at 0 ip 00007fc8fd35cbdc sp 00007ffdae051df8 error 4 in libc-2.17.so[7fc8fd1fb000+1c2000]
Jun 5 21:29:39 Linux kernel: pptpctrl[25541]: segfault at 0 ip 00007f8f622b9bdc sp 00007ffc046fc1a8 error 4 in libc-2.17.so[7f8f62158000+1c2000]
Jun 5 21:29:40 Linux kernel: pptpctrl[25543]: segfault at 0 ip 00007fb1f8f6fbdc sp 00007fffdbb25888 error 4 in libc-2.17.so[7fb1f8e0e000+1c2000]
Jun 5 21:29:41 Linux kernel: pptpctrl[25545]: segfault at 0 ip 00007fbe200c6bdc sp 00007ffde8a4c418 error 4 in libc-2.17.so[7fbe1ff65000+1c2000]
Jun 5 21:29:42 Linux kernel: pptpctrl[25547]: segfault at 0 ip 00007fee8be1cbdc sp 00007fffb5f20be8 error 4 in libc-2.17.so[7fee8bcbb000+1c2000]
Jun 5 21:29:43 Linux kernel: pptpctrl[25549]: segfault at 0 ip 00007f691543ebdc sp 00007ffe86de6ef8 error 4 in libc-2.17.so[7f69152dd000+1c2000]
Jun 5 21:29:45 Linux kernel: pptpctrl[25551]: segfault at 0 ip 00007f9315618bdc sp 00007fff606f7ab8 error 4 in libc-2.17.so[7f93154b7000+1c2000]
Jun 5 21:29:46 Linux kernel: pptpctrl[25553]: segfault at 0 ip 00007fb6fe23ebdc sp 00007ffdef6334e8 error 4 in libc-2.17.so[7fb6fe0dd000+1c2000]
Jun 5 21:29:47 Linux kernel: pptpctrl[25555]: segfault at 0 ip 00007f036e287bdc sp 00007ffebb2d5d28 error 4 in libc-2.17.so[7f036e126000+1c2000]
Jun 5 21:29:48 Linux kernel: pptpctrl[25556]: segfault at 0 ip 00007fae58ad6bdc sp 00007ffe71a1eaa8 error 4 in libc-2.17.so[7fae58975000+1c2000]
Jun 5 21:29:49 Linux kernel: pptpctrl[25559]: segfault at 0 ip 00007f6b5cfe4bdc sp 00007ffe5827ce08 error 4 in libc-2.17.so[7f6b5ce83000+1c2000]

  此条日志在pptpd服务启动后就会频繁出现,于是开始查看pptpd进程状态是否正常。

查看服务运行状态

ps aux|grep pptpd

root      21285  0.0  0.0  10732   932 ?        Ss   20:09   0:00 /usr/sbin/pptpd -f
root 25267 0.0 0.0 6472 664 ? S 21:27 0:00 pptpd [192.168.1.1]
root 25269 0.0 0.0 6472 664 ? S 21:27 0:00 pptpd [192.168.1.1]
root 25271 0.0 0.0 6472 664 ? S 21:27 0:00 pptpd [192.168.1.1]
root 25273 0.0 0.0 6472 660 ? S 21:27 0:00 pptpd [192.168.1.1]
root 25275 0.0 0.0 6472 660 ? S 21:27 0:00 pptpd [192.168.1.1]
root 25276 0.0 0.0 6472 660 ? S 21:27 0:00 pptpd [192.168.1.1]
root 25278 0.0 0.0 6472 664 ? S 21:27 0:00 pptpd [192.168.1.1]
root 25280 0.0 0.0 6472 660 ? S 21:27 0:00 pptpd [192.168.1.1]
root 25282 0.0 0.0 6472 656 ? S 21:27 0:00 pptpd [192.168.1.1]
root 25284 0.0 0.0 6472 660 ? S 21:27 0:00 pptpd [192.168.1.1]
root 26608 0.0 0.0 112708 992 pts/1 S+ 21:41 0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn pptpd

  此处由于涉及到公网IP地址信息,所以将公网IP换成了内网,根据当前的进程信息可以看出除了pptpd主进程之外,还有十个pptpd的进程,此时还不能定位这些进程的作用。

systemctl status pptpd

● pptpd.service - PoPToP Point to Point Tunneling Server
Loaded: loaded (/usr/lib/systemd/system/pptpd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-06-05 20:09:24 CST; 1h 34min ago
Main PID: 21285 (pptpd)
CGroup: /system.slice/pptpd.service
├─21285 /usr/sbin/pptpd -f
├─25267 pptpd [192.168.1.1]
├─25269 pptpd [192.168.1.1]
├─25271 pptpd [192.168.1.1]
├─25273 pptpd [192.168.1.1]
├─25275 pptpd [192.168.1.1]
├─25276 pptpd [192.168.1.1]
├─25278 pptpd [192.168.1.1]
├─25280 pptpd [192.168.1.1]
├─25282 pptpd [192.168.1.1]
└─25284 pptpd [192.168.1.1] Jun 05 21:27:34 centos-bj pptpd[25267]: CTRL: Client 192.168.1.1 control connection started
Jun 05 21:27:35 centos-bj pptpd[25269]: CTRL: Client 192.168.1.1 control connection started
Jun 05 21:27:36 centos-bj pptpd[25271]: CTRL: Client 192.168.1.1 control connection started
Jun 05 21:27:37 centos-bj pptpd[25273]: CTRL: Client 192.168.1.1 control connection started
Jun 05 21:27:38 centos-bj pptpd[25275]: CTRL: Client 192.168.1.1 control connection started
Jun 05 21:27:39 centos-bj pptpd[25276]: CTRL: Client 192.168.1.1 control connection started
Jun 05 21:27:40 centos-bj pptpd[25278]: CTRL: Client 192.168.1.1 control connection started
Jun 05 21:27:42 centos-bj pptpd[25280]: CTRL: Client 192.168.1.1 control connection started
Jun 05 21:27:43 centos-bj pptpd[25282]: CTRL: Client 192.168.1.1 control connection started
Jun 05 21:27:44 centos-bj pptpd[25284]: CTRL: Client 192.168.1.1 control connection started

对当前状态进行判断

  此时我已经非常合理的对这是个进程,和这个IP产生了怀疑,并且这个问题无论是重启服务器或者pptpd服务都不能解决,为了尽快恢复,我拒绝了这个IP的所有访问。

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='36.102.10.136' reject"

  拒绝了此IP的所有访问后,发现重启服务,没有此报错了。

● pptpd.service - PoPToP Point to Point Tunneling Server
Loaded: loaded (/usr/lib/systemd/system/pptpd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-06-05 22:02:16 CST; 1s ago
Main PID: 28830 (pptpd)
CGroup: /system.slice/pptpd.service
└─28830 /usr/sbin/pptpd -f Jun 05 22:02:16 centos-bj systemd[1]: Started PoPToP Point to Point Tunneling Server.
Jun 05 22:02:16 centos-bj pptpd[28830]: MGR: Maximum of 100 connections reduced to 10, not enough IP addresses given
Jun 05 22:02:16 centos-bj pptpd[28830]: MGR: Manager process started
Jun 05 22:02:16 centos-bj pptpd[28830]: MGR: Maximum of 10 connections available

  此时查看VPN服务正常了,并且注意到了MGR: Maximum of 10 connections available也就是可用的最大连接数只有10个,我的进程都被占用了,所以连接失败了,调大IP池以及连接数,这个问题就解决了。

pptpd pptpctrl[25553]: segfault at 0 ip 00007fb6fe23ebdc sp 00007ffdef6334e8 error 4 in libc-2.17.so[7fb6fe0dd000+1c2000] pptp拨号连接失败的更多相关文章

  1. 解决CentOS 7安装zabbix 3.0 无法启动zabbix-server的问题[segfault at 18 ip 00007f78842b4bd0 sp 00007fff1995a818 error 4 in libpthread-2.17.so[7f78842ab000+16000]]

    解决CentOS 7安装zabbix 3.0 无法启动zabbix-server的问题 [root@localhost sbin]# service zabbix-server start Redir ...

  2. Ubuntu 16.04升级4.7.0内核后导致Compiz奔溃,问题:compiz[4852]: segfault at 48 ip 00007f88cae087f0 sp 00007ffce354c268 error 4 in libscale.so

    由于硬件的驱动支持问题,升级4.7.0的内核主要是为了能使用Intel HD Graphics 630驱动,但是也出现了相关问题,比如Compiz的特效导致桌面上如果有多个相同程序启动,然后再次点击时 ...

  3. segfault at 0 ip sp error 14

    error 14从未见过.谁能帮我解答什么情况才会出现这个,而且怎么定位崩溃函数地址? 备忘: segfault at 引起故障的地址ip 指令的内存地址sp 堆栈指针地址, 及栈顶指针err is ...

  4. com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect

      问题描述:最简单的数据库连接报错,到主机  的 TCP/IP 连接失败.(win 7 操作系统) 错误信息: com.microsoft.sqlserver.jdbc.SQLServerExcep ...

  5. 《TCP/IP详解卷1:协议》第17、18章 TCP:传输控制协议(1)-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  6. 《TCP/IP详解卷1:协议》第17、18章 TCP:传输控制协议(2)-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  7. JDBC:SqlServer连接TCP/IP连接失败,到主机 的 TCP/IP 连接失败。报错信息:com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。

    作者QQ:1161493927,欢迎互相交流学习. 报错信息:com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败. j ...

  8. Robomongo 0.9.0 连接mongo数据库时,提示连接失败 的解决方案

    Robomongo 0.9.0 连接mongo数据库时,提示连接失败.(IP和端口号确定是对的) 基本注意点: 1.mongodb服务打开,打开时,指定端口号,默认为27017,使用默认值,则不用指定 ...

  9. 安装PHP sphinx扩展 sphinx-1.1.0/sphinx.c:105:2: error: too few arguments 错误

    表现: /home/sphinx-1.1.0/sphinx.c: In function 'php_sphinx_client_read_property':/home/sphinx-1.1.0/sp ...

随机推荐

  1. centos7如何添加开机启动项?

    centos7提供开启服务启动的方式: 1.系统服务管理命令,如果是通过yum安装的软件,开机启动脚本,已经自动创建好了,直接执行如下命令 nginx.service后缀可以省略 systemctl ...

  2. linux vsftp查看ftp账号信息的方法

    linux vsftp查看ftp账号信息的方法 查看注册的FTP账号 在/etc/vsftpd/chroot_list 密码看不到 只能重置密码 passwd username

  3. Semaphore可以控制并发访问的线程个数

    public class SemaphoreTest { //信号量,只允许 3个线程同时访问 ); public static void main(String[] args) { Executor ...

  4. [转帖]从零开始入门 K8s | 手把手带你理解 etcd

    从零开始入门 K8s | 手把手带你理解 etcd https://zhuanlan.zhihu.com/p/96721097 导读:etcd 是用于共享配置和服务发现的分布式.一致性的 KV 存储系 ...

  5. sql server锁表、查询被锁表、解锁被锁表的相关语句

    MSSQL(SQL Server)在我的印象中很容易锁表,大致原因就是你在一个窗口中执行的DML语句没有提交,然后又打开了一个窗口对相同的表进行CRUD操作,这样就会导致锁表.锁表是一种保持数据一致性 ...

  6. Kubernetes Nacos

    一.概览 Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台. Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单 ...

  7. sql 按指定规则排序,例如 按 1,3,2排序 而不是1,2,3

    我们都知道 sql语句中的排序有desc(降序).asc(升序),这两个都是按顺序排列的,最近有一个需求是不按顺序排序了 ,抽出个别的排在前面,并且这种需求是应对的问题中的数据是比较少的,而且没有规律 ...

  8. javascript获取url中的参数值

    javascript的实现代码如下: function QueryString(fieldName) { var urlString = document.location.search; if(ur ...

  9. 一些你所不知道的VS Code插件

    摘要: 你所不知道的系列. 原文:提高 JavaScript 开发效率的高级 VSCode 扩展之二! 作者:前端小智 Fundebug经授权转载,版权归原作者所有. 作为一名业余爱好者.专业人员,甚 ...

  10. Ueditor文字和echarts图片 生成 word 前端解决方案

    编程就像搭积木,少了任何一个就拼接不起来,所有积木都找到就只剩下调试. 一.echarts  获取图片方法getDataURL  详细配置:https://www.echartsjs.com/zh/a ...