하나의 공용 SSH 서버를 사용하여 공용 IP 없이 A에서 C로 직접 SSH 연결 설정

하나의 공용 SSH 서버를 사용하여 공용 IP 없이 A에서 C로 직접 SSH 연결 설정

다음 SSH 서버/클라이언트를 사용할 수 있습니다.

A - 공개 IP 없음

B - 공개 IP

C - 공개 IP 없음

다음과 같이 A에서 C로 SSH 연결을 설정할 수 있다는 것을 알고 있습니다.

1) C를 B에 연결합니다. C에서 수행:

ssh -R 10100:localhost:22 B_IP

2) 머신 A에서 SSH 에이전트를 사용할 수 있도록 B 후크를 사용하여 A에서 C로 포트 전달을 설정합니다.

ssh -L 5000:localhost:10100 B_IP

3) 이제 SSH 키를 사용하여 A에서 C에 "직접" 액세스할 수 있습니다.

ssh -p 5000 localhost

... 내 요점은 다음과 같습니다.

어떻게든 A에서 C로 새로운 "순수한" 연결을 설정할 수 있습니까?그러면 B 머신이 다운된 후에도 작업을 계속할 수 있나요?

나는 이 두 컴퓨터가 이미 연결을 공유하고 있다는 것을 깨닫는 한 가능할 것이라고 생각합니다. 아니면 제가 틀렸습니까?

시간과 아이디어를 내주셔서 감사합니다 :)

답변1

  • 그만큼보통의방법은 A 또는 C 라우터에 "NAT 포트 전달"을 설정하는 것입니다. (어떻게 하는지는 라우터에 따라 다르지만 곳곳에 지침이 있습니다.) 그렇게 하면 C-router의 공용 주소 + "전달된" 포트에 연결할 수 있으며 연결은 C로 연결됩니다.

    (참고: NAT 포트 전달과 SSH 포트 전달은 유사합니다.그러나 뚜렷하다망치나 드라이버 같은 것. 혼동하지 마십시오.)

  • 두 라우터 모두에 대한 관리 액세스 권한이 없는 경우 많은 게임 및 P2P 프로그램처럼 UPnP 또는 NAT-PMP를 사용하여 포트 전달 규칙을 설정할 수 있습니다. 이를 위해 upnpc또는 natpmpc명령을 사용하십시오.

  • 위의 방법 중 어느 것도 작동하지 않으면 어떤 형태로든 필요합니다.NAT 홀 펀칭. (또한 참조TCP그리고ICMP구멍을 뚫는 물품.)

    불행히도 다양한 분야에서 널리 사용되는 반면특정한프로그램이 많지 않은 것 같아요일반적인하지만 TCP용 도구차우낫작동할 수 있습니다.

답변2

라우터에서 어떤 종류의 포트 전달을 수행할 수 없다면 이는 아마도 불가능할 것입니다. 그러나 이 경우에는 컴퓨터 C가 전혀 필요하지 않습니다.

문제는 귀하의 예에서 A -> C에서 직접 이동하지 않고 패킷이 모두 여전히 B를 통과한다는 것입니다.

공용 주소가 있는 다른 컴퓨터가 있는 경우 별 지형에서 VPN 설정을 설정하고 VPN 간의 라우팅을 사용하여 공용 호스트 중 하나가 넘어져도 계속 작동할 수 있는 가상 네트워크를 만들 수 있습니다. . 저는 OpenVPN을 사용하여 이 작업을 수행했습니다. 몇 가지 문제가 있습니다. 한 가지 중요한 문제는 역방향 경로 필터링을 비활성화하는 것입니다.

답변3

이를 수행하는 한 가지 방법은 P2P VPN(호스트 중 하나가 고정 IP 주소나 이를 가리키는 고정 도메인 이름을 가질 필요가 없는 VPN)을 사용하는 것입니다. 아래에 언급된 다른 아이디어는 실제 VPN은 아니지만 일종의 프로토콜을 통해 P2P 연결을 설정하는 소프트웨어입니다. 다음은 몇 가지 옵션입니다.

기반톡스챗회로망:

저는 개인적으로 두 가지 솔루션을 모두 시도했지만 제 업무(대기업 스타일) 네트워크에 의해 차단되었습니다.

  • toxvpn- 현재로서는 잘 관리되지 않는 것 같지만 제대로 작동할 것입니다.
  • 툰톡스- 비슷한 아이디어입니다. 실제 VPN은 아니지만 Tox 네트워크의 두 시스템 간에 연결을 만들고 SSH 포트를 전달할 수 있습니다. SSH에 대한 예는 README에서 확인할 수 있습니다.
