可以通过端口映射的方式,来通过具有公网的云服务器 ECS 访问用户名下其它未购买公网带宽的内网 ECS 上的服务。端口映射的方案有很多,比如 Linux 下的 SSH Tunnel、rinetd,Windows 下的 portmap 等,本文简要介绍 rinetd,和 ssh tunnel 的配置方法。
说明:本文相关配置和说明仅用于示例和操作指引,阿里云不对相关操作结果及由此产生的问题负责。
rinetd 配置方法 如果是 Ubuntu 系统,可以直接使用如下指令安装:
apt-get install rinetd -y 下面介绍源代码安装配置方法:
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
rinetd 启动后,就已经可以通过云服务器的 3306 端口连接到处于内网模式的 example rds 数据库了。除了这个场景,其它的内网端口转发配置也类似。不过,由于FTP 协议端口是随机的,所以无法通过此方法实现转发。
另外,配置文件中可以对某个 IP 或者 IP 段进行允许/拒绝,藉此提高内网端口的安全性。
SSH Tunnel 配置方法 通过putty 和 有公网 IP 的 ECS 之间建立 SSH 隧道,然后通过本地端口转发,实现在客户 PC 终端上对内网 ECS 和 RDS 的直接访问,为客户的远程管理提供了巨大的方便。
其数据流向如下示意图:
前置条件 客户 PC 终端可以 ssh 登录有公网的 ECS 服务器。 有公网的 ECS 服务器可以通过内网访问其他内网 ECS 服务器。 有公网的 ECS 服务器可以通过内网访问 RDS(ECS 的内网 IP 在 RDS 的白名单中)。 客户端配置 1. 客户端使用 putty,填写有公网 ECS 的 IP 及 ssh 端口
另外,在 SecureCRT 中这个功能叫做 端口转发 ,进行类似的配置后也可以实现同样的功能。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。