Tcp
對等方每 2 小時重置一次套接字
客戶端使用 ssl (openssl) 通過 tcp 套接字連接到伺服器。
如果沒有正在進行的通信,2 小時後(加上幾分鐘),客戶端會抱怨“套接字錯誤。對等方重置連接”。
我已經測試了幾天,讓客戶端在收到此警告後打開一個新連接,並且該模式每兩個小時重複一次。我已經查看了客戶端和伺服器上的 cron 作業,但看不到任何可能正在執行此操作的作業。
請注意,套接字伺服器(reactphp)不知道套接字已經關閉。
什麼可能導致連接每兩小時重置一次?是否有可能這樣做的核心配置設置?
TCP 保活。如果連接未使用,則在 2 小時後斷開連接。可以很容易地改變。見http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html
簡而言之,
/proc/sys/net/ipv4/tcp_keepalive_time
可以根據需要從預設的 7200 更改通過暴露的核心可調參數“tcp_keepalive_time”。