參考:
https://blog.csdn.net/aoli_shuai/article/details/86288838
https://blog.csdn.net/u011537073/article/details/82685586
了解iptables 結(jié)構(gòu)
iptables的結(jié)構(gòu):iptables -> Tables -> Chains -> Rules. 即tables由chains組成沉帮,而chains又由rules組成
Filter
Filter表示iptables的默認(rèn)表,因此如果你沒(méi)有自定義表衡奥,那么就默認(rèn)使用filter表
- INPUT鏈 – 處理來(lái)自外部的數(shù)據(jù)么抗。
- OUTPUT鏈 – 處理向外發(fā)送的數(shù)據(jù)。
- FORWARD鏈 – 將數(shù)據(jù)轉(zhuǎn)發(fā)到本機(jī)的其他網(wǎng)卡設(shè)備上砸抛。
NAT
- PREROUTING鏈 – 處理剛到達(dá)本機(jī)并在路由轉(zhuǎn)發(fā)前的數(shù)據(jù)包评雌。它會(huì)轉(zhuǎn)換數(shù)據(jù)包中的目標(biāo)IP地址(destination ip address),通常用于DNAT(destination NAT)直焙。
- POSTROUTING鏈 – 處理即將離開(kāi)本機(jī)的數(shù)據(jù)包景东。它會(huì)轉(zhuǎn)換數(shù)據(jù)包中的源IP地址(source ip address)压彭,通常用于SNAT(source NAT)玻募。
- OUTPUT鏈 – 處理本機(jī)產(chǎn)生的數(shù)據(jù)包。
Mangle
Mangle表用于指定如何處理數(shù)據(jù)包黍图。它能改變TCP頭中的QoS
(Quality of Service,服務(wù)質(zhì)量和措,指一個(gè)網(wǎng)絡(luò)能夠利用各種基礎(chǔ)技術(shù)庄呈,為指定的網(wǎng)絡(luò)通信提供更好的服務(wù)能力,是網(wǎng)絡(luò)的一種安全機(jī)制派阱, 是用來(lái)解決網(wǎng)絡(luò)延遲和阻塞等問(wèn)題的一種技術(shù)诬留。)
- PREROUTING
- OUTPUT
- FORWARD
- INPUT
- POSTROUTING
Raw
用于處理異常
- PREROUTING chain
- OUTPUT chain
客戶端和web服務(wù)端是無(wú)法單獨(dú)通行的,nat server 有兩塊網(wǎng)卡贫母,通過(guò)在nat server中設(shè)置iptables 規(guī)則文兑,使得能進(jìn)行http請(qǐng)求
在nat server 中,先更改配置文件颁独,/etc/sysctl.conf 中改為
net.ipv4.ip_forward = 1
修改完成后彩届,命令行sysctl -p 讓其全部執(zhí)行生效
添加iptables規(guī)則
iptables -t(built-in tables which are corresponding to different traffic rules) nat()
iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT --to 10.10.188.232
在client機(jī)器里面加入一條路由,確保所有的數(shù)據(jù)包都從10.10.177.232中出去
可以再網(wǎng)卡配置文件里面設(shè)置誓酒,也可以使用route命令進(jìn)行設(shè)置
route add 0.0.0.0 gw 10.10.177.232
nat server設(shè)置iptables規(guī)則
iptables -t nat -A PREROUTING -d 10.10.188.232 -p tcp --dport 80 -j DNAT --to 10.10.177.233:80