服务端开发——云服务器的端口转发设置(SSH隧道)

引言

本篇博客介绍端口转发的知识,并详细阐述操作和设置步骤。这是因为在实际工作中,会有很多企业从安全的角度考虑,为线上或重要的服务器设置一个跳板机(堡垒机),避免远程开发人员直接操作,是企业应用开发中的重要保护措施。

一、端口转发

端口转发(Port Forwarding),或者叫SSH隧道(SSH Tunnel),是运维人员相关操作的必修课,也是开发人员必须要了解的知识。以下引用百科中的一段概述:

端口转发是SSH 为网络安全通信使用的一种方法。是把一个网络端口从一个网络节点转发到另一个网络节点上的行为。这种行为使得一个外部用户从外部经过一个被激活的NAT路由器到达一个在局域网中的IP的端口上。

用网络拓扑图来解释就是这样:

可见上图中的虚线连接了本地服务器与远程服务器,但这条虚线实际上是通过端口转发实现的,实际传输的数据都是通过跳板机来进行传输的。

二、端口转发的设置

2.1 场景描述

开发人员配置端口转发的目的一般就是需要登录远程的受跳板机(堡垒机)保护的目标服务器,服务器上可能有项目的部署文件,或者是数据库。

我们来假设一种典型的场景:

我们的数据库是在一个受保护的远程服务器上启动的,本地代码的运行也需要依赖此数据库的查询。我们不仅要通过Navicat等可视化界面连接数据库,更要通过程序进行数据库的连接和访问。因此,我们通过端口转发来实现这个要求。

2.2 小知识

1、通过免费的终端软件,可以实现端口转发的设置。所有的终端操作软件都支持端口转发功能,它们有XShell、SecureCRT、MobaxTerm(强烈推荐) 等等。

2、端口转发只需要一次设置,终端软件可以保存并管理这些端口转发的配置。

3、一般来说,端口转发是将本地(127.0.0.1)上的任意一个端口转发到目标服务器上的指定端口。为什么是“一般来说”,这是针对开发人员访问远程服务器来说的,因为端口转发不仅仅局限于本地的端口转发,端口转发的定义是“从一个网络节点到另一个网络节点”。

4、根据端口转发的原理,实际上是开启一个127.0.0.1 : port ——> 目标主机IP :port 的一个SSH Tunnel(隧道),这个隧道需要一直开启(即终端框不能关闭),一旦隧道关闭(终端关闭),端口转发功能也会立即失效。

5、端口转发是服务器和网络层面的概念,与具体的终端软件无关,它们只是负责修改和保存了一些通信上的配置,换句话说,终端软件配置好端口转发后,只需要最小化即可,其他所有应用都可以使用配置好的端口转发隧道。

2.3 MobaxTerm实现端口转发配置

如果使用SecureCRT实现端口转发功能,可以参考这篇文章《使用SecureCRT进行端口转发》,相信你会有所体会。

因为我一直使用MobaxTerm来操作远程Linux 服务器,所以个人觉得这款软件比较好用,它有免费版(社区版)和商用版两种,日常开发的话,我一直用免费版,完全没有障碍。

下载地址:https://mobaxterm.mobatek.net/download.html

打开MobaxTerm,在上方工具栏中找到Tunneling:

打开后,我们可以看到一个设置界面,然后点击“New SSH tunnel” 按钮,出现如下设置界面:

上图中每个输入框的描述信息一定要仔细阅读,对于理解端口转发有好处,最后我们填写好实际的端口转发信息,并点击“Save”按钮,下图中,我们可以看到所有我们配置好的端口转发隧道,一个端口只能转发到一个远程的端口(可以不一样),如果有多个需要转发的端口,需要配置多个端口转发隧道:

然后,我们点击Start 按钮,就可以打开SSH 通道:

到此为止,已经完成了全部端口转发的配置并启动,我们通过SQLyog 来连接远程服务器看看能否正常连接:

请注意观察IP 和 端口 的配置信息,这里填入的应该是你本地的 IP 和 被转发的端口,也就是说,我们实际上只需要像操作本地数据库一样即可,只不过操作的端口被转发到了远程服务器而已

可以看到,连接成功!

那么在 程序中配置的 DataSource应该是怎样的呢?同样,也应该是本地的 ip 和被转发的端口:

注意,在进行远程访问的过程中,MobaxTerm应该最小化,但不可以关闭!

三、总结

首先,端口转发的意思就是将一台服务器上的一个端口映射到一个受跳板机保护的目标服务器的端口上的过程。

这在实际的企业开发中是必备技能。

端口转发的配置非常简单,拥有一个趁手的 终端软件,如MobaxTerm,可以让配置过程更加事半功倍。博主第一次配置端口转发的工具是 SecureCRT,后来使用MobaxTerm来进行配置。

推荐MobaxTerm 的理由,我想只要你用过,就知道好在哪里了。不仅界面美观大气,科技感十足,在进行端口转发配置的时候,也感受到了满满的人性化:

这么直观的网络拓扑图,我相信大家会有自己的选择。唯一的缺点就是全英文,如果英文不好的小伙伴还是不建议使用的,不过博主认为除了这一点小障碍以外,总体来说这款终端软件,完爆其他软件。

 

 

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页