iptables 持久化
安裝持久化工具
apt-get install iptables-persistent
Ubuntu 16.04 調用語法
netfilter-persistent save
netfilter-persistent reload
一鍵清除iptables規則
cat clear_iptables_rule.sh
#!/bin/bash
iptables -F
iptables -X
iptables -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEP
iptables 轉發請求到80端口
1.使用DNAT實現
iptables -t nat -A PREROUTING -p tcp -i ens33 -d 192.168.122.128 --dport 8089 -j DNAT --to 192.168.122.128:80
2.使用redirect實現
iptables -t nat -A PREROUTING -p tcp --dport 8088 -j REDIRECT --to-port 80
====================
iptables本地端口轉發
1. 所有的81請求轉發到了8080上.
# iptables -t nat -A PREROUTING -p tcp --dport 81 -j REDIRECT --to-ports 8080
1
# iptables -t nat -A PREROUTING -p tcp --dport 81 -j REDIRECT --to-ports 8080
如果需要本機也可以訪問,則需要配置OUTPUT鏈:
iptables -t nat -A OUTPUT -p tcp --dport 81 -j REDIRECT --to-ports 8080
1
iptables -t nat -A OUTPUT -p tcp --dport 81 -j REDIRECT --to-ports 8080
原因:外網訪問需要經過PREROUTING鏈,但是localhost不經過該鏈,因此需要用OUTPUT,或者POSTROUTING。POSTROUTING不行,需要看看。
iptables 轉發到其它服務器
ubuntu 防火牆轉發規則:
1首先把/etc/sysctl.conf配置文件中的net.ipv4.ip_forward=0改為net.ipv4.ip_forward=1
然后執行sysctl -p /etc/sysctl.conf使命令生效。
2配置防火牆的 IP 偽裝
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
3如果你想讓內部網絡內的某個服務器能夠被外部訪問,你可以使用 NAT 內 PREROUTING 鏈的 -j DNAT 目標來指定向目標 IP 地址以及端口轉發請求連接到內部服務器。例如,如果你想把進入的 HTTP 請求轉發到 172.11.0.21 上的專用 Apache HTTP 服務器服務器系統,運行以下命令
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT \
--to 172.11.0.21:80
4該規則允許把進入的80端口請求從防火牆轉發到172.11.0.21的服務器。
iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 172.11.0.21 -j ACCEPT