安装squid

//检查是否安装squid
which squid
//
apt update
sudo apt install squid

配置squid的配置文件squid.conf

//备份squid默认配置文件
cp /etc/squid/squid.conf squid.conf.bak
//修改squid.conf
vi squid.conf

因为我第一次安装后,又把squid给卸载了,不知道改动了什么地方,再次安装squid的时候,/etc下没有自动生成squid.conf,所以又去根据squid的版本,又去squid官网找的默认配置,改为如下:

http_port 8128  #端口号
cache_mgr  xxx@gmail.com  #Squid 崩溃时邮件发送地址
# http_access deny all
cache_dir null /tmp
#配置用户名密码,避免被盗用,后面会生成passwords文件
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated

  

:wq保存,然后检查配置文件语法是否正确

//检查语法:
squid -k parse
//若不报错,刚说明配置无误

//第一次启动前初始化缓存:
squid -z
//此命令创建了16个一级子目录

我这里遇到两个错误:
1.WARNING: Could not determine this machines public hostname. Please configure one or set ""visible_hostname"".
在squid.conf配置文件中添加:

visible_hostname squid.packet-pushers.net

2.Squid cache directory not been initialized
好像是squid的缓存目录还没有没有初始化

//重启squid,自动创建缓存目录
sudo service squid restart

创建刚才配置文件中配置的密码,使用htpasswd来创建passwords文件,htpasswd命令在软件包apache2-utils中。

sudo apt install apache2-utils

//生成password文件 这里的路径和squid.conf中配置的路径一致
sudo htpasswd -c -d /etc/squid/passwords 自定义用户名  

//然后输入两次至少8位的密码,还要保证生成的passwords文件是可读的
sudo chmod o+r /etc/squid/passwords

启动服务

// 开机启动
systemctl enable squid.service

sudo service squid start
//重启服务
squid restart

//关闭服务
squid stop

查询端口状态

netstat -tnl

//查看3128端口是否开启
netstat -tnl | grep 3128

查看squid访问日志

tail -f /var/log/squid/access.log

注意:如果配置文件配置错误,修改后squid需要重新读取配置文件,然后重启squid

squid -k parse
squid -k reconfig

squid restart

参考博客
官方配置文件api
squid中文指南