TCP端口转发(centos7)

===============================================centos

 2019/2/14_第1次修改                       ccb_warlock安全

 

===============================================服务器

因为业务中个别TCP的服务须要作迁移,而该服务目前又是否是集群的方式对外提供服务,为了尽量的缩短服务的中断,在部署完新服务后,原服务器的端口须要转发TCP的流量到新的服务器,通过一段时间后用户更新了配置,流量大致上直接向新服务器跑时,再将老服务器的端口撤掉。网络

 

在网上找了些资料,针对centos7的TCP端口转发找到2种途径:tcp

1)firewalld工具

      优:系统自带的防火墙,不须要配置其余软件就能实现TCP流量的转发;centos7

      缺:必须是firewalld运行的时候才能转发,可是有些服务的运行不适合开启firewalld,或者原先设计就是关闭服务器自身的防火墙而依靠外部的防火墙(好比云服务商的安全组);spa

2)rinetd设计

      优:无论防火墙是否开启,均可以使用该服务实现端口转发(固然防火墙得开放这个端口);code

      缺:须要装服务,并且是一个最后更新时间是2003年的工具,面对十几年的系统网络发展会不会有风险须要大量试验后才能知道;

 


 1、firewalld
 # 容许防火墙假装IP

firewall-cmd --add-masquerade

 

 # 增长80、8080端口的映射到192.168.13.1的80、8080端口

firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.13.1:toport=80 --permanent
firewall-cmd --add-forward-port=port=8080:proto=tcp:toaddr=192.168.13.1:toport=8080 --permanent

 


 2、rinetd
 # 获取rinetd源码包到/opt目录下

cd /opt
wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
tar -zxvf rinetd.tar.gz

 

 # 进入rinetd目录

cd rinetd

 

 # 设置转发端口的范围

sed -i 's/65536/65535/g' rinetd.c

 

 # 建立目录

mkdir -p /usr/man

 

 # 编译并安装

make && make install

 

# 编辑配置文件

vi /etc/rinetd.conf

 

 # 表示将全部发往本机80、8080端口的请求转发到192.168.13.1的80、8080端口(0.0.0.0表示本机绑定全部可用地址)
 # 将下面的内容添加到rinetd.conf文件内,wq保存。

0.0.0.0 80 192.168.13.1 80
0.0.0.0 8080 192.168.13.1 80

 

 # 启动rinetd

rinetd -c /etc/rinetd.conf
相关文章
相关标签/搜索