이 socat 명령이 제대로 실행 중이지만 데이터가 전송되지 않으면 정확히 5 분 후에 죽어 가고 처음 10 초 후에 10 초마다 100 개의 keepalive를 보내도록 설정 한 이유를 이해할 수 없습니다. . socat 매뉴얼 페이지를 이해 한 결과 16 분 동안 1000 년대 동안 살아 있어야합니다. 또한 keepcnt를 200으로 설정하려고하면 "setsockopt (7, 6, 6, {200}, 4) : Invalid argument"가 표시되지만 인터넷의 어느 곳에서도 해당 인수의 최대 값을 찾을 수 없으므로 나는 여기에 매우 명백한 것을 놓치고 있어야합니다. 인수를 더 실험해도 시간 초과 값이 5 백만으로 변경되지 않았습니다. 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 Project에서 개발 한 소프트웨어가 포함되어 있습니다. (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] I 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에 대한 N 개방 연결 = 2 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] 모든 양말 주소를 확인하고 열었습니다. 2017/05/31 08:53:01 socat [16065] FD를 가진 N 시작 데이터 전송 루프 [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] I 종료 (7, 2) 2017/05/31 08:58:02 socat [16065] N 상태 0으로 종료
활동 대신 특정 시간이 지나면 일부 NAT 라우터 연결이 끊어짐
—
Ferrybig