Ubuntu18配置squid服务
突然发现腾讯云的服务器可以访问cloudflare,所以想着在服务器上搭建个squid服务,以便自己的树莓派可以调用cloudflare的api接口,实现ddns的效果
安装
sudo apt-get update
sudo apt-get install squid -y
安装完成后服务自动启动
默认情况下监听在3128端口
命令
systemctl status squid
systemctl start squid
systemctl enable squid
配置
主配置文件:/etc/squid/squid.conf
修改默认端口为31280
修改forwarded_for为off-告诉 Squid 不要在 HTTP 请求中转发附加客户端的 IP 地址。
# Squid normally listens to port 3128
http_port 31280
#...
#Default:
forwarded_for off
设置IP-ACL
如果客户端具有静态的ip,则可以设置一个允许访问的ACL列表
/etc/squid/allowed_ips.txt
192.168.1.10
# All other allowed IPs
主配置文件中加入
# ...
acl allowed_ips src "/etc/squid/allowed_ips.txt"
# ...
#http_access allow localnet
http_access allow localhost
http_access allow allowed_ips
# And finally deny all other access to this proxy
http_access deny all
重启服务生效
身份验证
使用tee命令生成username:password
对附加到 /etc/squid/htpasswd
文件(USERNAME、PASSWORD自定义
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd
主配置文件中修改
# ...
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
# ...
#http_access allow localnet
http_access allow localhost
http_access allow authenticated
# And finally deny all other access to this proxy
http_access deny all
重启服务生效
requests库使用
python中requests库使用代理
PROXIES = {
"http": "http://USERNAME:PASSWORD@IP:PORT",
"https": "https://USERNAME:PASSWORD@IP:PORT",
}
requests.get(url, proxies=PROXIES)
最后记得将服务器中对应的端口打开