当前位置:首页 > linux教程 > 列表

Linux下openvpn进程异常退出如何解决

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-29 13:27:50 浏览: 评论:0 

OpenVPN是Linux下开源VPN,提供了良好的性能和友好的用户GUI,本文来看看openvpn服务多次异常退出的解决办法.

最近的openvpn服务异常退出了多次,由于当初为了排查问题记录大量的debug日志,导致出现问题的时候想定位问题很难,瞬间日志就被刷没了,进程掉了,瞬间启动、瞬间又掉了,导致很多订单丢了,由于日子文件记录了太多无用信息,不敢通过查日志来定位问题,开始大胆猜测.

1.openvpn 服务器(虚拟机)的 内存不够了 因为只有 2G 内存.

2.I/O过高,因为日志开启了 DEBUG 的原因,大量写日志操作.

3.打开文件描述符不够,系统默认 1024.

4.有人恶意攻击openvpn 服务.

根据猜测的4点,开始应对.

1.首选把openpvn服务器(虚拟机)内存调整到了4G,重启后发现openvpn 服务在启动后的 几分钟还是异常掉.

2.把日志调整为 error,openvpn 在启动后,几分钟还是异常退出了,查看日志发现是.

  1. Feb 18 17:17:42 localhost openvpn[1219]: qn_anqiu/xxx.xxx.xxx.xx:27351 CRL: cannot read: /usr/local/cine/etc/keys/crl.pem: Too many open files (errno=24)  

3.有上面的错误日志提示,说明猜想的 第三点是对的,执行命令:

shell $> ulimit -SHn 65535

在启动 openvpn 进程后,正常了没有再次退出了.

4.查看日志 发现有一个 IP 每分钟都在非正常请求 openvpn 服务器,直接在 iptables 过滤掉此IP.

  1. Feb 16 13:06:16 localhost openvpn[1219]: 58.244.191.51:47374 WARNING: Bad encapsulated packet length from peer (18245), which must be > 0 and < = 1544 -- please ensure that --tun-mtu or --link-mtu is equal on both peers -- this condition could also indicate a possible active attack on the TCP link -- [Attemping restart...] 
  2. Feb 16 13:07:21 localhost openvpn[1219]: 58.244.191.51:6043 WARNING: Bad encapsulated packet length from peer (18245), which must be > 0 and < = 1544 -- please ensure that --tun-mtu or --link-mtu is equal on both peers -- this condition could also indicate a possible active attack on the TCP link -- [Attemping restart...]   --phpfensi.com 

经过上面的修改,经过两天后 openvpn 还是异常掉了一次,经过查看日志还是老问题:

  1. Feb 18 17:17:42 localhost openvpn[1219]: qn_anqiu/xxx.xxx.xxx.xx:27351 CRL: cannot read: /usr/local/cine/etc/keys/crl.pem: Too many open files (errno=24)  

就算打开文件描述符进程也不应该掉啊,这说明是openvpn 的 BUG,crl.pem 该文件里存的是注销的证书,如果是注销的证书验证是不能通过,openvpn服务就会拒绝连接,我目前有 800多个客户端来连接,难道是每个连接都要请求该文件没有释放吗?就算没有释放65535 个文件描述符还是不够么?

为了解决问题只好修改配置文件把这个验证注销证书的参数去掉,在重启 openvpn 进程,就正常了再也没有出现过问题,具体如何产生还需要进一步观察和研究.

Tags: openvpn进程 Linux进程异常

分享到: