Squid安装与配置(ip代理)
继前面一篇Tinyproxy安装与配置(ip代理),在实际使用中会发现在请求一些网站时会被拒绝,那是因为Tinyproxy其实不支持所谓的高匿代理。所以这次用功能更加丰富的squid试试。
1、安装
yum install squid -y
yum install httpd-tools -y
2、配置
1、备份原始配置(确实已经有个default了)
mv squid.conf squid.conf.bak
2、新增配置
# 设置你的监听端口
http_port 3128
# 设置授权
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
# 只允许通过身份验证的用户
http_access allow auth_users
# 设置哪些ip段可以使用代理Ip,我设置了全部
acl allowed_ips src all
http_access allow allowed_ips
# 拒绝对代理的所有其他访问
http_access deny all
#以下是高匿的设置
request_header_access Via deny all
request_header_access X-Forwarded-For deny all
# 设置你的出口ip
#acl ip1 myip 1.1.1.1
#tcp_outgoing_address 1.1.1.1 ip1
注意一下上面的basic_ncsa_auth文件路径可能不对,可以用find找一下。
3、设置密码
sudo htpasswd -c /etc/squid/passwords admin
输入两遍密码
4、测试一下配置是否有语法错误
sudo squid -k check
5、自动添加本机IP脚本
vim add_ip.sh
#!/bin/bash
# 获取本机所有IP地址列表
ip_addresses=($(hostname -I))
# Squid配置文件路径
squid_conf="/etc/squid/squid.conf"
# 遍历IP地址列表,为每个IP添加参数到配置文件
for ip in "${ip_addresses[@]}"
do
# 添加 acl 参数
echo "acl ip${ip//./_} myip $ip" | sudo tee -a "$squid_conf" > /dev/null
# 添加 tcp_outgoing_address 参数
echo "tcp_outgoing_address $ip ip${ip//./_}" | sudo tee -a "$squid_conf" > /dev/null
done
添加权限
chomd 755 add_ip.sh
执行脚本
sh add_ip.sh
重新打开squid.conf文件看看变化,再自己调整一下。
3、测试
curl -x http://admin:密码@IP:3128 http://httpbin.org/get
OK,一切正常,收工!!
4、常用命令
启动Squid服务:
sudo systemctl start squid
停止Squid服务:
sudo systemctl stop squid
重启Squid服务:
sudo systemctl restart squid
查看Squid服务状态:
sudo systemctl status squid
检查Squid配置文件是否有语法错误:
sudo squid -k check
刷新Squid缓存:
sudo squid -k reconfigure
强制Squid重新读取配置文件:
sudo squid -k parse
显示Squid版本信息:
squid -v
设置开机自启动
sudo systemctl enable squid
5、参考
https://blog.mjjman.com/archives/39
https://bbs.huaweicloud.com/blogs/354758