tar zxvf squid-3.4.6.tar.gz -C /opt/
cd /opt/squid-3.4.6
./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-arp-acl \      //可以在规则链中设置为直接通过客户端MAC管理,防止客户端使用IP欺骗
--enable-linux-netfilter \  //使用内核过滤
--enable-linux-tproxy \     //使用透明模式
--enable-async-io=100 \     //异步I/O,提升存储性能
--enable-err-language="Simplify_Chinese" \   //错误信息显示语言
--enable-underscore \       //允许URL中有下划线
--enable-poll \             //使用poll模式,提升性能
--enable-gnuregex           //使用GNU正则表达式
| 服务器 | 操作系统 | IP地址 | 使用软件 | 
|---|---|---|---|
| squid代理服务器 | centos7.3 | 内192.168.100.1 外12.0.0.1 | squid | 
| 外网web服务器 | centos7.3 | 12.0.0.12 | http | 
| client | windows7 | 192.168.100.100 | IE浏览器 | 


vim /etc/sysctl.conf
net.ipv4.ip_forward = 1   //添加打开路由转发功能
sysctl -p //立即生效
echo "1" > /proc/sys/net/ipv4/ip_forward
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
useradd -M -s /sbin/nologin squid
chown -R squid.squid /usr/local/squid/var/
vim /etc/squid/squid.conf
# Squid normally listens to port 3128
http_port 192.168.100.1:3128  transparent  //设置为内网端口代理
cache_mem 64 MB                   #指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4
reply_body_max_size 10 MB         #允许用户下载的最大文件大小,以字节为单位。默认设置0表示不进行限制
maximum_object_size 4096 KB       #允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户
...
cache_effective_user squid        #添加   指定程序用户
cache_effective_group squid       #添加   指定账号基本组
coredump_dir /usr/local/squid/var/cache/squid     #在这一行上方添加
systemctl restart squid.service
iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128   //允许http端口服务
iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128   //允许https端口服务
iptables -I INPUT -p tcp --dport 3218 -j ACCEPT  

原文:http://blog.51cto.com/13659253/2150048