- 論壇徽章:
- 12
|
本帖最后由 phanx 于 2014-07-11 23:31 編輯
回復(fù) 1# Gallop_hu
Gallop_hu 發(fā)表于 2014-07-11 21:41 ![]()
1、sysctl -w net.ipv4.ip_forward=1 //開啟轉(zhuǎn)發(fā)
2 iptables -I FORWARD -p tcp -s 192.168.1.10 -j ACCEPT //允許轉(zhuǎn)發(fā)從電腦A過(guò)來(lái)的數(shù)據(jù)
3 iptables -I FORWARD -p tcp -s 192.168.1.12 -j ACCEPT //允許轉(zhuǎn)發(fā)從電腦C過(guò)來(lái)的數(shù)據(jù)
4 iptables -t nat PREROUTING -p tcp -s 192.168.1.10 -j DNAT --to 192.168.1.12 //將電腦A發(fā)送過(guò)來(lái)的數(shù)據(jù)轉(zhuǎn)發(fā)到電腦C
5 iptables -t nat PREROUTING -p tcp -s 192.168.1.12 -j DNAT --to 192.168.1.10 //將電腦C發(fā)送過(guò)來(lái)的數(shù)據(jù)轉(zhuǎn)發(fā)到電腦A
6 service iptables save //保存配置
7 service iptables restart //重啟服務(wù)
你的做法在于不應(yīng)該做第二條PREROUTING的動(dòng)作,而應(yīng)該做POSTROUTING,把A發(fā)往C的數(shù)據(jù)改為B發(fā)往C。 這樣C回包的時(shí)候就會(huì)回給B。
然后,B的iptables就知道做NAT回包處理了。 B會(huì)將C發(fā)回的數(shù)據(jù)包翻譯成B發(fā)往A的數(shù)據(jù)包。
FORWARD里面,針對(duì)到C的數(shù)據(jù)包允許三個(gè)狀態(tài),到A的數(shù)據(jù)包就只允許兩個(gè)狀態(tài)。
iptables -A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.10 -d 192.168.1.11 --dport 8000 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -s 192.168.1.10 -d 192.168.1.12 --dport 8000 -j DNAT --to-destination 192.168.1.12:8000
iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.10 -d 192.168.1.12 --dport 8000 -j SNAT --to-source 192.168.1.11
iptables -A FORWARD -p tcp -d 192.168.1.12 --dport 8000 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -d 192.168.1.10 --sport 8000 -m state --state ESTABLISHED,RELATED -j ACCEPT
呵呵,巧了,正好Linux版面也有這么個(gè)問(wèn)題,你們是一個(gè)人呢,還是湊巧都遇到這個(gè)問(wèn)題?
http://72891.cn/thread-4145552-1-1.html
|
|