TCP端口轉發(centos7)


===============================================

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

 

===============================================

由於業務中個別TCP的服務需要做遷移,而該服務目前又是不是集群的方式對外提供服務,為了盡可能的縮短服務的中斷,在部署完新服務后,原服務器的端口需要轉發TCP的流量到新的服務器,經過一段時間后用戶更新了配置,流量大體上直接向新服務器跑時,再將老服務器的端口撤掉。

 

在網上找了些資料,針對centos7的TCP端口轉發找到2種途徑:

1)firewalld

      優:系統自帶的防火牆,不需要配置其他軟件就能實現TCP流量的轉發;

      缺:必須是firewalld運行的時候才能轉發,但是有些服務的運行不適合開啟firewalld,或者原先設計就是關閉服務器自身的防火牆而依靠外部的防火牆(比如雲服務商的安全組);

2)rinetd

      優:不管防火牆是否開啟,都可以使用該服務實現端口轉發(當然防火牆得開放這個端口);

      缺:需要裝服務,而且是一個最后更新時間是2003年的工具,面對十幾年的系統網絡發展會不會有風險需要大量試驗后才能知道;

 


 一、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

 


 二、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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM