說明:Centos 7 默認的防火牆是 firewall,安裝iptables之前需關閉Firewall
外網機器:
外網ip:120.25.71.183
內網ip:10.1.1.23
內網機器:
內網ip:10.1.1.24
禁止firewall開機啟動
使用 systemctl status firewalld 查看服務狀態
如果服務是運行狀態,先關閉 firewall 服務,命令如下:
systemctl stop firewalld
停止以后然后執行下面命令禁用:
systemctl disable firewalld
安裝iptables
yum install -y iptables-services
啟動iptables
systemctl start iptables
如之前已經設置過規則策略的,將原有的 iptables 文件保存一份,,避免之前設置的策略丟失,命令如下:
cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
配置
1. 開啟內核轉發,重啟之后會還原
echo 1 > /proc/sys/net/ipv4/ip_forward
2. 執行如下iptables規則
說明:nat 主要用處是網絡地址轉換,也有三個鏈。PREROUTING 鏈的作用是在包剛剛到達防火牆時改變它的目的地址,
如果需要的話。OUTPUT 鏈改變本地產生的包的目的地址。POSTROUTING 鏈在包就要離開防火牆之前改變其源地址。
# 用DNAT做端口映射
iptables -t nat -A PREROUTING -d 120.25.71.183 -p tcp --dport 1522 -j DNAT --to-destination 10.1.1.24:80
# 用SNAT作源地址轉換,以使回應包能正確返回
iptables -t nat -A POSTROUTING -d 10.1.1.24 -p tcp --dport 80 -j SNAT --to 10.1.1.23
3. 保存添加的規則
iptables-save > /etc/sysconfig/iptables
4. 設置iptables開機啟動
systemctl enable iptables.service
5. 重啟iptables
systemctl restart iptables.service
6. 測試訪問
curl 120.25.71.183:1522