Jeg tror, du skal konfigurere dit operativsystem i stedet for. Ændring af keepalive-parametre efter programmer er ikke bredt understøttet endnu. Dette skulle hjælpe dig:
Brug af TCP keepalive til at opdage netværksfejl
Også dine parametre er dårligt valgt. Hvis tcp_keepalives_count=1
virkede, så vil selv en tabt keepalive-pakke afbryde din forbindelse. Og enkelte pakker går ofte tabt. Jeg ville bruge følgende i /etc/sysctl.conf
på MacOSX/FreeBSD:
net.inet.tcp.keepidle =60000
net.inet.tcp.keepintvl =10000
OS vil derefter afbryde forbindelser i højst 140 sekunder (60 sekunders inaktiv + 8 keepalive-pakker i intervaller på 10 sekunder) efter at have mistet forbindelsen.