有关linux--ipchains的问题(急)

有关linux--ipchains的问题(急)

公司采用adsl上网,使用linux服务器作代理,想采用ipchains包转发共享上网,其中服务器有三块网卡,IP分别是:  
eth0:192.168.0.1  -- 连接adsl适配器  
eth1:192.168.201  -- 连接内部网一  
ech2:192.168.1.1  -- 连接内部网二  
上网用pppoe协议,使用rp-pppoe。  
ipchains配置了以下几种:  
1.第一种配置  
-P input ACCEPT  
-P forward DENY  
-P output ACCEPT  
-A forward -s 192.168.0.0/24 -j MASQ  
-P forward MASQ  

2.第二种配置  
-P input ACCEPT  
-P forward DENY  
-P output ACCEPT  
-A forward -s 192.168.0.0/24 -i ppp0 -j MASQ  
-P forward MASQ  

3.第三种配置  
-P input ACCEPT  
-P forward DENY  
-P output ACCEPT  
-A forward -s 192.168.0.0/24 -d 0/0 -i ppp0 -j MASQ  
-P forward MASQ  


4.第四种配置  
-P input ACCEPT  
-P forward DENY  
-P output ACCEPT  
-A forward -s 192.168.0.0/24 -d 0/0  -j MASQ  
-A forward -d 192.168.0.0/24 -s 0/0  -j MASQ  
-P forward MASQ  


现在问题是,服务器可以上网,而客户机只能ping/tracert出去,能进行域名解析:  
c:\>ping www.163.com  
c:\>tracert www.163.com  
以上两个命令都是可用的。  
但客户机就是不能外部网,(http/ftp/telnet)  

请问:是不是因为ipchains造成的,怎样配置pchains?   
  
--

      
...      
刚试过,还是一样,只能找到IP地址,打不开网页等      
echo 1 > /proc/sys/net/ipv4/ip_forward 已用了.

仔细看,又作了以下工作
1.看路由表,好象没错
[root@proxy sysconfig]# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
218.17.3.1      0.0.0.0         255.255.255.255 UH       40 0          0 ppp0
192.168.0.0     0.0.0.0         255.255.255.0   U        40 0          0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U        40 0          0 eth1
192.9.200.0     0.0.0.0         255.255.255.0   U        40 0          0 eth2
127.0.0.0       0.0.0.0         255.0.0.0       U        40 0          0 lo
0.0.0.0         218.17.3.1      0.0.0.0         UG       40 0          0 ppp0
2.参考一些方案:
[root@proxy sysconfig]# /sbin/depmod -a
[root@proxy sysconfig]# /sbin/modprobe ip_masq_ftp
modprobe: Can't locate module ip_masq_ftp
......

modprobe: Can't locate module ip_masq_*

是不是说明内核不支持?      
你没有ip_masq_ftp等模块,不过http不需要它们。如果要ftp的话还是要装上。
看看/usr/src/linux/.config,对应的
CONFIG_FIREWALL
CONFIG_IP_FIREWALL
CONFIG_IP_MASQUERADE
CONFIG_IP_MASQUERADE_ICMP
CONFIG_IP_MASQUERADE_IPAUTOFW
CONFIG_IP_MASQUERADE_IPPORTFW
CONFIG_IP_MASQUERADE_MFW
是不是都是=y或=m(应该是才对)
在linux上运行tcpdump,再从内部网主机telnet、www外部,看看结果。
还有你的ipchain里的地址写的很奇怪192.168.0.0/24?应该是/16吧。另外把
-P forward MASQ去掉。      
我的redhat7.1在/usr/src/linux/只有.tmpconfig文件,看了一下,没有如上的几项,但我想,如果在客户机上能ping通外部网主机,是不是说明能转发ICMP包?
所以内核就支持转发?      
即支持icmp的地址伪装.
你的内核可能不支持config_ip_masquerade,所以http什么都出不去或回不来.
也许你应该重新编译一下内核,确保列出的选项都选择为y或m.这样出入都没问题了.