实验环境

upload successful

Squid服务器配置

永久性开启路由转发

1
2
3
4
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1

sysctl -p

使用yum安装squid服务

1
yum -y install squid

修改squid配置文件

1
2
3
4
5
6
7
8
9
10
11
vi /etc/squid/squid.conf
acl local src 1.1.1.0/24 //允许1.0段的IP访问
http_access allow localnet //允许本机同网段访问
http_access allow all //允许所有访问
http_access deny all //拒绝所有
http_port 1.1.1.1:3128 transparent
cache_mem 64 MB
cache_dir ufs /var/spool/squid 1024 10 200
access_log /var/log/squid/access.log
minimum_object_size 0 KB
maximum_object_size 102400 KB

配置文件详解
http_port 3128      //设置监听的IP与端口号
cache_mem 64 MB      //额外提供给squid使用的内存,squid的内存总占用为 X * 10+15+“cache_mem”,其中X为squid的cache占用的容量(以GB为单位),
              //比如下面的cache大小是100M,即0.1GB,则内存总占用为0.1*10+15+64=80M,推荐大小为物理内存的1/3-1/2或更多。
maximum_object_size 4 MB   //设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘
minimum_object_size 0 KB   //设置squid磁盘缓存最小文件
maximum_object_size_in_memory 4096 KB   //设置squid内存缓存最大文件,超过4M的文件不保存到内存
cache_dir ufs /var/spool/squid 100 16 256   //定义squid的cache存放路径 、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量
logformat combined %>a %ui %un [%tl] “%rm %ru HTTP/%rv” %Hs %<st “%{Referer}>h” “%{User-Agent}>h” %Ss:%Sh //log文件日志格式
access_log /var/log/squid/access.log combined  //log文件存放路径和日志格式
cache_log /var/log/squid/cache.log   //设置缓存日志
logfile_rotate 60   //log轮循 60天
cache_swap_high 95  //cache目录使用量大于95%时,开始清理旧的cache
cache_swap_low 90   //cache目录清理到90%时停止。
acl localnet src 192.168.1.0/24  //定义本地网段
http_access allow localnet  //允许本地网段使用
http_access deny all  //拒绝所有
visible_hostname squid.david.dev  //主机名
cache_mgr mchina_tang@qq.com  //管理员邮箱

初始化缓存目录

1
squid -z

重启squid

1
systemctl restart squid

放行防火墙、关闭沙盒(squid服务器、web服务器都必须执行)

1
2
3
firewall-cmd --add-port=3128/tcp --permanent
firewall-cmd --reload
setenforce 0

客户端验证

设置代理

1
2
3
4
5
vim /etc/skel/.bash_profile
export http_proxy=http://服务端内网ip:3128
export https_proxy=http://服务端内网ip:3128

source /etc/skel/.bash_profile

访问

1
2
curl 2.1.1.2
HTTP/1.1 200 OK