NAT 연결된 두 컴퓨터 간의 직접적인 기본 트래픽 TCP 파일 전송

NAT 연결된 두 컴퓨터 간의 직접적인 기본 트래픽 TCP 파일 전송

목표:

공용 포트가 두 시스템(로컬 정책) 중 하나로 리디렉션될 수 없는 상황에서 두 개의 서로 다른 NAT 뒤에 있는 두 시스템 간에 가능한 가장 빠른 TCP 기반 파일 전송을 수행하고 싶습니다.

근사치:

지금까지 할 수 있는 작업은 다음과 같습니다. 1) 릴레이 역할을 하는 중앙 공용 노드를 사용하여 VPN을 설정하고(OpenVPN), 2) 릴레이 없이 두 시스템 간에 직접 링크를 얻을 수 있도록 메시 VPN을 설정합니다(tinc). 그러면 VPN을 원활하게 사용하여 타사 파일 전송 클라이언트/서버를 통해 데이터 전송을 수행할 수 있습니다(두 시스템이 동일한 LAN에 있는 것처럼).

문제:

두 시스템 사이의 회선은 매우 불안정하며 단일 TCP 스트림은 일반적으로 사용 가능한 대역폭의 아주 작은 부분만 달성합니다. 추가적으로 TCP를 통해 TCP를 캡슐화하면 추가 오버헤드가 발생하고 불안정한 회선에 대해서는 매우 비효율적입니다. 따라서 두 시스템 간에 직접(릴레이 없음) 및 기본 트래픽 링크(VPN 캡슐화 없음)를 설정하고 싶습니다. 자연스러운 선택은 STUN 프레임워크이지만 공개 STUN 서버와 상호 작용하고 NAT 통과를 달성하려면 애플리케이션이 임시 STUN 라이브러리로 컴파일되어야 하고 일반 소켓 대신 STUN 특정 소켓에 의존해야 한다는 결론에 도달했습니다. 이는 기본적으로 STUN 지원 클라이언트/서버 애플리케이션의 모든 새로운 세트를 처음부터 작성해야 함을 의미합니다.

질문:

프로세스를 단순화하기 위해 기본적으로 두 시스템 모두에서 데몬으로 실행되는 일반 STUN 클라이언트를 구현하는 것이 가능한지 궁금합니다. 클라이언트는 공개 STUN 서버에 연결하여 다른 클라이언트에 대한 정보를 등록하고 쿼리합니다. 또한 로컬 모니터링 포트에서 나가는 모든 트래픽을 올바른 IP/포트(사용자 구성 + STUN 서버 정보)로 리디렉션하여 다른 시스템에 도달합니다. 이를 통해 타사 클라이언트/서버 응용 프로그램이 일반 TCP 소켓(아마도 여러 개)을 원활하게 열고 다른 컴퓨터와 연결을 설정할 수 있습니다(마치 동일한 LAN에 있는 것처럼).

답변1

당신은 시도 할 수 있습니다SoftEther VPN- 그것:

IMO는 많은 작업을 절약할 수 있는 아주 좋은 소프트웨어입니다...

관련 정보