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)

最后记得将服务器中对应的端口打开