正向代理:

squid服务器 eth0 10.10.10.100 (连接内网)  eth1:192.168.2.33(连接外网)

客户端ip地址 10.10.10.200 

[root@localhost ~]# yum install squid

[root@localhost ~]# vim /etc/squid/squid.conf

 919 http_port 10.10.10.100:3128  (必须)

1575 cache_mem 64 MB  (必须)

1782 cache_dir ufs /var/spool/squid 100 16 256 (必须)

1838  cache_swap_low 90
1839  cache_swap_high 95

1944 access_log /var/log/squid/access.log squid

 610  http_access allow  all  (必须)

1960  cache_log /var/log/squid/cache.log

1970  cache_store_log /var/log/squid/store.log

 778  reply_body_max_size 1024 allow all

[root@localhost ~]# service squid restart
停止 squid:.                                              [确定]
启动 squid:.                                              [确定]

内网客户端需要的配置:

squid代理实例_代理实例 

 

squid代理实例_代理实例_02 

注意此处的代理应该是在局域网设置这里的

 

squid代理实例_squid_03 

这个时候ping 192.168.2.50 还是不通的。

 透明代理设置:

[root@localhost ~]# vim /etc/squid/squid.conf

 919 http_port 10.10.10.100:3128  transparent

[root@localhost ~]# echo1>>/proc/sys/net/ipv4/ip_froward

[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0

[root@localhost ~]# service squid restart

[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0  -j REDIRECT --to-port  3128

客户端代理那个去掉,ip地址加上网关10.10.10.100

 

squid代理实例_代理实例_04 

注意这里因为访问的是ip地址,不需要做dns解析方面,如果要真实的访问外网的域名还要有dns设置。在iptables上加一条规则

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -p udp --dport 53  -o eth1 -j MASQUERADE
 

 反向代理:

  919 http_port 192.168.2.33:80  vhost

1186         cache_peer  10.10.10.100        parent    80   0    originserver

测试:

 

squid代理实例_squid_05 

如果重启squid错误,配置有没有错误,那么检查下80端口是否已经被占用,如果是停掉服务后在重启。这里的squid配置只是基于前面的更改,完整还需要允许通过等相应配置。