共计 1172 个字符,预计需要花费 3 分钟才能阅读完成。
爬虫或者不能访问外网时,可能需要用到代理服务器,接下来使用 docker 搭建代理 squid 服务器。
一、复制配置文件
# 创建一个临时容器
docker run -d --rm --name squid -p 3128:3128 ubuntu/squid
# 复制配置文件
mkdir /home/docker/squid && \
cd /home/docker/squid/ && \
docker cp squid:/etc/squid/squid.conf . && \
docker rm -f squid
二、配置启动
2.1 不需要设置密码
1、修改配置
sed -i "s/http_port 3128/http_port 0.0.0.0:3128/g" squid.conf
sed -i "s/http_access deny all/http_access allow all/g" squid.conf
2、启动容器
docker run -d \
--name squid \
-v /home/docker/squid/squid.conf:/etc/squid/squid.conf \
-p 3128:3128 ubuntu/squid
2.2 配置用户名密码
注意: 不需要认证则无需进行操作。
1、生成密码
# 生成密码文件
cd /home/docker/squid/ && docker run --rm -ti xmartlabs/htpasswd admin admin > htpasswd
2、修改配置
sed -i "s/http_port 3128/http_port 0.0.0.0:3128/g" squid.conf
# 需要添加在 http_access deny all 前面,这里添加到最前面
sed -i '1i\auth_param basic program \/usr\/lib\/squid\/basic_ncsa_auth \/etc\/squid\/htpasswd\nacl auth_user proxy_auth admin\nhttp_access allow auth_user' squid.conf
3、启动容器
docker run -d \
--name squid \
-v /home/docker/squid/squid.conf:/etc/squid/squid.conf \
-v /home/docker/squid/htpasswd:/etc/squid/htpasswd \
--restart always \
-p 3128:3128 ubuntu/squid
三、测试
内网机器没有配置代理时不可访问百度,配置后可以进行访问。
curl www.baidu.com -x http://username:password@ip:3128
使用服务器作为代理前的 ip 和代理后的 ip。
curl http://myip4.ipip.net/ -x http://username:password@ip:3128
提醒:本文发布于772天前,文中所关联的信息可能已发生改变,请知悉!
AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完