LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 916|回复: 11

高手们,请进Linux下端口转发问题。

[复制链接]
发表于 2005-6-14 14:19:26 | 显示全部楼层 |阅读模式
最安装了一台RedHatLinux9服务器,用来做拨号共享上网,其上挂了二张网卡,一个用于接外网IP是193.168.0.1 一张用于接内部电脑上网用IP是141.100.0.1  我们现在在用动态IP 100M光纤拨号上线。
现在我在内部做了一个WEB服务器,IP地址是141.100.10.11 请问在Linux服务器上应该如何设置才对呀。
近二天我从网上找到了一个文章按其方法使用iptables做,外部是可以访问了,可是内部的所有电脑都不能正常访问了,打开网页的时候,所以有网页都指到141.100.10.11这台WEB服务器上面来了。

大侠们求救呀!!!!
发表于 2005-6-14 14:53:09 | 显示全部楼层
将你的规则贴出来看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-14 15:22:44 | 显示全部楼层
我用的是下面的命令来完成。
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 141.100.10.11:80
iptables -t nat -A POSTROUTING -s 141.100.0.0/16 -d 141.100.10.11 -p tcp -m tcp --dport 80 -j SNAT --to-source 141.100.0.1
这样外网是可以访问了,可是内部不能访问其它的网站呀。特别的打开网页。其它QQ游戏不是80端口的都正常!
回复 支持 反对

使用道具 举报

发表于 2005-6-14 16:21:09 | 显示全部楼层
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 141.100.10.11:80
这一句指定到80端口的所有请求都转发到141.100.10.11:80,当然会出现你说的情况,我想你应该加一个目的限制:
iptables -t nat -A PREROUTING -d $inet -p tcp --dport 80 -j DNAT --to-destination 141.100.10.11:80

这个 $inet 应该是你网关的地址,从前面来看,应该是外网的 193.168.0.1
回复 支持 反对

使用道具 举报

发表于 2005-6-14 20:15:29 | 显示全部楼层
141.100.10.11 怎么成了内网地址?
回复 支持 反对

使用道具 举报

发表于 2005-6-15 13:31:50 | 显示全部楼层
你应该是反内网的IP跟外网的IP搞错了~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-18 13:11:01 | 显示全部楼层
Chowroc
这种方法我试过了,是可以用的,可是这样一来我们内网的所有用户都不可以访问呀 外网的朋友都可以正常访问。
jd_chen
朋友,我不懂你的意思,你可以说得更详细一点吗?
回复 支持 反对

使用道具 举报

发表于 2005-6-19 20:14:32 | 显示全部楼层
没有弄明白你说的,你是说外网不能访问内网的其他主机,还是内网用户不能访问外网,还是内网用户不能访问你自己的WEB服务器?

还有,你内网的地址为什么要用 141.100.0.0 呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-23 11:07:47 | 显示全部楼层
不是的了
是我在输入上面的命令以后,我内网的所有电脑都不能正常访问外网的网站了,只是一输入网站,都被指定到了我141.100.10.11这个WEB服务器上面来了。
回复 支持 反对

使用道具 举报

发表于 2005-6-23 22:30:04 | 显示全部楼层
都是老问题了啊。把FORWARD链打开。而且,你是拔号上网的。internet ip地址直接在iptables
规则里面用ppp0或ppp+代替.
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表