套接字每 2 小时由对等方重置一次

套接字每 2 小时由对等方重置一次

客户端通过 tcp 套接字使用 ssl (openssl) 连接到服务器。

如果没有正在进行的通信,2 小时后(加上几分钟),客户端会抱怨“套接字错误。连接被对等方重置”。

我已经测试了几天,让客户端在收到此警告后打开一个新连接,并且该模式每两个小时重复一次。我查看了客户端和服务器上的 cron 作业,但看不到任何可能执行此操作的作业。

请注意,套接字服务器(reactphp)不知道套接字已关闭。

什么可能导致连接每两小时重置一次?是否有内核配置设置可能会这样做?

答案1

TCP 保活。 2 小时后,如果连接未使用,则断开连接。可以很容易地改变。看http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html

简而言之,通过公开的内核可调参数“tcp_keepalive_time”/proc/sys/net/ipv4/tcp_keepalive_time可以根据需要从默认的 7200 进行更改。

相关内容