- 安装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