LinuxSir.cn,穿越时空的Linuxsir!

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

squid+iptables多网段透明代理问题

[复制链接]
发表于 2005-3-17 15:55:27 | 显示全部楼层 |阅读模式
我做了透明代理,用一台电脑做测试正常:http://bbs.chinaunix.net/forum/viewtopic.php?t=505206

然后接入到网络,不正常!只有和内网网卡相同网段的IP可以上网,其他网段的都无法上网。

搜索到一个以前的帖子:
http://bbs.chinaunix.net/forum/v ... 3&show_type=old

如法炮制加入路由:


  1. Kernel IP routing table
  2. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
  3. 192.168.20.0    192.168.1.100   255.255.255.0   UG    0      0        0 eth1
  4. 192.168.70.0    192.168.1.100   255.255.255.0   UG    0      0        0 eth1
  5. 192.168.50.0    192.168.1.100   255.255.255.0   UG    0      0        0 eth1
  6. 192.168.80.0    192.168.1.100   255.255.255.0   UG    0      0        0 eth1
  7. 192.168.2.0     *               255.255.255.0   U     0      0        0 eth0
  8. 192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
  9. 192.168.60.0    192.168.1.100   255.255.255.0   UG    0      0        0 eth1
  10. 192.168.10.0    192.168.1.100   255.255.255.0   UG    0      0        0 eth1
  11. 192.168.40.0    192.168.1.100   255.255.255.0   UG    0      0        0 eth1
  12. 192.168.90.0    192.168.1.100   255.255.255.0   UG    0      0        0 eth1
  13. 169.254.0.0     *               255.255.0.0     U     0      0        0 eth1
  14. default         192.168.2.2     0.0.0.0         UG    0      0        0 eth0
复制代码


其中eth0是外网网卡,IP:192.168.2.3,eth1是内网网卡,IP:192.168.1.100,外网网卡接的网关:192.168.2.2。

现在故障一样,其他网段的IP可以ping通eth1、eth0,但是ping不通外网网卡接的网关:192.168.2.2,大家帮我看看路由还有哪里有问题。

service iptables stop,再执行防火墙脚本,还是不行。

哪里有问题?着急啊!!

好象DNS又有问题了,我在代理服务器里面ping域名也无法解析了。其他网段的客户端机器也是这样。但是和内网网卡在同意IP段的客户机器却可以上网,可以解析域名。
发表于 2005-3-17 16:16:41 | 显示全部楼层
应该是你的firewall出错了
你将你的iptables贴出来看看吧.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-22 09:41:32 | 显示全部楼层
Firewall是安装的时候选择的自定义安装,把需要的几个端口打开,安装好后用setup重新设置了一下防火墙,加开了53端口,其他都是默认设置。还有就是做透明代理设置的iptables脚本:

echo "starting ip forward"
echo 1 >/proc/sys/net/ipv4/ip_forward
echo "starting iptables rules"
modprobe ip_tables
modprobe ip_nat_ftp
/sbin/iptables -F -t nat
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 #将所有80端口的包转发到3128端口
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #对eth0端口进行欺骗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-22 09:49:01 | 显示全部楼层
是不是这一行要增加其他的网段:


iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 #将所有80端口的包转发到3128端口

现在eth1网段上网没有问题,其他网段都不行,我中午把这个改一下试试。
回复 支持 反对

使用道具 举报

发表于 2005-3-22 15:51:33 | 显示全部楼层
哈哈我就是用这个做的学校网络,这个时候你需要加一台win2000的dhcp服务器,问题迎刃而解,win2000的单网卡就可以了,和linux服务器接局域网的网卡分在一个网段里,ok?试试
回复 支持 反对

使用道具 举报

发表于 2005-3-22 16:29:29 | 显示全部楼层
linux做一个dhcp不行吗
回复 支持 反对

使用道具 举报

发表于 2005-3-22 17:13:53 | 显示全部楼层
这个提议好,我倒是没考虑到,毕竟2000接触的比linux多一些,首先就想到用2000
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-22 17:38:48 | 显示全部楼层
Post by 毕超峰
哈哈我就是用这个做的学校网络,这个时候你需要加一台win2000的dhcp服务器,问题迎刃而解,win2000的单网卡就可以了,和linux服务器接局域网的网卡分在一个网段里,ok?试试


我认为这个方法不可行!

首先我们有个WIN的DHCP服务器在代理服务器的内网网卡所在网段。

其次我认为现在主要是路由问题,问题出在代理服务器上。
回复 支持 反对

使用道具 举报

发表于 2005-3-23 10:50:19 | 显示全部楼层
但是我就这么实现啦,我学校分了三个网段192.168.1/.2/.3共有500多台机器,事实摆在眼前啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-23 15:26:51 | 显示全部楼层
问题解决了!

firewall的脚本不变,

添加路由:

route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.1.100 dev eth1
……

防火墙也没有变化,开启后有选择地开几个端口。

上次出故障的原因可能是我在firewall脚本里面添加了其他的规则、或者防火墙、路由、firewall脚本和squid的启用顺序有问题。有同样问题的可以试试重启网卡,然后依次执行上述操作。
回复 支持 反对

使用道具 举报

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

本版积分规则

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