免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3603 | 回复: 14

[网络管理] NAT 内网映射问题 [复制链接]

论坛徽章:
0
发表于 2012-03-08 16:48 |显示全部楼层
本帖最后由 ssqhan 于 2012-03-08 16:50 编辑

外网IP:210.46.140.233
内网IP:192.168.0.1

CLINET IP: 192.168.0.17
-------------------------------------------------------
目前,内网是可以访问外网的
但我想外网访问内网的www网站
却行不通

外网是可以ping 通210.46.140.233
在NAT主机上可以
直接输入192.168.0.17看到client pc 机上相应的网页

在外网IE中输入 http://210.46.140.233:8000
得到这样的结果:
无法显示网页,
你正在查找的网页当前不可用………………
-----------------------------------------------------
我在/etc/rc.local中配置如下:
  1. ptables -F
  2. iptables -P INPUT ACCEPT
  3. iptables -P FORWARD ACCEPT
  4. iptables -P OUTPUT ACCEPT
  5. /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
  6. /sbin/iptables -t nat -A PREROUTING -p tcp -d 210.46.140.233 --dport 8000 -j DNAT --to-destination 192.168.0.17:80
复制代码
=============================================================================
求问题所在???



论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2012-03-08 17:29 |显示全部楼层
在/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE行前面添加1条规则:
/sbin/iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.17 --sport 8000 -j SNAT --to-destination 210.46.140.233:8000
测试下看看

论坛徽章:
0
发表于 2012-03-08 18:50 |显示全部楼层
回复 1# ssqhan


你要确保 0.17 使用的默认路由是 0.1
同时你要确保没有其他 nat 表的规则干扰(因为你的执行方式有问题,我看到只删了 filter 表而忽略了 nat 表,且你的规则是 append 上去的)

论坛徽章:
0
发表于 2012-03-08 20:37 |显示全部楼层
本帖最后由 marsaber 于 2012-03-08 20:57 编辑

很简单的一个端口映射啊,iptables规则貌似没什么问题。
看了白金老大的回复,给你写个脚本,仅供参考。
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to 210.46.140.233
/sbin/iptables -t nat -A PREROUTING -p tcp -d 210.46.140.233 --dport 8000 -j DNAT --to 192.168.0.17:80


1、目前,内网是可以访问外网的;
Q:192.168.0.17可以访问外网吗?
2、在NAT主机上可以直接输入192.168.0.17看到client pc 机上相应的网页
Q:看来192.168.0.17的web是正常的。
3、弄个环境很干净很干净的web服务器试试。

论坛徽章:
0
发表于 2012-03-08 21:03 |显示全部楼层
#!/bin/bash

/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.25.71
/sbin/iptables -t nat -A PREROUTING -p tcp -d 192.168.25.71 --dport 8000 -j DNAT --to 172.16.0.11:80
/sbin/iptables -t nat -A PREROUTING -p tcp -d 192.168.25.71 --dport 3389 -j DNAT --to 172.16.0.11:3389

代理服务器:192.168.25.71(外)、172.16.0.1(内)
内网web服务器:172.16.0.11/255.255.255.0/GW:172.16.0.1

测试,一切正常:
通过http://192.168.25.71:8000/可以访问172.16.0.11的页面
远程桌面可以连接172.16.0.11的桌面

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2012-03-08 21:10 |显示全部楼层
回复 5# marsaber


    对比你的和楼主的nat规则,楼主内网nat用的是MASQUERADE,你的是SNAT,应该就是这个的区别.

论坛徽章:
0
发表于 2012-03-08 21:14 |显示全部楼层
回复 6# chenyx

这个没关系的,使用MASQUERADE,跟SNAT的效果差不多,只是效率低一些罢了。

论坛徽章:
0
发表于 2012-03-08 21:39 |显示全部楼层
灰常感谢几位的热心解答,知道自己问题所在了
明天去单位试试。

论坛徽章:
0
发表于 2012-03-09 11:06 |显示全部楼层
回复 2# chenyx


    谢谢,用你的方法,通过!

论坛徽章:
0
发表于 2012-03-09 11:39 |显示全部楼层
回复 5# marsaber
谢谢您的回答:加上
iptables -X
iptables -t nat -F
iptables -t nat -X
ok,就通过了。
如下:

  1. ptables -F
  2. iptables -X
  3. iptables -t nat -F
  4. iptables -t nat -X
  5. iptables -P INPUT ACCEPT
  6. iptables -P FORWARD ACCEPT
  7. iptables -P OUTPUT ACCEPT
  8. /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
  9. /sbin/iptables -t nat -A PREROUTING -p tcp -d 210.46.140.233 --dport 8000 -j DNAT --to-destination 192.168.0.17:80
复制代码
-----------------------------------
按二楼的说法加上
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.17  --sport 8000 -j SNAT --to 210.46.140.233:8000
也可以通过
如下:
  1. iptables -F
  2. iptables -P INPUT ACCEPT
  3. iptables -P FORWARD ACCEPT
  4. iptables -P OUTPUT ACCEPT
  5. iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.17  --sport 8000 -j SNAT --to 210.46.140.233:8000
  6. /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
  7. /sbin/iptables -t nat -A PREROUTING -p tcp -d 210.46.140.233 --dport 8000 -j DNAT --to-destination 192.168.0.17:80
复制代码
-------------------------------------

能不能给我解释上为什么???
我的理解:
1.我的nat 有一些默认的内容  不知道对不对
对于这句话必须在加上为什么
iptables -t nat -A POSTROUTING -p tcp -s 192.168.0.17  --sport 8000 -j SNAT --to 210.46.140.233:8000



   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP