有没有不需要端口开放(转发)的P2P VPN解决方案?

有没有不需要端口开放(转发)的P2P VPN解决方案?

最接近一个基于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端口向B发送数据包到1194端口
  • B从1194端口向A发送数据包到1194端口
  • B 的防火墙允许来自 A 的数据包,因为它认为这些数据包是对 B 发送的数据包的回复。
  • A 的防火墙允许来自 B 的数据包,因为它认为这些数据包是对 A 发送的数据包的回复。

许多(但不是全部)防火墙都允许这种 UDP 打洞。但它不适用于 TCP,因为防火墙会更密切地跟踪 TCP 连接的状态,并且您无法轻易欺骗它们。这意味着您提到的 PeerVPN 软件已经过时了,因为您提到它使用 TCP。但 OpenVPN 应该可以工作,它默认使用 UDP(其文档提到 VPN 的 TCP 不是一个好主意,出于不相关的原因)。对于 OpenVPN,使用固定本地端口号的选项是--lport

您还可以尝试使用固定的源端口和目标端口,但每一侧使用不同的端口。

在一侧或两侧存在双 NAT、不尝试保留源端口的 NAT 或比平常更严格的防火墙的情况下,将阻止 UDP 打洞。

或者您可以使用 IPv6 而不是 IPv4。可用 IPv6 地址的绝对数量消除了 NAT 的需要及其所有烦恼!

相关内容