如果多臺服務(wù)器,但是僅有一個公網(wǎng)ip的話,可以在有公網(wǎng)ip的服務(wù)器上做端口映射/端口轉(zhuǎn)發(fā),把不同的服務(wù)器映射在端口上。這樣只要鏈接唯一公網(wǎng)IP的不同端口就可以在對應(yīng)的不同服務(wù)器上進(jìn)行操作了。
本文介紹的是centos7,firewalld-cmd是centos7的一大特性,最大的好處有兩個:支持動態(tài)更新,不用重啟服務(wù);第二個就是加入了防火墻的“zone”概念。
狀態(tài):# systemctl status firewalld 或者 firewall-cmd --state(查看防火墻開啟關(guān)閉狀態(tài)) 啟動:# systemctl start firewalld 停止:# systemctl stop firewalld 自啟動:# systemctl enable firewalld (可讓防火墻開機(jī)自啟動,防火墻默認(rèn)開機(jī)不啟動的,需手動啟動) 禁用:# systemctl disable firewalld
首先開啟IP轉(zhuǎn)發(fā)功能,默認(rèn)是關(guān)閉的。
臨時修改:
echo 1 >/proc/sys/net/ipv4/ip_forward
修改過后就馬上生效,但如果系統(tǒng)重啟后則又恢復(fù)為默認(rèn)值0。
永久修改:
# 找到下面的值并將0改成1 vi /etc/sysctl.conf # sysctl -p(使之立即生效) net.ipv4.ip_forward = 1

默認(rèn)值0是禁止ip轉(zhuǎn)發(fā),修改為1即開啟ip轉(zhuǎn)發(fā)功能。
列出 dmz 級別的被允許的進(jìn)入端口 firewall-cmd --zone=dmz --list-ports 允許 tcp 端口 8080 至 dmz 級別 (--permanent 永久生效,沒有此參數(shù)重啟后失效) firewall-cmd --zone=dmz --add-port=8080/tcp firewall-cmd --zone=dmz --add-port=12345/tcp --permanent 列出 public 級別的被允許的進(jìn)入端口 firewall-cmd --zone=public --list-ports 允許某范圍的 udp 端口至 public 級別,并永久生效 firewall-cmd --zone=public --add-port=5060-5059/udp --permanent 允許 tcp 端口 58888 至 public 級別 (--permanent 永久生效,沒有此參數(shù)重啟后失效) firewall-cmd --zone=public --add-port=80/tcp --permanent 重新加載firewalld配置 firewall-cmd --reload
決定你端口轉(zhuǎn)發(fā)是否能成功的最重要一點是你得打開防火墻偽裝IP的功能,這就是SNAT。
firewall-cmd --query-masquerade # 檢查是否允許偽裝IP,返回no表示沒開啟,反之開啟偽裝IP firewall-cmd --add-masquerade # 允許防火墻偽裝IP firewall-cmd --add-masquerade --permanent # --permanent 永久生效,沒有此參數(shù)重啟后失效 或 firewall-cmd --zone=區(qū)域 --add-masquerade firewall-cmd --remove-masquerade# 禁止防火墻偽裝IP 重新加載firewalld配置 firewall-cmd --reload (PS:添加或刪除端口后不會立即生效,配置完 --reload后才能生效;--permanent代表永久生效)
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 --permanent # 將80端口的流量轉(zhuǎn)發(fā)至8080 firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.0.1 --permanent # 將80端口的流量轉(zhuǎn)發(fā)至192.168.0.1 firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080 --permanent # 將80端口的流量轉(zhuǎn)發(fā)至192.168.0.1的8080端口 firewall-cmd --add-forward-port=port=58888:proto=tcp:toaddr=47.97.184.137:toport=80 --permanent # 將58888端口的流量轉(zhuǎn)發(fā)至47.97.184.137的80端口 要刪除之前設(shè)置的轉(zhuǎn)發(fā)規(guī)則,把以上命令中的--add-forward-port改為--remove-forward-port運(yùn)行一次即可。 firewall-cmd --permanent --zone=public --remove-forward-port=port=58888:proto=tcp:toaddr=47.97.184.137:toport=8888 firewall-cmd --reload firewall-cmd --list-all #查詢所有配置
firewall-cmd --reload firewall-cmd --list-all
掃碼贊賞,鼓勵支持
相關(guān)問題
Centos 7.x 下做端口映射/端口轉(zhuǎn)發(fā)Windows server 2008/2012/2016/2019 服務(wù)器桌面不顯示我的電腦(計算機(jī))的解決方案No input file specified的解決方法網(wǎng)站如何添加工信部網(wǎng)站備案號和鏈接代碼騰訊云對象存儲內(nèi)網(wǎng)與外網(wǎng)地址訪問Windows遠(yuǎn)程桌面多個用戶如何同時使用Chrome谷歌瀏覽器?