正向代理:
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:. [确定]
内网客户端需要的配置:
注意此处的代理应该是在局域网设置这里的
这个时候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
注意这里因为访问的是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错误,配置有没有错误,那么检查下80端口是否已经被占用,如果是停掉服务后在重启。这里的squid配置只是基于前面的更改,完整还需要允许通过等相应配置。