網絡結構以下:服務器
NAT,即網絡地址轉換。如上圖中三臺機器,C服務器配置內網IP,B服務器能夠正常上網同時打開了核心轉發功能,B、C之間能夠互相通訊。但C沒法訪問外網,緣由是當192.168.2.10訪問192.168.1.10時(即內網訪問外網),C的數據包能夠正常發送給A,可是C是內網地址,服務器A的響應包是沒法發送C的,因此須要進行地址轉換。步驟以下:網絡
一、服務器B打開核心轉發功能(略);tcp
二、在服務器B的防火牆上配置NAT,咱們要讓C能夠正常訪問外網,防火牆配置以下;ide
# iptables -t nat POSTROUTING -s 192.168.2.0/24 ! -d 192.168.2.0/24 -j SNAT --to-source 192.168.1.1 ########################### 將源地址爲192.168.2.0/24,目標地址不爲192.168.2.0/24的數據包中的源地址轉換成192.168.1.1
三、假設服務器C爲HTTP服務器,配置了公網IP。如今不但願別人知道網站的實際IP地址網站
# iptables -t nat PREROUTING -d 192.168.1.1 -j DNAT --to-destination 192.168.2.10 ########################### 192.168.1.1將全部接收到的全部數據包轉給192.168.2.10,避免直接訪問192.168.2.10
源地址轉換:能夠理解爲內網須要訪問公網時配置spa
iptables -t nat -A POSTROUTING -s LocalNET ! -d LocalNet -j SNAT --to-source ExtIP(外部IP)blog
iptables -t nat -A POSTROUTING -s LocalNET ! -d LocalNet -j MASQUERADE(地址假裝,當外部地址不固定時)ip
目標地址轉換:能夠理解爲公網與內網之間通訊get
iptables -t nat -A PREROUTING -d ExtIP -p tcp|udp --dport PORT -j DNAT --to-destination InterServerIP[:PORT]it