学派吧-Linux/centos通过端口转发来实现访问内网服务的图文教程-linux教程

可以通过端口映射的方式,来通过具有公网的云服务器 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

以上就是Linux通过端口转发来实现访问内网服务的图文步骤详解的详细内容,更多请关注学派吧其它相关文章!

主题测试文章,只做测试使用。发布者:云大使,转转请注明出处:https://www.xp8.net/server/2528.html

(0)
打赏 微信扫一扫 微信扫一扫
云大使的头像云大使
上一篇 2018年12月12日 下午10:13
下一篇 2018年12月12日 下午10:13

相关推荐

  • 如何调试shell脚本教程分享

    如何调试Shell脚本?我们可以在shell脚本中使用“set-xv”命令或在执行脚本时在命令行上使用-xv来调试shell脚本。 通过添加命令来调试Shell脚本: $ cat checkdebug.sh #!/bin/bash set -xv #<< This will enable debugcd /var/log/ for i in “*…

    2019年3月23日
    2.6K00
  • linux ~/.是什么如何使用教程详解

    linux ~/.是什么目录? linux ~/是一般情况下表示当前目录。但是当开终端的时候,都是在用户名目录下面的,所以这个就是用户名目录里面的东西。而.fcitx,加了一个点都是隐藏文件。按CTRL+H可以显示隐藏文件。 linux中 ~ 表示的是什么目录? ~ 表示代码主目录,也就是当前登录用户的用户目录。 比如:我登录用户是chen cd ~ ~ 代…

    服务器运维 2019年3月13日
    2.7K00
  • Linux快速排查系统是否被黑

    [v_blue]1.异常进程[/v_blue]可以用top命令查看是否有占用CPU较高的进程,下面截图的进程异常,并且占用较高CPU[v_blue]2.linux系统中出现类似Windows的目录或可执行文件[/v_blue]如果判断不是用户自己上传的,很有可能系统被黑或数据库被黑3.检查定时任务crontab 可以使用crontab -l检查定时任务是否异…

    2018年4月2日
    2.3K00
  • linux/centos下使用kill命令的使用教程方法

    kill命令 kill命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。 语法 kill(选择)(参数) 选项-a:当处理当前进程时,不限制命令名和进程号的对应关系;-l &l…

    2019年4月13日
    4.7K00
  • CentOS如何磁盘挂载

    [v_error]注意:本文中的磁盘/dev/xvdb 为作者测试服务器上的命名,在您的服务器中可能是 /dev/sdb /dev/vdb 等等,请按您的磁盘名称修改开源地址[/v_error] mkdir -p /www 1、确认是否有没有分区的磁盘,如下图,没有分区的磁盘是 /dev/xvdb ,在您的服务器中可能是 /dev/vdb 请注意按实际名称修…

    2018年5月6日
    10.3K10

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

工作时间:周一至周五,9:30-18:30,节假日休息

添加微信
添加微信
分享本页
返回顶部
---------官方优惠叠加渠道折扣:通过我们购买腾讯云/阿里云,价格更低,服务更优。更有专业配置指导与服务。微信同步:18838889666----