通过 Internet 从 NAT 后面的另一台主机连接到 NAT 后面的一台主机上的服务

通过 Internet 从 NAT 后面的另一台主机连接到 NAT 后面的一台主机上的服务

假设您有一个主机(玉簪) 正在运行 TCP 服务(例如端口 5901 上的 VNC 服务器)。您想从另一台主机访问此服务(主机) 运行 VNC 客户端。两台主机都连接到 Internet,但有一些限制:

1.玉簪可以通过互联网使用其任意 TCP 端口进行访问

VNC 客户端主机连接到玉簪:5091直接地。

2.玉簪只能通过 SSH 从互联网访问

主机

ssh -L 5901:localhost:5901 usera@hosta

VNC 客户端主机连接到本地主机:5901

3.玉簪无法从互联网访问(例如,它位于 CGN/CGNAT 后面)。但是,主机可以通过互联网访问

玉簪

ssh -R 5901:localhost:5901 userb@hostb

VNC 客户端主机连接到本地主机:5901

4.玉簪主机无法从互联网访问。它们位于 CGN/CGNAT 之后;它们只能创建出站连接

我们可以使用另一个主机(主机) 可以通过 Internet 使用 ssh 访问。

玉簪

ssh -R 5555:localhost:5901 userc@hostc

主机

ssh -L 5901:localhost:5555 userc@hostc

VNC 客户端主机连接到本地主机:5901

我有一个类似上述第四种情况的情况,但我不想使用第三个主机(主机),主要是因为性能和成本原因。

我有哪些替代(更便宜[=免费]且性能更好)的选择?


注1:我已经测试并确定,尽管TCP 打洞不是对我来说,UDP 打洞 可以工作。但是,我需要一个工具,该工具可以通过 UDP 建立面向连接(类似于 TCP)的会话,并利用 UDP 打洞技术。

笔记2:由于无法使用互联网上的任何“UDP 漏洞”程序,我决定自己编写一个。我仍在改进它,但就目前而言,它运行得相当好。你可以找到它这里

答案1

Tor 和 tor 隐藏服务是一种选择。从技术上讲,它仍然假设使用某些第三台主机,但在我们的例子中,这将是多个此类主机的链:hosta <-> hostc1 <-> hostc2 ... <-> hostb

它不是那么快,但它是免费的、开源的和安全的。

此外,类似的选项将是任何其他覆盖网络。我首先想到的是:I2P、FreeNet、GNUnet

相关内容