새로운 버전

새로운 버전

새로운 버전

그래서 더 명확하게 하기 위해 제가 가지고 있는 것들의 목록을 작성하겠습니다.

  • Plex 미디어 서버와 Kitty를 실행하는 Windows 10의 PC
  • Debian 9 Stretch에서 실행되는 OVH의 VPS

내가 원하는 것 :

  • 로컬 네트워크 외부 어디에서나 내 서버에 액세스하고 싶습니다.

어떻게 :

  • vps를 내 Plex 서버에 대한 터널로 사용하여

문제 :

  • 구독이 있는 ISP 측 4G/LTE 라우터의 동적 IP Double Nat
  • 포트포워딩 불가

문제 :

  • PC(Windows 10)에서 IP가 "매일" 변경되면 키티를 통한 vps 연결이 중단됩니다.

문제에 대한 수동 솔루션:

  • 포트를 열어둔 프로세스의 PID를 찾아 종료합니다.

내가 필요한 것 :

  • 자동으로 처리하거나 문제에 대한 다른 해결책을 찾으려면

이해를 돕기 위한 사진

키티 로그에서 IP 변경 후

문제를 해결하는 수동 방법

Q&A

포주 주스 IT: 감사합니다 ^^ 어쨌든 no-ip 도구도 제게는 꽤 맞는 것 같았습니다. 그러나 isp에는 이중 NAT가 있고 기본적으로 내 뒤에 있는 두 번째 "라우터"에서 하나의 No-ip 소프트를 실행해야 합니다. 불가능하다는 것에 동의하실 겁니다 ^^. 내 문제는 정말 간단하지만 실제로는 이 문제를 해결하는 방법이 간단한 것 같아서 짜증스럽습니다. 하지만 올바른 길을 찾을 수 없습니다 :/

ps: 네, 걱정하지 마세요. 이전 버전은 제가 원했던 것의 큰 초안입니다 ^^ 새 버전에는 저를 도와주셔야 할 모든 것이 포함되어 있는 것 같아요 :/ ^^

Old version

내 PC에서 VPS로 PLEX의 미디어 서버를 터널링하는 데 사용하는 OVH의 VPS가 있습니다. 모두 훌륭하고 작동합니다. 단…

내 IP는 동적이며 이중 NAT입니다. 내 외부 IP는 하루에 한 번 이상 자주 변경되고 갱신됩니다. 따라서 Kitty(PuTTY의 포크)를 통한 VPS 연결이 끊어졌습니다. 연결 중단 후 자동 재연결로 해결했습니다. 어쨌든 이 작업이 완료되면 KiTTY에서 지정한 포트 터널링이 실패하게 됩니다. 이전 연결이 제대로 닫히지 않았기 때문입니다.

서버측에서는 Debian 9 Stretch입니다.

나는 연결의 PID를 찾아서 죽이는 해결책을 찾았습니다.수동으로. 내 문제가 있습니다. 스크립트를 사용하여 이를 자동화하고 싶습니다. 여기서 나는 누구든지 도움을 줄 수 있기를 바라며 여러분의 도움을 요청합니다.

추신: 제 스크립팅 기술은 너무 낮아서 최대한 명확하게 설명할 수 있습니다. 감사합니다.


일부 댓글에 대한 답변

스캇– 내 IP 주소가 변경되면 연결이 중단됩니다. 그러면 KiTTY 덕분에 다시 연결됩니다. 명령줄에 을 입력하면 netstat -lnp모든 연결이 활성화되어 있음이 표시됩니다. 지정된 포트(이 경우 32400)와 연결된 PID를 찾은 PID다음 kill. 예를 들어 마지막으로 PID는 다음과 같습니다 12007.

카밀 마시오로프스키– 나는 이것을 시도했다 (참조다른 질문에 대한 이 답변):

파일 을 편집하여 영구적으로 /etc/sysctl.conf다음을 추가하십시오.

net.ipv4.tcp_keepalive_time=300

그리고

