最近在 $WORK 安装了一个新的 (NAT) 防火墙设备。从那以后,我遇到了很多网络超时和中断,特别是对于需要服务器思考一下而没有响应的操作(svn update、rsync 等)。VPN 上的入站 SSH 会话也经常超时。
这清楚地表明我需要调整相关服务器上的 TCP(和 ssh)保活时间,以减少这些错误。
但是我应该使用什么合适的值?
假设我在防火墙的两侧都有可以建立连接的机器,有没有办法测量这个防火墙的 TCP 连接时间限制可能是多少?
理论上,我会以逐渐增加的间隔发送一个数据包,直到连接丢失。任何可能有帮助的工具(免费或开源最好,但我愿意接受其他建议)?
该设备不在我的控制之下,所以我不能只获得价值,尽管我试图询问它目前是什么以及是否可以增加它。
我在想你只需要从一台机器连接到另一台机器,同时在其中一台机器上运行数据包捕获。创建一个 FTP、HTTP、SSH 等会话,然后让它坐在那里直到超时。
当您说“理论上,我会以逐渐增加的间隔发送数据包,直到连接丢失”时,我不确定您的意思,但我认为您除了建立连接之外不需要做任何事情,捕获流量,让它静置直到超时。空闲会话发生超时,如果您将数据发送到另一端,它可能会重置计时器,因为会话将不再空闲。
当它超时时,查看从第一个数据包(三向握手开始)到连接终止(您可能会或可能不会看到 RST)的捕获时间戳。
除非有任何应用程序层超时(取决于您建立的连接类型),否则这应该让您了解超时设置的配置。
也许了解正确超时值的最简单方法是让网络管理员告诉您为新 NAT 设备配置的设置?
我尝试建立一个 ssh 出站连接,但我必须做的不仅仅是让它坐在那里。如果没有交互,它将无限期地显示有效,但在一定的空闲时间后它将停止接受输入。
所以我尝试运行:
然后它闲置了5分钟以上。此时,我按了一个键,得到:
我可能应该使用可能的间隔加上几秒钟,但我很确定超时在 240 到 300 秒之间。
网络管理员报告超时设置为 60 分钟,但显然情况并非如此。远程端的连接关闭得更快,但出站连接只会挂在我身边。这对于远程端在响应之前必须考虑的出站连接(svn 更新、具有大型远程目录的 ftp 等)的出站连接非常令人沮丧。