nat请教

来源:百度文库 编辑:神马文学网 时间:2024/04/27 17:52:44
在坛子里看了很多文章了,收益非浅,但是到了自己动手却又被卡住了:(,把我的操作过程写下来,希望能得到大家的帮助。
我的一台单网卡电脑,系统是Mandrake10,绑了2个IP,其中eth0是221.232.246.XXX,eth0:0是192.168.0.21,网关是221.232.246.XXX。现在我希望能将9000端口映射到局网内192.168.0.12的9000上去。
首先将/proc/sys/net/ipv4/ip_forward 改为1
然后是我的iptables:
*mangle
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -p tcp -d 221.232.246.XXX --dport 9000 -j DNAT --to 192.168.0.12:9000
-A POSTROUTING -s 192.168.0.12/24 -j SNAT --to 221.232.246.XXX
COMMIT
不知道是哪里有误,反正映射不成功……内网外网我都试过,就是访问不了。但是如果将上面语句里的221.232.246.XXX替换成机器的内部IP192.168.0.21,则在局网内可以实现映射。是我的语句的问题,还是因为只有一个网卡绑定2个IP,不能完成这样的工作呢?
以下是iptables --list的部分信息:
表格:nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  anywhere             221.232.246.XXX     tcp dpt:9000 to:192.168.0.12:9000
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       all  --  192.168.0.0/24       anywhere            to:221.232.246.XXX