+ -
当前位置:首页 → 问答吧 → 在VPN环境下做tcp常连接服务,出现单向断开的问题?求分析

在VPN环境下做tcp常连接服务,出现单向断开的问题?求分析

时间:2010-08-27

来源:互联网

环境说明:
1 公司服务器在IDC,服务器配置vpn回拨回公司,就是一个内网地址。(这个是网络环境)
2 程序环境, 在idc服务器上启动socket监听, 公司内的服务器客户端去连接这些服务器; 心跳做的是单向的,每5秒发送一个包去服务器端。

问题说明:
在某个时段,突然发现服务器端的数据无法收到。

问题查找:
netstat -an,服务器和客户端的连接正常;去服务器查看日志,发现能正常收到心跳包,数据往客户端发送也发送正常;但是客户端就是没有数据过来,准备用tcpdump调试,重启服务器端程序,恢复,问题无法重现,只能等。我用strace去追进程的write,发现数据发送正常,fd也对的。很疑惑啊~~~

自己分析:
通过查找vpn的日志,发现vpn在那个时段出错,从新认证了,但是几十组服务器,就几台出现这问题。只能大概猜测vpn在断开的时候重新连上时间很短,大部分情况下不会出现问题,赶巧刚好碰到一台服务器出了问题,把单向的连接重置了,造成连接问题,数据发送到网络没有路由了。

准备解决方案:
用tcpdump查看数据包是否到客户端??? 重新写一个双向的心跳检测,主动断开重连。 大家帮忙分析分析。谢谢。今天在线等。

作者: 79hy   发布时间: 2010-08-27

我怀疑是 VPN 程序有 bug,目前使用的是啥?

作者: langue   发布时间: 2010-08-27

我们用的是openvpn 2.0.8-1版本。 会是版本问题吗?其他大部分的服务器都没问题。都是一个版本啊??

作者: 79hy   发布时间: 2010-08-27

怎么跑到网络版来了?c的同学分析下比较好吧,我要大家帮我分析下。刚才用tcpdump调试网络连接,正准备调试呢,自己又好了。只能再等出问题的时候了。哎~~~

作者: 79hy   发布时间: 2010-08-27