当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : squid 透明代理求解
帖子发表于 : 2011-04-20 16:02 

注册: 2010-10-11 12:37
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
在ubuntu server 10.10上使用squid做透明代理,配置文件如下:

1.网络:(/etc/network/interfaces)
代码:
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
   address 192.168.1.10
   netmask 255.255.255.0
   network 192.168.1.0
   broadcast 192.168.1.255

auto eth0
iface eth0 inet dhcp


pre-up iptables-restore < /etc/iptables.rules
post-down iptables-save -c > /etc/iptables.rules



2.squid.conf配置
代码:
http_port 192.168.1.10:3128 transparent
http_access allow all

(其它采用默认设置)


3.防火墙设置(/etc/iptables.rules)
代码:
# Generated by iptables-save v1.4.4 on Tue Apr 12 10:04:55 2011
*filter
:INPUT ACCEPT [51076:5585982]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [142531:117080848]
[63922:9397473] -A INPUT -i eth1 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 3128 -j ACCEPT
[123758:128588019] -A INPUT -i eth0 -p tcp -m state --state RELATED,ESTABLISHED -m tcp --sport 80 -j ACCEPT
[100871:13304069] -A OUTPUT -o eth0 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 80 -j ACCEPT
[0:0] -A OUTPUT -o eth1 -p tcp -m state --state RELATED,ESTABLISHED -m tcp --sport 80 -j ACCEPT
COMMIT
# Completed on Tue Apr 12 10:04:55 2011
# Generated by iptables-save v1.4.4 on Tue Apr 12 10:04:55 2011
*nat
:PREROUTING ACCEPT [193858:26174737]
:OUTPUT ACCEPT [6355:405438]
:POSTROUTING ACCEPT [6355:405438]
[3292:173128] -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
COMMIT
# Completed on Tue Apr 12 10:04:55 2011



问题如下:
在配置文件中已经设置声明使用透明代理,但在客户端测试时仍然需要设置代理服务器,但此时代理服务器地址为:192.168.1.10:80,个人认为防火墙已经进行了端口的转发(80->3128)。注:客户端IP地址和服务器eth1
在同一网段,并可以PING通。请大家看看我哪做的不对,怎么解决?


页首
 用户资料  
 
2 楼 
 文章标题 : Re: squid 透明代理求解
帖子发表于 : 2011-04-20 23:50 
头像

注册: 2007-02-14 13:54
帖子: 308
送出感谢: 0 次
接收感谢: 0 次
怀疑你的 iptables 有没有生效,用
代码:
 sudo iptables -L -v -n -t nat

检查一下


页首
 用户资料  
 
3 楼 
 文章标题 : Re: squid 透明代理求解
帖子发表于 : 2011-04-21 9:42 

注册: 2010-10-11 12:37
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
sense 写道:
怀疑你的 iptables 有没有生效,用
代码:
 sudo iptables -L -v -n -t nat

检查一下

结果如下,麻烦你看一下。
代码:
Chain PREROUTING (policy ACCEPT 897K packets, 90M bytes)
 pkts bytes target     prot opt in     out     source               destination
28479 1525K REDIRECT   tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 3128

Chain OUTPUT (policy ACCEPT 37620 packets, 2519K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 37620 packets, 2519K bytes)
 pkts bytes target     prot opt in     out     source               destination


页首
 用户资料  
 
4 楼 
 文章标题 : Re: squid 透明代理求解
帖子发表于 : 2011-04-21 10:30 
头像

注册: 2007-02-14 13:54
帖子: 308
送出感谢: 0 次
接收感谢: 0 次
你的客户端是以 192.168.1.10 作为默认网关吗?看你的服务器不象做网关的配置。不做网关也是做不了透明代理的


页首
 用户资料  
 
5 楼 
 文章标题 : Re: squid 透明代理求解
帖子发表于 : 2011-04-21 17:36 

注册: 2010-10-11 12:37
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
我的网关设置确实是192.168.1.10,没有采用192.168.1.1。并且在每个客户机上都设置192.168.1.10为网关。但还是必须设置代理后才能上网。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: squid 透明代理求解
帖子发表于 : 2011-04-21 19:34 
头像

注册: 2007-02-14 13:54
帖子: 308
送出感谢: 0 次
接收感谢: 0 次
你的 iptables 设置中没有设 nat,客户端不能搜索 dns,所以不能上网。先执行下面的命令后再试
代码:
sudo su
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译