如何在防火墙后面的两台服务器之间进行 SSH(无需第三方服务器)

如何在防火墙后面的两台服务器之间进行 SSH(无需第三方服务器)

关于这个主题和 SSH 隧道有很多帖子,但是有些帖子接近满足此要求,但遗漏了一两个步骤,而有些帖子由于术语不明确而难以理解。本文旨在提供一个框架,消除步骤的歧义。

问题:我们有一台服务器 (RPC-2),它位于远程网络内,位于连接到互联网的远程路由器 (RR) 后面。网络上的本地 PC LCP-1 位于本地路由器 (LR) 后面。我们可以访问 LR 上的端口转发设置。

我们可以在 LCP-1 和 RPC-2 上运行命令,并更改 LR 上的设置。要使 SSH 从 RPC-2 启动并连接到 LPC-1 上的 SSH,需要执行哪些步骤?

在此处输入图片描述

Here is what I believe the steps to be run in this order:
    1.  RPC-2> ssh -R 12345:localhost:22 42.48.128.49
    2.  On LR> Port forward 12345 to 192.168.1.16 port 12345
    3.  LPC-1> ssh -p 12345 localhost

这对我们来说还没有效果。任何建议都值得赞赏。

答案1

为了允许从 RPC-2 到 LPC-1 的 SSH 连接,您需要在 LR 上设置从外部任意端口到 LPC-1 的 SSH 端口的端口转发。然后,您可以从 RPC-2 使用 SSH 连接到该端口,然后您将到达 LPC-1。因此:

1.在 LR 上> 将 12345 端口转发到 192.168.1.16 端口22

2.RPC-2> ssh-p 1234542.48.128.49

如果你想允许 SSH 连接对面的方向(从 LPC-1 到 RPC-2),正如您提议的步骤似乎所暗示的那样,您可以通过第一个 SSH 连接进行隧道传输。因此:

1.在 LR 上> 将 12345 端口转发到 192.168.1.16 端口22

2.RPC-2> ssh-p 12345-R54321:本地主机:22 42.48.128.49

3.LPC-1> ssh -p54321本地主机

注意:我将您的两个端口号中的一个从12345更改为54321,以明确这两个是独立的单独端口。

相关内容