Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Linux通过端口转发来实现访问内网服务的图文步骤详解

Linux通过端口转发来实现访问内网服务的图文步骤详解

黄舟
黄舟asal
2018-05-23 17:09:358013semak imbas

可以通过端口映射的方式,来通过具有公网的云服务器 ECS 访问用户名下其它未购买公网带宽的内网 ECS 上的服务。端口映射的方案有很多,比如 Linux 下的 SSH Tunnel、rinetd,Windows 下的 portmap 等,本文简要介绍 rinetd,和 ssh tunnel 的配置方法。

说明:本文相关配置和说明仅用于示例和操作指引,阿里云不对相关操作结果及由此产生的问题负责。

rinetd 配置方法


如果是 Ubuntu 系统,可以直接使用如下指令安装

apt-get install rinetd -y

下面介绍源代码安装配置方法:

1. 下载解压 rinetd 软件包:

wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz&&cd rinetd

2. 修改编译配置: 

sed -i ‘s/65536/65535/g’ rinetd.c# 修改端口范围,否则会报错

3. 编译安装:

mkdir /usr/man&&make&&make install

4. 创建配置文件

cat >>/etc/rinetd.conf <>/etc/rc.local          
# allow 192.168.2.
# deny 192.168.1.
# bindadress bindport connectaddress connectport0.0.0.0 3306 example.rds.aliyuncs.com 3306logfile /var/log/rinetd.logendecho rinetd >>/etc/rc.local

 

5. 使用:

rinetd 启动后,就已经可以通过云服务器的 3306 端口连接到处于内网模式的 example rds 数据库了。除了这个场景,其它的内网端口转发配置也类似。不过,由于FTP 协议端口是随机的,所以无法通过此方法实现转发。

另外,配置文件中可以对某个 IP 或者 IP 段进行允许/拒绝,藉此提高内网端口的安全性。

SSH Tunnel 配置方法


通过putty 和 有公网 IP 的 ECS 之间建立 SSH 隧道,然后通过本地端口转发,实现在客户 PC 终端上对内网 ECS 和 RDS 的直接访问,为客户的远程管理提供了巨大的方便。

其数据流向如下示意图: 
1.png

前置条件

  • 客户 PC 终端可以 ssh 登录有公网的 ECS 服务器。

  • 有公网的 ECS 服务器可以通过内网访问其他内网 ECS 服务器。

  • 有公网的 ECS 服务器可以通过内网访问 RDS(ECS 的内网 IP 在 RDS 的白名单中)。

客户端配置

1. 客户端使用 putty,填写有公网 ECS 的 IP 及 ssh 端口

2.png

2. 设置 SSH Tunnel:Source Port 是 PC 本地监听的端口,Destination 填写内网 ECS 服务器的内网地址及端口。然后点击 Add,就会生成一个端口转发记录,然后点击 Open 会打开 SSH 连接:

3.png

3. 在弹出的窗口中输入正常 SSH 登录有公网 IP 的 ECS 服务器:

4.png

4. 这时在客户 PC 终端上使用 netstat –na 命令应该可以看到一个 127.0.0.1 的 22 端口的本地监听:

5.png

5. 通过连接这个本地端口就可以连接到内网的 ECS 服务器上了:

6.png

6. 这个方法同样适用于 Windows系统(为了不与客户 PC 终端的端口冲突,这里使用了 33389 端口作为本地监听端口)

7.png

8.png

7. 内网的 RDS 也可以实现:

9.png

10.png

8. 可以在客户 PC 终端直接使用数据库客户端程序来连接 RDS 中的数据库,非常方便。

11.png

另外,在 SecureCRT 中这个功能叫做 端口转发 ,进行类似的配置后也可以实现同样的功能。

12.png

Atas ialah kandungan terperinci Linux通过端口转发来实现访问内网服务的图文步骤详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn