创建TCP反向隧道的最佳方法


0

那么,这是网络设置:

                                                    +
    +--------+     +--------+     +--------+        |      +--------+     +--------+     +--------+
    | Client |     | Client |     | Client |        |      | Client |     | Client |     | Client |
    +--------+     +--------+     +--------+        |      +--------+     +--------+     +--------+
    |              |              |                 |      |              |              |
    |              |              |                 |      |              |              |
    |              v              |                 |      |              v              |
    +----------->+------------+<--+                 |      +----------->+------------+<--+
                 |VPS Instance|                     |                   |VPS Instance|
    +------------+------------+                     |                   +------------+
    |                         ^                     |                                ^
    |                         |                     |                                |
    |                         |              +---------->                            |
    |                         |              +---------->                            |
    |                         |              +---------->         Now a persistant two way connection
    |                     Initial Conn.             |                                |
    |                         |                     |               for tunneling client connections back
    |                         |                     |                                |
    |         For setting up a|tunnel/reverse proxy.|               to the home server.
    |                         |                     |                                |
    |                         |                     |                                |
HS Inaccessibible             |                     |                                |
    |                         |                     |                                |
    |                         |                     |                                |
    v      ISP Firewall/NAT   |                     |             ISP Firewall/NAT   |
 +----------------------------|------+              |   +----------------------------|------+
 |                            |      |              |   |                            |      |
 |          +-------------+---+      |              |   |          +-------------+<--+      |
 |          | Home Server |          |              |   |          | Home Server |          |
 |          +-------------+          |              |   |          +-------------+          |
 +-----------------------------------+              +   +-----------------------------------+

它基本上也解释了我想要实现的目标。我有一个无法访问的服务器,我希望通过隧道传输到可访问的服务器来访问它。由于其中一个服务器不可访问,隧道不能被动;它必须是由不可访问的一个启动的活动连接。

如何才能做到这一点?有没有办法做到这一点 iptables 和一些隧道接口的组合?

一些基本的搜索引导我反向SSH隧道,隧道接口(诚然,我找不到可访问的文档,而不是高级概述,这是 高级)和VPN软件。

  • 反向SSH隧道似乎是不必要的,因为它不需要保护,并且服务上运行的进程已经相当耗费资源,我不想用加密和压缩来加重它。

  • 隧道接口:我真的找不到一个足够容易访问和低级别的文档,这些文档具有我想要的形状,同时我会理解它。

  • VPN软件暴露整个网络(对吗?),而我真的只想转发选择端口。而且,坦率地说,它似乎在大多数时候都很复杂。

现在,我实际上找到了一个程序来做到这一点( PortFusion ),我只是没有机会测试它的性能。此外,我觉得在Linux上应该有一种本地方式来做这件事,我似乎无法找到它的结果。

Answers:


0

我做到了这一点。在VPS上安装openvpn服务器。将主页框配置为客户端。 OpenVPN将允许客户端到客户端的连接。

您可以更改VPS另一侧的静态路由,以便将流量发送到您的主机箱,或者在其他三台计算机上安装VPN客户端。第一个例子更难设置但更容易维护。


我接受了这个,但我仍然认为应该有更好的方法......
Logan

使用VPN解决方案可以免除担心打开特定端口的麻烦。我家(约20个),我的办公室(另外5个),Linode的两个数据中心(另外两个)和DigitalOcean的一个数据中心(另外10个)有Windows和Linux主机。许多应用程序彼此交谈。我会通过端口转发方法去疯狂。使用OpenVPN,每个盒子都在一个无缝的内部网络上。
Xavier J
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.