一、部署
要在CentOS 7.2上使用Squid开启HTTP、HTTPS和Socket代理,可以按照以下步骤操作:
1.安装Squid: 使用以下命令安装Squid软件包:
sudo yum install squid
2.配置Squid: 打开Squid配置文件/etc/squid/squid.conf:
sudo vi /etc/squid/squid.conf
3.配置HTTP代理: 找到并取消注释以下行,确保以下行在Squid配置文件中没有注释:
4.Ps: 配置了这个之后如果要修改端口,有缓存问题,最下面删除缓存
http_port 3128
5.配置HTTPS代理: 在Squid配置文件中添加以下行,以开启HTTPS代理:
http_port 3129 ssl-bump cert=/etc/squid/ssl_cert/myCA.pem generate-host-certificates=on dynamic_cert_mem_cache_size=4MB
ssl_bump server-first all
sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
sslcrtd_children 8 startup=1 idle=1
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all
6.配置Socket代理: 在Squid配置文件中添加以下行,以开启Socket代理:
acl socket_ports port 1080
acl allowed_ips src 192.168.0.0/24
http_access allow socket_ports allowed_ips
7.保存并关闭文件。
8.启动Squid服务: 使用以下命令启动Squid服务:
sudo systemctl start squid
二、放开配置防火墙端口
查看打开的防火墙端口列表
firewall-cmd --zone=public --list-ports
1.放开 3128 和 3129 端口:
sudo firewall-cmd --zone=public --add-port=3128/tcp --permanent
sudo firewall-cmd --zone=public --add-port=3129/tcp --permanent
sudo firewall-cmd --reload
重启防火墙
sudo firewall-cmd --reload
1.去腾讯云服务器上面打开安全组 3128 端口
三、增加2句,隐藏真实ip变成匿名代理
via off
forwarded_for delete
1.最终配置:
http_port 3128 #默认端口号
acl all src 0.0.0.0/0.0.0.0 #允许所有ip访问, all是一个名字,可以随便起
via off
forwarded_for delete
http_access allow all #允许上面定义的all这个规则访问
1.初始化:在第一次启动之前或者修改了cache路径之后,需要重新初始化cache目录
squid -z
1启动:
systemctl start squid
然后就可以在浏览器或者自己的爬虫中使用了使用的话可以使用chrome+Proxy SwitchyOmega 进行配置查看代理日志可以使用如下命令:
tail -f /var/log/squid/access.log
四、后续修改了配置文件都需要重启
systemctl restart squid
等待Squid服务重启后,再次运行以下命令以确认Squid服务是否重新启动:
systemctl status squid
如果Squid服务状态为Active: active (running),
则表示服务已成功重启。
五、加快 https 代理访问速度
dns_v4_first on
六、配置用户名密码校验
httpd-tools: 这是包含 htpasswd 命令的软件包,用于创建和管理密码文件 要设置 Squid 的用户名和密码,可以按照以下步骤进行操作:
sudo yum install httpd-tools
输入以下命令创建密码文件并添加用户:
sudo htpasswd -c /etc/squid/passwd 用户名
替换 “用户名” 为你想要设置的实际用户名。执行此命令后,会要求你输入密码并确认密码。
如果要添加更多用户,可以使用以下命令:
sudo htpasswd /etc/squid/passwd 用户名
替换 “用户名” 为你想要添加的实际用户名。同样,执行此命令后,会要求你输入密码并确认密码。
打开 Squid 配置文件进行编辑:
sudo vi /etc/squid/squid.conf
在配置文件中找到 http_access allow all
这一行,删除,并在原位置添加以下配置:
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
这些配置将启用基本的 HTTP 身份验证,并将用户凭据保存在 /etc/squid/passwd
文件中。
重启 Squid 服务以使配置生效:
sudo systemctl restart squid
现在访问 Squid 代理时,将需要提供用户名和密码才能获得访问权限。
缓存问题解决
清除 Squid 缓存:
使用以下命令停止 Squid 服务
sudo systemctl stop squid
- 使用以下命令清除 Squid 缓存文件:
sudo rm -rf /var/spool/squid/*
使用以下命令启动 Squid 服务:
sudo systemctl start squid