是否可以通过类似 BitTorrent 的技术建立点对点 SSH 连接?

cer*_*cem 6 networking ssh bittorrent

正如我们讨论我的问题时,问题是这样的:

我们可以通过UDP打孔技术建立TCP连接吗?

-- 原始问题/历史 --

我正在使用 OpenSSH 的反向隧道功能来连接防火墙后面的 SSH 服务器。

server-behind-firewall现在我可以通过发出 连接机器ssh me@my-known-server -p 12345

这样,my-laptop的所有流量都会路由到my-known-server,并且my-known-server正在将此流量路由到server-behind-firewall机器。我认为这是低效的。

我正在寻找一种技术,它将提供相同的功能,但使用 BitTorrent 的技术(即,对等点创建到my-known-server(跟踪器)的 UDP 连接并直接向彼此发送数据包)

有什么办法可以实现这个功能吗?

编辑:

Bittorrent 连接是通过“UDP 打洞”技术创建的。

编辑2:

显然我正在寻找的是通过“Hamachi”之类使用 NAT 穿越技术的软件建立 SSH 连接。

gho*_*oti 1

为了回答你的问题,我很确定没有这样的功能,首先因为 SSH 是基于 TCP 的协议而不是 UDP。

到达网关后面的主机的标准方法是使用文件ProxyCommand中的选项~/.ssh/config

隧道在其他地方进行了解释,但本质是,您基本上可以通过代理“跳跃”您的 SSH,只需指定一个命令,该命令将打开到远程主机的 TCP:22 连接,该远程主机可以充当下一个 SSH 跳跃。(尽管在许多情况下您只需要一个代理。)

例如,使用您在问题中提到的主机名,您可以将以下内容添加到 的my-laptop.ssh/config 文件中:

host server-behind-firewall
    ProxyCommand ssh -xaqW%h:22 my-known-server
Run Code Online (Sandbox Code Playgroud)

然后,您通过 ssh 连接到server-behind-firewall,笔记本电脑上的 ssh 客户端会建立一个连接,my-known-server该连接会与受防火墙保护的服务器建立连接,并将流量代理返回给您。这意味着您有一个 SSH 帐户my-known-server。虽然代理可能不是管理数据的最有效方式,但这是安全的、有据可查的,并且是建立此类连接的公认方法。

只有当机器实际上可以直接相互连接时,“对等点[创建] UDP 连接......并直接相互[发送]数据包”的想法才有效。由于无法直接访问您的受防火墙保护的计算机,因此唯一的访问方法是通过其网关上的代理。

如果您的防火墙服务器位于使用 NAT 访问外部世界的网络上,则该服务器可能会与某些外部位置建立自己的独立连接以绕过防火墙。但这样做要小心。网络管理员非常重视防火墙绕过策略。为了保持对事物的访问,您应该网络管理员合作寻找解决方案,而不是围绕它们。