论坛风格切换切换到宽版
  • 935阅读
  • 4回复

[问题求助]一个用IPTABLES做DNAT的奇怪问题! [复制链接]

上一主题 下一主题
离线skydancer.
 
发帖
2053
C币
-193385
威望
392
贡献值
1
银元
-2
铜钱
4675
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
我的局域网内有两台服务器:服务器A(192.168.0.111,做为WEB服务器用,windows200.0),服务器B(双网卡,外部ip.地址:eth0:0:202.119.107.112,eth0:1:202.119.107.111,.内部ip地址:eth1:192.168.0.1.88,LINUX9.0)是linux防火墙. (        游戏          )

我现在在服务器B上面用iptables做了一个.端口转发程序,以达到外网用户直接用20.2.119.107.111就可以访问192..168.0.111服务器。              汽车

同.时我在服务器B上面还做了一个SNAT(202.119..107.112)专门负责此局域网的上网。 健康

现在问题是这样,非局.域网用户(能上网)可以用202.119.107.111访问192.168.0.1.11服务器,可是在局域网内部的用户(通过服务器BSNAT上网的用户),就不能访问202.119.107..111,不知道是什么原因! .

我的ip.tables代码如下: [成人用品]

iptables -F
iptables -F -.t nat 健康
ifconf.ig eth0:1 202.119.107.111 netmask 255.25.5.255.0 .

iptables -I F.ORWARD -p tcp -.-dport 80 -j ACCEPT              汽车



/sbin/iptables -t nat -A POSTROUT.ING -o eth0 -j SNAT --to 202.119..107.112 .
iptables -t nat -A PR.EROUTING -p tcp -d .202.119.107.111 --dport 80 -j DNAT --to-de.stination 192.168.0.111:80            杀毒

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线haliao8.
发帖
2227
C币
-60440
威望
385
贡献值
1
银元
-2
铜钱
4841
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-13
我刚才试了好像加了下面这句就可以了:
/sbin/iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 202.119.107.112


不知道什么原因,望各位指点!

离线qw2006.
发帖
1975
C币
-140433
威望
358
贡献值
1
银元
-1
铜钱
4396
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-13
FORWARD的默认规则是什么?
如果是ACCEPT,你的iptables -I FORWARD -p tcp --dport 80 -j ACCEPT就没用了
如果默认是DROP,那么你不能进行正确的DNS解析,因为没有开通UDP-53

离线klyxb.
发帖
2047
C币
-313895
威望
407
贡献值
1
银元
-1
铜钱
4726
人人网人气币
0
只看该作者 地板  发表于: 2010-04-13
果然,我把这句(iptables -I FORWARD -p tcp --dport 80 -j ACCEPT)注释掉没有任何影响,那我这个iptables规则如何写算合理呢?

发帖
2087
C币
-235584
威望
384
贡献值
2
银元
-2
铜钱
4678
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-13
看来你的默认规则就是ACCEPT了
如果这样来看,你的策略是不合理的
因为IPTABLES会按照策略表里的策略走,如果都不满足,则会遵循自己的默认策略,而现在你全是ACCEPT

快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个