我正在寻找一种“应用程序隧道”解决方案,其行为类似于 ssl 或 ssh 隧道,但通过 UDP。作为客户端之一,OpenVPN 提供了一个网络接口。我希望客户端只监听本地端口并通过它建立的隧道转发所有流量。
注意:我使用术语应用程序隧道来描述 ssh 隧道的行为方式与 OpenVPN 的行为方式。使用 ssh 隧道,网络应用程序连接到 localhost:12345。使用 OpenVPN,网络应用程序与通过 tun 接口访问的远程 IP 进行通信。OpenVPN 需要内核支持 tun/tap 接口,应用隧道模型不需要。如果有人知道正确的术语,请在评论中告诉我。
OpenVPN 可用于站点到站点 VPN 配置。 pfSense有我见过的最简单的内置实现;一端的 pfSense 框充当“服务器”,另一端被配置为“客户端”,但我将它们放在“qoutes”中,因为哪一端对于网络上的其他主机来说并不重要结尾。
除非另有配置,否则 OpenVPN 默认使用 UDP 端口 (1194)。
如果您正在寻找没有端口转发、中间服务器、欺骗或 DNS 黑客的 2 路 nat 遍历,您可以查看基于 udptunnel 的 pwnat 。我还没有弄乱它,但它看起来很有趣。
我认为您正在寻找Datagram Transport Layer Security。它本质上是 SSL/TLS,但稍作修改,以便它可以通过 UDP 工作。这与 OpenVPN 用于加密的东西大致相同,只是 OpenVPN 早于 DTLS,因此实施细节可能有所不同,但并没有太大差异。
幸运的是,OpenSSL 等产品的新版本已经支持 DTLS,因此已经为您完成了艰苦的工作。