무료가 아닌 공개 채팅 서비스 기반

개인적으로 이들 중 어떤 것도 시도해 본 적이 없으며 효과가 있을지 의심스럽습니다. 하지만 시도해 볼 가치가 있을 것입니다.

  • LAN 파티 VPN- 디스코드를 기반으로 합니다. 현재로서는 잘 관리되지 않은 것 같습니다. 또한 README에는 많은 예제가 포함되어 있지 않지만 확인해 볼 가치가 있을 것입니다.
  • 로보티토- 별로 관리가 잘 되어 있지 않은 것 같습니다. 또한 설치가 어려운 것 같습니다 - 사용구글 보이스(이전 GTalk).
공용 서버 기반 VPN(타인이 관리)

개인적인 경험: 시도했지만 n2n회사(대기업 스타일) 네트워크에 의해 차단되었습니다.

  • n2n- "를 사용합니다.슈퍼노드"에 의해 유지 관리됩니다.ntopn2n팀 - 의 README에 따라 작동하고 있습니다 supernode.ntop.org:7777(슈퍼노드도 무료 소프트웨어이지만 이를 실행하려면 다시 공개적으로 액세스할 수 있는 서버가 필요합니다).
  • 누벨라- , 와 비슷한 개념 n2n이지만 대신슈퍼노드그것은 a라고 불린다등대. 모든 사람이 사용할 수 있는 공개 등대를 제공하지는 않지만 실제로는 dnclient에 설명된 대로 공개적으로 사용 가능한 VPS에서 실행해야 합니다.그들의 문서. 따라서 귀하의 요구 사항에 대한 답변은 아니지만 여전히 언급할 가치가 있다고 생각했습니다.
유료 구독이 필요한 기타 VPN 솔루션.

대부분의 상업용 VPN 서비스와는 달리 고급 사용자를 대상으로 하는 서비스 중 소수만이 VPN의 서브넷을 통해 두 사용자가 서로 통신할 수 있도록 허용합니다. 이 기능을 제공할 수 있는 다른 공급자가 있을 가능성이 높습니다. 다음은 하나입니다.

커뮤니티가 유지하는 네트워크 기반

과도한 NAT 환경에서도 방화벽이 너무 제한적이지 않다면(내 경우에는 그렇지 않음) 다음 중 하나를 수행할 수 있습니다(VPN 아님).

  • 토르- 노력하다이 가이드. 기본적으로 .onion전 세계 Tor 사용자가 액세스할 수 있는 도메인(tor 서비스)을 만드는 것입니다 .
  • i2pd- 노력하다이 가이드내가 추천하는 클라이언트 i2dp에 대한 지침도 있습니다 .i2p
최후의 수단 솔루션

가장 성가신 방화벽, NAT 및 기타 네트워크 제한 사항이 적용되더라도 훌륭한 기능을 사용할 수 있습니다.https://tmate.io/무료(무료 맥주 및 자유 연설과 마찬가지로) 소프트웨어 및 서비스. 그러나 몇 가지 단점이 있습니다.

  • 대화형 명령 없음(참조문제 #179).
  • 지원 없음 scp.
  • tmux포크의 기반이 되는 버전은 오늘 현재이고 2.6.0, 현재 tmux 최신 버전은 입니다 . 즉, 로 작업하려면 사소한 조정이 필요하다는 3.3a의미입니다 (참조).~/.tmux.conf~/.tmate.conf예를 들어 내 개인 도트 파일에서).

tmate의 관리자가 이를 명시적으로 언급하지는 않지만 언급된 첫 번째 두 가지 단점은 의도적인 제한이라고 생각합니다. 사람들이 이러한 기능을 남용하여 의 tmate.io서버를 통해 많은 양의 데이터를 전송할 수 있기 때문입니다. 따라서 이는 tmate실제로 쉘을 위한 일종의 "원격 데스크톱"이 됩니다. 두 컴퓨터 간에 파일을 전송하려면 다른 방법을 찾아야 합니다(고려동기화 중).

전체적으로 tmate의 사용 용이성과 놀라운 성능으로 인해 최고의 솔루션 IMO가 되었습니다. 결합동기화 중파일 전송에 있어서는 이것이 최고의 솔루션이자 가장 안정적인 솔루션이라고 생각합니다.

관련 정보