ubuntu使用squid搭建代理
安装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