啰哩啰嗦一堆没用的干啥-----我愿意。
前言
本人在云平台多VPC环境遇到的一个端口转发真实案例,在这里分享一下,希望能给需要使用端口工具的伙伴提供一些思路。
环境介绍
云平台一般分为公有云和私有云及混合云,每个云平台上一般可以创建N个VPC不同网段网络,不管啥云通常情况下VPC网络之间逻辑上禁止网络互通的。如果想要互通需要之间创建一条(对等链接或高速通道)不同公司叫法不一样但是实现逻辑理论上一样,让相互VPC网络中有对方的路由表。
那么假设我在公有云平台上有两个VPC网络。
VPC1=10.10.1.0/24
VPC2=10.10.2.0/24
我真金白银购买了一个CLB负载均衡用于服务器对外应用发布,但是CLB负载均衡基于VPC购买,等于通常情况下如果我想让VPC1和VPC2服务器都对外发布服务我得购买两套CLB负载均衡。但是为了节约成本能不能一套CLB负载均衡供两个VPC同时使用。
实现方案
1. VPC1=10.10.1.0/24 和 VPC2=10.10.2.0/24 开通对等链接实现路由互通。
2. 在有CLB负载均衡的VPC中找一台服务器部署Linux端口转发工具 Rinetd。
3. 实现原理,CLB地址 201.12.00.1映射服务区给10.10.1.100:8080,10.10.1.100安装rinetd端口转发给 10.10.2.100:8080
软件安装
地址:
wget http://www.rinetd.com/download/rinetd.tar.gz
解压安装
tar zxvf rinetd.tar.gz
make
make install
编辑配置10.10.1.100服务器
vi /etc/rinetd.conf
0.0.0.0 8080 10.10.2.100 8080
说明一下(0.0.0.0表示本机绑定所有可用地址)
将所有发往本机8080端口的请求转发到10.10.2.100的8080端口
启动程序
/usr/sbin/rinetd
关闭进程
pkill rinetd
把这条命令加到/etc/rc.local里面就可以开机自动运行
查看端口状态
netstat -antup
需要注意
1.rinetd.conf中绑定的本机端口必须没有被其它程序占用
2.运行rinetd的系统防火墙应该打开绑定的本机端口
拓展想法
把启动程序/关闭进程 写一个python或shell脚步 一步执行。
可以考虑给inetd.conf增加一个web前端视图
添加映射输入框: [原地址] [端口] [目的地址] [端口]
服务启动按钮 启动服务[✅] 或 关闭服务 [✅]
当前端口映射状态
网友评论