두 노드 연결, 중앙 서버를 통한 동적 TCP 연결 터널링

두 노드 연결, 중앙 서버를 통한 동적 TCP 연결 터널링

내가 찾고 있는 것에 대한 내 마음속의 개념 체계:

두 개의 호스트가 주어졌습니다(개일 수 있음)!
둘 다 동적 네트워크(동적 IP)에 있을 수 있습니다!
둘 다 동일한 중앙 서버에 연결하여 서로를 찾습니다! (저의 경우에는 필요합니다! 하나의 클라이언트 호스트도 서버 역할을 할 수 있습니다.)
서버는 브리지 역할을 합니다! 그리고 터널링이 일어나도록 하세요!
첫 번째 호스트가 서버에 연결됩니다! 그리고 두 번째도! 이제 서버가 두 노드(호스트)를 모두 매핑합니다!
그리고 포워딩(터널링)을 하세요!
호스트 1이 호스트 2에 무언가를 보낼 때마다 중앙 서버로 이동합니다! 웹 소켓과 같은 것을 통해! 그런 다음 서버는 이를 두 번째 호스트로 보냅니다! 두 번째 호스트가 응답합니다! 또는 무엇이든! 서버는 두 가지 방법으로 브리징과 터널링을 처리합니다!

여기에 있는 속성:

  • 노드는 동적으로 연결할 수 있습니다! 네트워크나 동적 DNS를 설정하지 않고... teamviewer나 anydesk처럼요!
  • TCP 연결은 터널링되어 전달됩니다!
  • 두 노드가 연결되어 마치 하나의 호스트인 것처럼 작동할 수 있습니다!

재개하려면: pc1, pc2 => 서로의 IP 주소를 알 필요 없이 pc1을 pc2에 연결하십시오! 모두 동적으로! 직접 터널링!

그렇게하는 방법 ?

다양하게 살펴보신 후! 가장 쉬운 방법은 그런 것을 직접 구현하는 것이라고 생각했습니다! 내가 어떻게 할 수 있는지 상상할 수 있듯이!

나한테는 그게 필요했어! AWS EC2에서 Android 에뮬레이터를 실행하는 중! 그리고 adb를 원격 에뮬레이터로 전달하기 위해!

내가 묻는 게 아니야안드로이드 문제에 대한 해결책!하지만 오히려위의 시스템!제가 설명한 내용을 수행하는 것이 이미 있는지 궁금합니다!

그렇지 않으면 시간이 좀 걸릴 것 같아요!

내 마음을 초월한 솔루션을 위해! 중앙 웹소켓 서버를 보고 있어요! 그리고 ws를 통한 TCP 터널링!

그러한 시스템의 이름은 무엇입니까?

그리고 그것을 달성할 수 있는 좋은 방법은 무엇입니까! 당신 은 어떻게 하시겠습니까 ?

내가 찾아본 시스템 외에 다른 방법도 있습니다.

위와 같이 생각할 수 있는 시스템이나 문제의 경우! Android 원격 디버깅과 마찬가지로!

다음과 같이 생각할 수 있습니다.

SSH 역터널링 => 정적 끝이 필요합니다! 내 경우에는 서버를 예로 들어 보겠습니다! 서버 인스턴스에는 SSH가 작동해야 합니다! AWS에서는 작업 에이전트를 설정하는 데 약간의 작업이 필요합니다! 항상 간단하지는 않습니다!

동적 DNS => 포트포워딩이 필요합니다! 일부에게는 설정이 복잡할 수 있습니다! 가능한 보안 위험

언급하실 수 있는 분들을 위해! 위에서 언급한 개념 체계만을 요구하는 것뿐입니다!

내가 개념적으로 언급한 것! 사물과 시스템을 사용하는 것이 가장 쉬울 것입니다! 복잡한 설정이 필요하지 않습니다! 하나의 서버만 구성하면 됩니다! 디자인에 따라 모든 것이 원활하고 역동적으로 진행됩니다! 고급 사용자가 아니더라도! 같은 팀이나 조직 내의 다른 개발자들처럼! Teamviewer 및 anydesk와 마찬가지로 많은 시스템이 이미 작동하고 있습니다!

답변1

문제에 대한 해결책으로 openvpn과 같은 것이 과잉일까요? OpenVPN은 원하는 모든 작업을 수행하지만 네트워크 트래픽도 암호화합니다. 해당 암호화는 구성에 약간의 복잡성을 추가합니다.

관련 정보