这个标题有点拗口,但它所讲的也是我们应该知道的一个很方便的技巧。如果您在多个站点上管理多个Linux系统,您通常会发现网络使用不同的NAT和防火墙设置。这意味着,如果您需要远程访问路由器背后的系统,那么您需要通过配置端口转发和防火墙规则来远程访问您将要访问的IP范围。如果您的ISP不提供静态IP地址,或者您需要在外出时连接移动设备,那么这些对您来说就会变得更加困难。

将VPS作为跳转盒,使用反向SSH通道访问NAT后面的服务器
一个解决方案是使用VPS作为跳转框。这仅仅需要一个低规格的并且上面安装了一个裸Linux的VPS。您只需使用SSH,让它连接到VPS,然后SSH从那里连接到您管理的其他系统。通过这种方式,您只需要为VPS的单个IP地址创建防火墙和端口转发规则。因此,当您需要管理的系统在一个不可能设置端口转发和防火墙更改的网络上时,您会做些什么呢?这就是反向SSH通道的用武之地。
SSH通道
那么它是如何工作的呢?在设置一个反向通道时,您希望连接到的系统上的SSH客户机与一个中介系统连接——在本例中是我们的VPS——并监听该系统上的一个端口以用来连接。然后,您可以直接连接到VPS,通过连接到VPS上的端口来连接到您的远程系统,或者直接连接到远程系统的反向通道。
现在让我们看看如何将其付诸实践。首先要做的是建立一个在NAT/防火墙后面的系统的访问权-创建一个到您的VPS的反向的SSH通道。在本例中,我们将使用域名vps.example.com,您需要用您将要使用的VPS的地址代替这个域名:
ssh -R 22222:localhost:22 [email protected]
促成它工作的是-R flag,它需要三个设置:
# 1.第一个是连接到的系统上的端口,在这个端口上它应该监听连接。在本例中,我们使用了端口22222,但是您可以使用VPS中的任何未使用的端口。
# 2.端口上的流量应该被转发到冒号之后的系统,在本例中是“localhost”,这意味着本地机器上会产生流量。
# 3.最后,22这个数字指定了要转发的端口,这是SSH在本地系统上运行的端口。默认情况下,它只接受来自VPS本身的端口22222的连接,这意味着您需要先登录VPS,然后才能继续连接。
连接到NAT后面的系统
通过这种配置,您可以首先通过SSH连接到VPS连接到NAT后面的系统,然后使用SSH连接如下,改变您所选择监听的端口22222:
ssh localhost -p 22222
如果您想不需要连接到VPS就可以与另一个系统建立第二个连接,那么在创建反向通道时,可以在端口监听之前,通过包含VPS的IP地址来更改这个行为。如下所示:
ssh -R 1.2.3.4:22222:localhost:22 [email protected]
在本例中,您将用VPS的IP地址替换“1.2.3.4”,使您能够通过SSH连接到VPS上的端口22222来连接到您的系统。请注意,这意味着internet上的任何人都可以这样做,除非您使用它的防火墙限制在您的VPS上访问那个端口。为了连接,要使用:
ssh vps.example.com -p 22222
vps.example.com ssh – p 22222
内容差不多就是这些了。有了反向通道设置,使用VPS连接到远程系统是很简单的。为了方便,您还可以将多个远程系统全部挖掘到相同的VPS中。需要注意的一件事是,,这个VPS将成为所有的这些远程网络的入口,因此确保您充分地保护VPS是非常重要的。
这篇文章是由lunarpages主机中文导航(http://lunarpages.cn/)提供的,专业提供服务器托管、云服务器、lunarpages主机等相关主机技术、最新资讯。