sshd서버에서 재구성할 수만 있다면 이것이 가장 우아한 방법이라고 생각합니다. 다음과 같은 줄을 포함하도록 합니다 sshd_config.

ClientAliveCountMax 3
ClientAliveInterval 15

그러나 연결 충돌을 시뮬레이션할 때 그 중 어느 것도 작동하지 않으며 다시 연결되고 포트는 여전히 사용 중입니다.

또한 아래의 솔루션

클라이언트로 돌아가기

내 상황에 맞게 만들 수 있어야만 나를 위해 일하는 것처럼 보일 것입니다.

"하지만 연결 충돌을 시뮬레이션했을 때 두 가지 모두 나에게 적합하지 않았습니다. 다시 연결되고 포트는 여전히 사용 중입니다." – sshd를 다시 시작하셨나요? 즉시 다시 연결을 시도하셨나요? 이러한 설정을 사용하면 포트가 사용 가능해질 때까지 최대 1분을 기다려야 합니다. – 카밀 마시오로프스키

예, 다음 명령을 사용하여 SSHD를 다시 시작했습니다.

/etc/init.d/ssh 재시작

sshd를 다시 시작하는 것이 무엇인지 모르기 때문에 안전합니다.

서비스 sshd 다시 시작

재연결은 자동으로 즉시 이루어집니다. 이제 이 프로세스를 지연시킬 수 있는 방법을 찾고 있습니다. 방법을 알고 계시다면 다음 사항을 알려주시면 감사하겠습니다.

net.ipv4.tcp_keepalive_time=300

300초가 아닌 10초로 설정했는데 그래도 괜찮습니다.

또한 한 번에 두 세션을 로드하는 방법에 대한 두 번째 의견을 듣지 못했습니다. 두 번째 세션으로 수정하는 것이 목표입니다. 이제 자동화된 실제 세션 프로세스를 다시 시작하는 것입니다. 다시 열 수 있도록 포트를 자유롭게 설정해야 합니다. 새로운 채권으로.

설명: 위의 내 의견에는 서버에서 자신을 잠그는 것을 방지하는 일반적인 방법이 있습니다. sshd_config를 심각하게 손상시키면 새로 ssh를 수행할 수 없습니다. 그렇기 때문에 항상 새로운 연결로 테스트해야 하며, 이전 연결을 사용하면 무슨 일이 있어도 변경 사항을 되돌릴 수 있습니다. 일반적으로 구문상 유효한 sshd_config가 있어도 연결이 불가능할 수 있습니다. 따라서 오류 없이 sshd를 다시 시작한다고 해서 반드시 작동한다는 의미는 아닙니다. – 카밀 마시오로프스키

결국 이 프로세스를 자동화하고 짧은 시간 후에 포트를 해제하고 스크립트나 다른 것을 사용하여 키티의 재연결을 지연시키는 방법에 대한 내 솔루션은 무엇입니까? 다시 한번 감사드립니다. 시간 내주셔서 감사합니다

"재연결은 자동화되어 즉시 이루어집니다. 지금은 이 프로세스를 지연시킬 수 있는 방법을 찾고 있습니다." - KiTTY가 지체 없이 재연결을 시도한다는 뜻이죠, 그렇죠? 클라이언트 측 Linux에서는 autossh 또는 ssh -o ExitOnForwardFailure=yes …를 반복하여 문제를 쉽게 해결할 수 있습니다(이 답변 참조). 나는 Cygwin의 SSH가 이 옵션을 지원해야 한다고 생각합니다. 서버 측 스크립트를 고집한다면 가능하다고 생각합니다. 하지만 스크립트는 이전 터널이 아닌 경우 터널을 종료해서는 안 됩니다. 지금은 이렇게 번거로운 솔루션을 제공할 시간이 없습니다. 아마 12시간 안에. – 카밀 마시오로프스키

알겠습니다. 감사합니다. 어쨌든 12시간 후에 뵙겠습니다. 그때까지 다른 해결 방법을 모두 시도해 보겠습니다. 어떻게 진행되는지 알려 드리겠습니다. 다시 한 번 감사드립니다.

관련 정보