免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1662 | 回复: 3
打印 上一主题 下一主题

[网络管理] NAT请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-14 09:58 |只看该作者 |倒序浏览
在坛子里看了很多文章了,收益非浅,但是到了自己动手却又被卡住了:(,把我的操作过程写下来,希望能得到大家的帮助。
我的一台单网卡电脑,系统是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
REROUTING ACCEPT [0]
:OUTPUT ACCEPT [0]
COMMIT

*filter
:INPUT ACCEPT [0]
:FORWARD ACCEPT [0]
:OUTPUT ACCEPT [0]
COMMIT

*nat
REROUTING ACCEPT [0]
OSTROUTING ACCEPT [0]
:OUTPUT ACCEPT [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

论坛徽章:
0
2 [报告]
发表于 2005-08-14 10:55 |只看该作者

NAT请教

我觉得 你的内部网络映射 有问题
/sbin/iptables -A POSTROUTING -t nat -d 192.168.0.21 -p tcp --dport 9000 -j SNAT --to $FW_IP:9000
不知道这样可以不.
对你的一块网卡绑定两个ip,然后NAT的做法,不是很清楚.
^_^

论坛徽章:
0
3 [报告]
发表于 2005-08-14 11:02 |只看该作者

NAT请教

原帖由 "sway2004009" 发表:
我觉得 你的内部网络映射 有问题
/sbin/iptables -A POSTROUTING -t nat -d 192.168.0.21 -p tcp --dport 9000 -j SNAT --to $FW_IP:9000
不知道这样可以不.
对你的一块网卡绑定两个ip,然后NAT的做法,不是很清楚...........

网络拓扑没有问题,一块网卡绑 2 个地址,然后做 NAT 的方法叫单臂路由
且上面这个
iptables -A POSTROUTING -t nat -d 192.168.0.21 -p tcp --dport 9000 -j SNAT --to $FW_IP:9000
的写法是肯定错误的,因为端口映射是在 PREROUTING 链中完成的,而不是 POSTROUTING 链
我认为问题出在
-A PREROUTING -p tcp -d 221.232.246.XXX --dport 9000 -j DNAT --to 192.168.0.12:9000 上面
不知道 221.232.246.XXX 这个 IP 是不是真正的公网 IP,不知道前面有没有防火墙阻止了 TCP/9000
从这台机器上面 tcpdump -i eth0 -nn port 9000,看一下结果,看能否接收到外面的访问?

论坛徽章:
0
4 [报告]
发表于 2005-08-16 10:08 |只看该作者

NAT请教

感谢版主的提示,tcpdump -i eth0 -nn port 9000接收不到信息。我后来改用另一个代理服务器软件kingate,再做端口映射就成功了。 不知道这两者的映射是有什么区别吗?希望能在得到大家的指点。先谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP