LinuxSir.cn,穿越时空的Linuxsir!

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

iptables--无法从internet访问局域网内的web server(在线等)

[复制链接]
发表于 2005-3-17 11:45:43 | 显示全部楼层 |阅读模式
本人用一台电脑作NAT Server,具体配置如下:

系统:Fedora CORE 3
eth0:连接internet(dhcp获得IP)
eth1:连接局域网(10.144.84.12/8)

由于目前仅作测试,没有对连接进行任何限制。
建立natout.sh如下:
------------------------------------------------------
#!/bin/sh
# load any special modules.
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc

# start ip forwarding.
echo 1 > /proc/sys/net/ipv4/ip_forward

#start SNAT
iptables -A POSTROUTING -t nat -s 10.144.84.0/255.0.0.0 -o eth0 -j MASQUERADE
--------------------------------------------------------------------------------------------------------
执行natout.sh后,局域网内电脑可以访问internet.

**********但是**********

建立natin.sh如下:
--------------------------------------------------
#!/bin/sh
# load any special modules.
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc

# start ip forwarding.
echo 1 > /proc/sys/net/ipv4/ip_forward

# start DNAT
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 10.144.84.2
-----------------------------------------------------------------------------------------------

执行natin.sh后,却无法从internet访问局域网内的web server,提示超时。(10.144.84.2为局域网内web server,已配置并测试完好)。

请高手诊断,并请赐教。先谢了!
发表于 2005-3-17 13:52:21 | 显示全部楼层
是用pppoe进行拨号的吗
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 10.144.84.2
改为
iptables -t nat -A PREROUTING -i eth0 -p tcp -s any/0 --dprot 80 -j DNAT --to-destination 10.144.84.2:80
或者用这个试一下
iptables -t nat -A PREROUTING -i ppp0 -p tcp -s any/0 --dprot 80 -j DNAT --to-destination 10.144.84.2:80
如果不行就最好申请一个动态的免费域名,是for linux 的
然后在linux上做一下端口映射,应该没有什么问题
回复 支持 反对

使用道具 举报

发表于 2005-3-17 14:02:54 | 显示全部楼层
顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!顶!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-17 14:11:41 | 显示全部楼层
Post by RootZero
是用pppoe进行拨号的吗
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 10.144.84.2
改为
iptables -t nat -A PREROUTING -i eth0 -p tcp -s any/0 --dprot 80 -j DNAT --to-destination 10.144.84.2:80
或者用这个试一下
iptables -t nat -A PREROUTING -i ppp0 -p tcp -s any/0 --dprot 80 -j DNAT --to-destination 10.144.84.2:80
如果不行就最好申请一个动态的免费域名,是for linux 的
然后在linux上做一下端口映射,应该没有什么问题



谢谢RootZero的回复.
我用的不是PPPOE拨号,是局域网动态获得IP方式连入internet的。
用上面第一种方法试过了, 还是不成功。

继续在线等.......................
回复 支持 反对

使用道具 举报

发表于 2005-3-17 16:28:59 | 显示全部楼层
做port map,需要指定来和去。
也就是需要对linux服务器进行本地ip的封包。你搞错了。
需多看看iptables的书。
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 10.144.84.2
这句有去,
那数据返回到哪里呢?
呵呵。
回复 支持 反对

使用道具 举报

发表于 2005-3-17 18:15:51 | 显示全部楼层
我也很想知道!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-18 16:50:23 | 显示全部楼层
Post by szkingrose
做port map,需要指定来和去。
也就是需要对linux服务器进行本地ip的封包。你搞错了。
需多看看iptables的书。
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-destination 10.144.84.2
这句有去,
那数据返回到哪里呢?
呵呵。


谢谢szkingrose的回复,经过研究,问题已经得到解决。
耶!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

发表于 2005-3-19 08:17:49 | 显示全部楼层
我觉得你还是将加的那句话(呵呵,我认为只要加一句)

公布一下,这样下次有人碰到这样的问题,就知道按照我说的怎么操作了。

你说呢?呵呵。
回复 支持 反对

使用道具 举报

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

本版积分规则

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