===============================================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