[問題] 請教一下 iptables DNAT 的問題

看板Linux作者 (水母水母水中游)時間13年前 (2011/02/16 11:54), 編輯推噓6(6012)
留言18則, 4人參與, 最新討論串1/2 (看更多)
目前我的主機環境如下 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 卻失敗了 我是少加了什麼步驟嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.36.152

02/16 12:05, , 1F
/etc/sysctl.conf中 net.ipv4.ip_forward = 1?
02/16 12:05, 1F

02/16 12:21, , 2F
/etc/sysctl.conf 有設定成 1 還是不成功
02/16 12:21, 2F

02/16 12:21, , 3F
/proc/sys/net/ipv4/ip_forward 也有設為 1
02/16 12:21, 3F

02/16 12:45, , 4F
-A FORWARD -s 192.168.0.0/255.255.255.0 -j DROP
02/16 12:45, 4F

02/16 12:46, , 5F
看起來是把連到192.168.0.0的封包都丟掉,註解掉呢?
02/16 12:46, 5F

02/16 13:01, , 6F
這行我之前也有試著註解掉, 也是不行Orz
02/16 13:01, 6F

02/16 13:06, , 7F
-A POSTROUTING --dst 192.168.0.170 --dport 3000
02/16 13:06, 7F

02/16 13:07, , 8F
-j SNAT --to-source 192.168.0.254
02/16 13:07, 8F

02/16 13:07, , 9F
啊,應該是--dport 8000,加這行試試看
02/16 13:07, 9F

02/16 13:10, , 10F
先po一下你的route -n
02/16 13:10, 10F

02/16 13:11, , 11F
-A OUTPUT --dst 192.168.0.254 -p tcp -j DNAT
02/16 13:11, 11F

02/16 13:11, , 12F
--to-destination 192.168.0.170 還有這行
02/16 13:11, 12F

02/16 13:12, , 13F
ppp0怎麼會是虛擬ip呀?...@@
02/16 13:12, 13F

02/16 14:20, , 14F
ppp0 的ip是為了描述方便才這樣寫, 請不要太再意 :)
02/16 14:20, 14F

02/16 14:42, , 15F
加了那兩行似乎也不行@@
02/16 14:42, 15F

02/16 17:40, , 16F
-A PREROUTING -p tcp -m tcp --dport 8000 -j DNAT
02/16 17:40, 16F

02/16 17:40, , 17F
--to-destination 192.168.0.170:8000
02/16 17:40, 17F

02/16 17:41, , 18F
改成這樣試試看吧
02/16 17:41, 18F
文章代碼(AID): #1DMqgEaa (Linux)
文章代碼(AID): #1DMqgEaa (Linux)