하나에 가장 가까운VPN P2P 기반내가 찾은 해결책은피어 투 피어 VPN: 설치가 정말 쉽지만 필요함항구를 열다node
(기본적으로 7000 TCP) 이를 실행하는 하나의 머신(일명)에서.
일부 Linux 장치가 자동으로 연결되도록 준비하고 싶습니다.특정 VPN 네트워크, 예를 들어 일부 cron 작업을 사용하여언제 어디서나 원격으로 찾아보세요그들은. 라우터에 액세스할 수 없으므로포트를 열 수 없어요.
가장 좋은 해결책은 다음과 같은 도구를 사용하는 것입니다.
# p2pvpn --connect --network MyNetworkName
$ ifconfig
eth0 Link encap:Ethernet direcciónHW 00:23:54:7f:f2:4f
Direc. inet:192.168.11.113 Difus.:192.168.11.255 Másc:255.255.255.0
tun0 Link encap:UNSPEC direcciónHW 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
Direc. inet:10.8.0.6 P-t-P:10.8.0.5 Másc:255.255.255.255
tun0
새로 생성된 내용을 참고하세요.가상 인터페이스.
그런 게 있나요?
명령줄선호되는 솔루션.
다중 플랫폼선호되는 솔루션.
추가 사항: - 유사한 솔루션(여전히 포트를 열어야 함)은 유사한 절차입니다.오픈VPN(설정하는 데 거의 머리가 아프지만 훌륭하게 작동합니다).
답변1
이것~해야 한다아직 시도하지는 않았지만 소스와 대상 모두에 UDP 및 포트 번호를 사용하는 경우 가능합니다. 예를 들어:
- A는 포트 1194에서 포트 1194로 B에게 데이터 패킷을 보냅니다.
- B는 포트 1194에서 포트 1194로 A에 데이터 패킷을 보냅니다.
- B의 방화벽은 A로부터의 패킷이 B가 보낸 패킷에 대한 응답이라고 생각하기 때문에 이를 허용합니다.
- A의 방화벽은 B의 패킷이 A가 보낸 패킷에 대한 응답이라고 생각하기 때문에 이를 허용합니다.
전부는 아니지만 많은 방화벽이 이러한 UDP 홀 펀칭을 허용합니다. 그러나 방화벽은 TCP 연결 상태를 더 자세히 추적하고 쉽게 스푸핑할 수 없기 때문에 TCP에서는 작동하지 않습니다. 이는 귀하가 언급한 PeerVPN 소프트웨어가 TCP를 사용한다고 언급한 이후로 오래되었음을 의미합니다. 그러나 기본적으로 UDP를 사용하는 OpenVPN은 작동해야 합니다(문서에는 VPN용 TCP가 관련 없는 이유로 나쁜 생각이라고 언급되어 있습니다). OpenVPN의 경우 고정된 로컬 포트 번호를 사용하는 옵션이 있습니다 --lport
.
고정된 소스 및 대상 포트를 사용해 볼 수도 있지만 양쪽에서 서로 다른 포트를 사용해 볼 수도 있습니다.
UDP 홀 펀칭은 한쪽 또는 양쪽에 이중 NAT가 있거나 소스 포트를 보존하려고 시도하지 않는 NAT 또는 일반적인 방화벽보다 더 엄격한 경우 방지됩니다.
또는 IPv4 대신 IPv6을 사용할 수 있습니다. 사용 가능한 IPv6 주소의 수가 엄청나게 많기 때문에 NAT와 그에 따른 모든 걱정이 필요하지 않습니다!