iptables中DNAT的配置方法


1.一對一流量完全DNAT

首先說一下網絡環境,普通主機一台做防火牆用,網卡兩塊

eth0 192.168.0.1  內網

eth1 202.202.202.1 外網

內網中一台主機 192.168.0.101

現在要把外網訪問202.202.202.1的所有流量映射到192.168.0.101上

命令如下:

[xhtml] view plaincopy
#將防火牆改為轉發模式  
echo 1 > /proc/sys/net/ipv4/ip_forward  
iptables -F  
iptables -t nat -F  
iptables -t mangle -F  
iptables -X  
iptables -t nat -X  
iptables -t mangle -X  
 
iptables -A INPUT -i lo -j ACCEPT  
iptables -A OUTPUT -o lo -j ACCEPT  
 
iptables -P INPUT ACCEPT  
iptables -P OUTPUT ACCEPT  
iptables -P FORWARD ACCEPT  
 
iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT --to-destination 192.168.0.101  
iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT --to 192.168.0.1  

2.多對多流量完全DNAT

說是多對多,實際上這里的配置是指定了多個一對一

環境:

eth0 192.168.0.1  內網

eth1 202.202.202.1 、202.202.202.2 外網

內網中2台主機 192.168.0.101、192.168.0.102

現在要把外網訪問202.202.202.1的所有流量映射到192.168.0.101上,同時把把外網訪問202.202.202.2的所有流量映射到192.168.0.102上

這里順便提一下如何為網卡配置多個IP

[c-sharp] view plaincopy
ifconfig eth1:1 202.202.202.2 netmask 255.255.255.0 up  

命令如下:

[c-sharp] view plaincopy
#將防火牆改為轉發模式  
echo 1 > /proc/sys/net/ipv4/ip_forward  
iptables -F  
iptables -t nat -F  
iptables -t mangle -F  
iptables -X  
iptables -t nat -X  
iptables -t mangle -X  
 
iptables -A INPUT -i lo -j ACCEPT  
iptables -A OUTPUT -o lo -j ACCEPT  
 
iptables -P INPUT ACCEPT  
iptables -P OUTPUT ACCEPT  
iptables -P FORWARD ACCEPT  
 
iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT --to-destination 192.168.0.101  
iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT --to 192.168.0.1  
 
iptables -t nat -A PREROUTING -d 202.202.202.2 -j DNAT --to-destination 192.168.0.102  
iptables -t nat -A POSTROUTING -d 192.168.0.102 -j SNAT --to 192.168.0.1  

3.一對多根據協議DNAT

 這個最常用,一般是內網或DMZ區內有多個應用服務器,可以將不同的應用流量映射到不同的服務器上

環境:

eth0 192.168.0.1  內網

eth1 202.202.202.1  外網

內網中2台主機 192.168.0.101(Web服務器)、192.168.0.102(郵件服務器)

現在要把外網訪問202.202.202.1的Web流量映射到192.168.0.101上,同時把把外網訪問202.202.202.1的郵件訪問流量映射到192.168.0.102上

命令如下:

[c-sharp] view plaincopy
#將防火牆改為轉發模式  
echo 1 > /proc/sys/net/ipv4/ip_forward  
iptables -F  
iptables -t nat -F  
iptables -t mangle -F  
iptables -X  
iptables -t nat -X  
iptables -t mangle -X  
 
iptables -A INPUT -i lo -j ACCEPT  
iptables -A OUTPUT -o lo -j ACCEPT  
 
iptables -P INPUT ACCEPT  
iptables -P OUTPUT ACCEPT  
iptables -P FORWARD ACCEPT  
 
iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.101:80  
iptables -t nat -A POSTROUTING -d 192.168.0.101 -p tcp --dport 80 -j SNAT --to 192.168.0.1  
 
iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport 25 -j DNAT --to-destination 192.168.0.102:25  
iptables -t nat -A POSTROUTING -d 192.168.0.102 -p tcp --dport 25 -j SNAT --to 192.168.0.1  
 
iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport 110 -j DNAT --to-destination 192.168.0.102:110  
iptables -t nat -A POSTROUTING -d 192.168.0.102 -p tcp --dport 110 -j SNAT --to 192.168.0.1


免責聲明!

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



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