私はこのsocatコマンドを正常に実行していますが、データが転送されない場合、正確に5分後に消滅し、最初の10秒後に10秒ごとに100キープアライブを送信するように設定しているため、理由がわかりません。私がsocatのmanページについて理解したことから、それは1000秒間、つまり16分存続するはずです。また、keepcntを200に設定しようとすると、「setsockopt(7、6、6、{200}、4):Invalid argument」が表示されますが、インターネット上のどこにもその引数の最大値を見つけることができなかったので、ここには非常に明白な何かが欠けているに違いありません。引数でさらに実験しても、タイムアウト値5mnは変更されませんでした。keepcntに低い値を設定し、keepintvlに高い値を設定しても受け入れられますが、目に見える効果はありません。
socat -d -d -d -v pty,link=/tmp/lp1 tcp:192.168.0.5:9100,reuseaddr,keepalive,keepidle=10,keepintvl=10,keepcnt=100
2017/05/31 08:53:01 socat [16065] Iこの製品には、OpenSSLプロジェクトがOpenSSL Toolkitで使用するために開発したソフトウェアが含まれています。(http://www.openssl.org/) 2017/05/31 08:53:01 socat [16065] Iこの製品には、Tim Hudson(tjh@cryptsoft.com)によって作成されたソフトウェアが含まれています 2017/05/31 08:53:01 socat [16065]オプション「symbolic-link」を「/ tmp / lp1」に設定 2017/05/31 08:53:01 socat [16065]私はopenpty({5}、{6}、{"/ dev / pts / 1"} ,,)-> 0 2017/05/31 08:53:01 socat [16065] N PTYは/ dev / pts / 1 2017/05/31 08:53:01 socat [16065]オプション "so-keepalive"を1に設定 2017/05/31 08:53:01 socat [16065]オプション「tcp-keepidle」を10に設定 2017/05/31 08:53:01 socat [16065]オプション「tcp-keepintvl」を10に設定 2017/05/31 08:53:01 socat [16065]オプション "tcp-keepcnt"を100に設定 2017/05/31 08:53:01 socat [16065] AF = 2へのNオープン接続192.168.0.5:9100 2017/05/31 08:53:01 socat [16065]接続ループを開始します 2017/05/31 08:53:01 socat [16065] Iソケット(2、1、6)-> 7 2017/05/31 08:53:01 socat [16065] NがローカルアドレスAF = 2 192.168.0.4:56482から正常に接続されました 2017/05/31 08:53:01 socat [16065]すべてのsockアドレスを解決して開きました 2017/05/31 08:53:01 socat [16065] N FD [5,5]および[7,7]によるデータ転送ループの開始 2017/05/31 08:58:01 socat [16065] Nソケット2(fd 7)はEOFにあります 2017/05/31 08:58:02 socat [16065]ポーリングがタイムアウトした(0.500000秒以内にデータがない) 2017/05/31 08:58:02 socat [16065]終了(5) 2017/05/31 08:58:02 socat [16065]シャットダウンしました(7、2) 2017/05/31 08:58:02 socat [16065] Nはステータス0で終了します
一部のNATルーターがアクティビティではなく特定の時間後に切断された
—
Ferrybig