如何测量NAT防火墙的TCP超时限制来设置Keepalive时间间隔?

$ WORK最近安装了新的(NAT防火墙设备。 从那以后,我得到了很多networking超时和中断,特别是对于那些需要服务器思考一点而没有响应的操作(svn update,rsync等)。 通过VPN的入站SSH会话也经常超时。

这清楚地表明我需要调整有问题的服务器上的TCP(和ssh)存活时间,以减less这些错误。

但是,我应该使用什么合适的价值呢?

假设我在防火墙的两端都有可以build立连接的机器,有没有办法测量这个防火墙的TCP连接的时间限制是什么?

从理论上说,我会发送一个逐渐增加间隔的包,直到连接丢失。 任何可能有帮助的工具(免费或开放源代码将是最好的,但我打开其他build议)?

电器不在我的控制之下,所以我不能只是得到它的价值,尽pipe我试图询问它现在是什么,如果我能得到它的增加。

我认为你只需要在其中一台机器上运行数据包捕获时,从一台机器连接到另一台机器。 做一个FTP,HTTP,SSH等会议,让它坐在那里,直到超时。

当你说“理论上,我会发送一个数据包,逐渐增加间隔,直到连接丢失”,但我不认为除了build立连接之外,你不需要做任何其他的事情。交通,让它坐下来,直到它超时。 超时会在空闲会话中发生,如果您将数据发送到另一端,可能会重置计时器,因为会话将不再空闲。

当超时时,查看从第一个数据包(三次握手开始)捕获的时间戳,直到连接终止(您可能看不到RST)。

禁止任何应用程序层超时(取决于您build立的连接types),这应该让您了解超时设置configuration的内容。

也许最简单的方法来知道正确的超时值只是要求networkingpipe理员告诉你新的NAT设备的configuration设置?

我尝试了一个SSH的出站连接,但我不得不做更多的事情,而不是让它坐在那里。 没有互动,它将无限期地显示有效,但是在一定的空闲时间之后它将停止接受input。

所以我试着跑:

 #60中的n 90 90 180 180 240 300 600 900 1800 3600; 睡觉$ n && echo“Still r
 unning $ n“;完成
仍在运行60
还在跑90
仍在运行120
还在跑180
仍在运行240

然后闲置超过5分钟。 在这一点上,我按了一个键,得到:

连接到XXX由远程主机closures。
连接到XXXclosures。

我可能应该使用可能的时间间隔加上几秒钟,但我很确定超时是在240和300秒之间。

networkingpipe理员报告超时设置为60分钟,但显然不是这种情况。 远程端得到closures更快,但出站连接将只是挂在我身边。 这对于出站连接来说是非常令人沮丧的,远程端在响应之前必须考虑一下(svn update,ftp与大型远程目录等)