我有一个服务器运行一个基本默认的CentOS 6.4安装。它位于VPN和防火墙的后面,两者都不是由我管理的--它们是由托管公司管理的。
当我让ssh客户机打开很长一段时间而不接触它(在我的桌面上是cygwin )时,它最终会结冰(Ctrl+C甚至不能工作),然后过了很长一段时间,它会恢复,但是ssh连接会因为Connection Reset by Peer错误而断开连接。
但是,通常我不会关心这一点:我一直在用客户端GUI开发服务器应用程序。这两个应用程序之间确实有心跳。今天,我把他们一个人留在了不到两个小时,当我回来时,他们已经坠毁了。服务器的错误消息说:
java.io.IOException: Connection timed out
java.io.IOException: Broken pipe客户的日志上说:
java.io.IOException: An established connection was aborted by the software in your host machine当我返回时,我单击了客户机上的“重新连接”按钮,而没有重新启动任何一个应用程序,并且它们再次正常工作,没有任何问题--所以这并不像某个应用程序耗尽了资源或类似的应用程序。
我认为这更像是一个ServerFault问题,而不是一个StackOverflow问题,因为我在ssh连接中看到了类似的行为。是什么导致了网络超时,我能做些什么呢?
发布于 2013-10-08 11:43:57
对于ssh,只需调整ssh保持活动会话即可。
对于putty(Windows),在会话下的属性上,单击连接,然后发送空数据包以保持会话活动,您需要将秒设置在想要的秒之间
对于Linux,您可以在/etc/ssh/ssh_config下面找到它。
主机* ServerAliveInterval 300 ServerAliveCountMax 2
可能是"java.io.IOException:已建立的连接被主机中的软件中止“。
这有很多可能的问题
首先要查看的是vpn和防火墙,有些vpn使用“vpn-空闲超时”,当会话在指定时间内不活动时终止任何用户的会话,并注意到防火墙也可能与使用TCP的其他设备交互,保持数据包活动。
另一件事是在应用程序方面:
例如Oracle web服务器的“HTTP级保持生存系统”
这可以调优服务器允许在关闭管理控制台中最古老的连接之前一次等待的最大连接数。
但请注意
如果允许每个请求无限期地保持连接打开,服务器可能会超载连接。在UNIX和Linux系统中,这很容易导致文件表溢出
您可以查看这些文档以供参考。
http://docs.oracle.com/cd/E19146-01/821-1834/gdpiq/index.html
https://serverfault.com/questions/543918
复制相似问题