請教一下 iptables DNAT 的問題 - Linux

Table of Contents

目前我的主機環境如下

Internet (Hinet) --> 主機 eth1 ppp0 -> 主機 eth0 --> NAT 環境
(固定ip: 192.168.111.1) (192.168.0.0 的網域)

主機上有兩張網卡
eth1 是連到小烏龜
ppp0 是做為 pppoe 連線用, 使用的是固定 ip 192.168.111.1
eth0 則是連到 switch hub, eth0 的 ip 為 192.168.0.254

我的目的很簡單, 只想達成兩個目的
1. 將主機做為 router
2. 將一些 port 轉給 NAT 下的主機使用
ex: 8000 port 給 192.168.0.170 使用

目的 1 是已經達成了
但是目的 2 卻試了好幾次都不成功

我的 iptables 設定如下, 麻煩各位給點意見, 謝謝

*filter
:INPUT ACCEPT [73:5037]
:FORWARD ACCEPT [3862:3184209]
:OUTPUT ACCEPT [61:5344]
-A FORWARD -m iprange --src-range 192.168.0.150-192.168.0.250 -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.255.0 -j DROP
COMMIT
*nat
:PREROUTING ACCEPT [295:18419]
:POSTROUTING ACCEPT [4:280]
:OUTPUT ACCEPT [4:280]
-A PREROUTING -d 192.168.111.1 -i eth0 -p tcp -m tcp --dport 3000 -j DNAT \
--to-destination 192.168.0.254
-A PREROUTING -d 192.168.111.1 -i eth0 -p tcp -m tcp --dport 8000 -j DNAT \
--to-destination 192.168.0.170
-A POSTROUTING -s 192.168.0.0/255.255.255.0 -o ppp0 -j MASQUERADE
COMMIT

在這個 script 裡面, 我將 port 3000 轉到 192.168.0.254 是沒問題的
但是將 port 8000 轉到 192.168.0.170 卻失敗了
我是少加了什麼步驟嗎?

--

All Comments

Joe avatarJoe2011-02-20
/etc/sysctl.conf中 net.ipv4.ip_forward = 1?
Emma avatarEmma2011-02-22
/etc/sysctl.conf 有設定成 1 還是不成功
/proc/sys/net/ipv4/ip_forward 也有設為 1
Olga avatarOlga2011-02-25
-A FORWARD -s 192.168.0.0/255.255.255.0 -j DROP
Odelette avatarOdelette2011-03-01
看起來是把連到192.168.0.0的封包都丟掉,註解掉呢?
Oscar avatarOscar2011-03-02
這行我之前也有試著註解掉, 也是不行Orz
James avatarJames2011-03-04
-A POSTROUTING --dst 192.168.0.170 --dport 3000
Emma avatarEmma2011-03-06
-j SNAT --to-source 192.168.0.254
啊,應該是--dport 8000,加這行試試看
Queena avatarQueena2011-03-09
先po一下你的route -n
Eden avatarEden2011-03-10
-A OUTPUT --dst 192.168.0.254 -p tcp -j DNAT
--to-destination 192.168.0.170 還有這行
Robert avatarRobert2011-03-10
ppp0怎麼會是虛擬ip呀?...@@
Isla avatarIsla2011-03-11
ppp0 的ip是為了描述方便才這樣寫, 請不要太再意 :)
Andrew avatarAndrew2011-03-13
加了那兩行似乎也不行@@
Charlotte avatarCharlotte2011-03-15
-A PREROUTING -p tcp -m tcp --dport 8000 -j DNAT
--to-destination 192.168.0.170:8000
Hedy avatarHedy2011-03-20
改成這樣試試看吧