Windows 7 / PuTTY가 아주 짧은 정전에도 TCP 연결을 끊는 이유는 무엇입니까?


15

캡 티브 WiFi에 피기 백하는 소규모 로컬 네트워크가 있으며 Windows 7 Professional의 sshOS X -oServerAliveInterval=240및 PuTTY 0.62를 사용 하여 Linode, Hetzner 및 기타 서버에 연결합니다.

PuTTY를 사용하면 ConnectionSending of null packets to keep session active~ 240을 선택 합니다. Enable TCP keepalives (SO_KEEPALIVE option)기본값은입니다.

약 1 분 동안 인터넷이 일시적으로 다운되면 (포로 포털에서 다시 인증해야 함) PuTTY는 거의 항상 열려있는 모든 ssh 세션, 특히 모든 활동이있는 세션, 특히 OS X의 OpenSSH를 잃습니다. 실제로 ssh로 무언가를 입력하려고 시도하더라도 연결이 다시 활성화 될 때까지 60 초 정도 동안 아무런 응답도 보지 않아도 약 1 ~ 2 분 이내에 인터넷이 백업되는 한 세션이 손실되지 않습니다. (따라서 NAT 상태가 항상 유지된다는 것을 알고 있습니다.)

Windows / PuTTY가 양호한 연결을 미리 버리지 않도록 막을 수 있습니까?

SO_KEEPALIVE 또는 그와 같은 일부가 Windows에서 실제로 기본적으로 켜져있는 것처럼 보이며 오래된 연결을 감지하는 시간 초과가 너무 작습니다. 중단 시간이 수백 초에 불과하고 -oServerAliveInterval(times ServerAliveCountMax) 값 미만인 한 OS X가 이러한 일시적인 일시적 중단에 어떻게 면역되는지와 유사하게 몇 초 이상으로 늘리고 싶습니다 .


내가 똑같은 문제를 가지고 있고 공표하기 위해 글을 쓰면 ...이 질문을 볼 것입니다. Windows의 네트워크 드라이버 구현과 관련이 있다고 가정합니다.
allquixotic

나는 지금 10 년 동안 퍼티를 사용해 왔으며 처음부터 이것에 대한 해결책을 찾고 있습니다. 이 문제는 해결되지 않고 완화 할 수 있습니다. 퍼티는 100.00 %의 안정적인 인터넷 연결과 0.00 %의 손실 된 패킷이 필요합니다. 인터넷이 항상 존재하는 새로운 시대의 퍼티 인터넷에서 퍼티는 작업이 중단되기 전에 한 번에 몇 분 동안 만 작동 할 수 있고 퍼티를 다시 시작하고 다시 연결해야하기 때문에 몇 년이지나면서 점점 더 유용하지 않습니다. 그런 다음 중단 한 부분을 선택하고 손상된 파일을 손상시키지 않고 다음 중단 전에 작업을 완료하십시오.
Eric Leschinski

@EricLeschinski, 당신은 잘못되었습니다. 이 질문에 요약 된이 완화는 잘 작동합니다. 매우 오랫동안 IPv4 연결이 중단되지 않았습니다. (전체 IPv4 주소가 변경되거나 수면 등을 수행하는 경우 mosh를 제외하고 더 나은 대안입니다.)
cnst

답변:


8

http://www.chiark.greenend.org.uk/~sgtatham/putty/faq.html#faq-timeout


것 같다 TcpMaxDataRetransmissions(REG_DWORD)이 직접 영향을 미칩니다. 값에 추가 할 수 있습니다 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parametersregedit.exe(당신이 먼저 변경하기 위해 추가 할 수 있도록 키가 기본적으로 없습니다). 설정이 해제되면 — 5입니다. 추가하고 f(15) 이상으로 설정 한 후 재부팅하십시오.


기본값 5는 일시적 및 일시적인 네트워크 중단시 연결을 유지하는 데 매우 부적절한 것 같습니다. 몇 초 안에 시간 초과가 발생합니다. 이 TcpMaxDataRetransmissions키를 레지스트리에 추가 하고 값을 f(15) 로 설정하고 컴퓨터를 재부팅 한 후 sysctl net.inet.ip.forwarding=0PuTTY에 문자를 입력하기 직전에 라우터에서 작업 을 수행 한 후 전달을 다시 활성화 한 후 문자가 다시 표시됩니다. 5 분을 기다린 후 라우터에서 (나는 0x0000000c (12) 값이 중단 동안 패킷을 처음 보내려고 시도한 후 정확히 7 분 동안 연결을 끊는지를 확인하기 위해 테스트했습니다). 재부팅하기 전에 PuTTY는 몇 초 내에 연결 시간을 즉시 초과했습니다. 적어도 Windows 7 Professional에서는 재부팅이 필요했습니다.단순히 레지스트리를 변경해도 기존 연결이나 새로운 연결에는 영향을 미치지 않습니다 ! Windows에서는 아무것도 바뀌지 않습니다!

그 동안 기본 설정 해제 값 (1 초)에서 10 진수 (60 초) KeepAliveInterval로 추가하고 설정할 수도 있지만 TCP keepalives가 활성화되어 있지 않으므로 위와 같이 특정 경우에는 아무런 영향을 미치지 않습니다.600001000

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.