1. 概述
个人需求,需要一个/多个代理服务器来进行api请求。 网上的免费代理不可靠;收费代理又太贵,一个月至少50+。 手头有空闲的云服务器,一般都会送一个公网ip,很适合做代理服务器。
系统:购买的云服务器, centos7系统。1C2T,1M带宽 调用个api足够了。 这里选择用tinyproxy,软件如其名,体积小,占用资源少。1.10版本以上支持basic验证,功能对于本人来说够用了。
~其他的软件还有squid,相对来说更耗资源,同时功能也更多。
2. 安装
2.1 yum 安装
~ yum install -y tinyproxy
~ tinyproxy -v
tinyproxy 1.8.3
如上,yum默认安装的是1.8版本。1.8版本不支持basic验证,对于公网代理来说不安全,这里需要去github安装最新的稳定版:1.10版本
2.2 docker安装
#拉取镜像
docker pull monokal/tinyproxy
#运行一个容器
docker run -d --name='tinyproxy' --env BASIC_AUTH_USER=testU --env BASIC_AUTH_PASSWORD=testP --env TIMEOUT=600 -p 3128:8888 monokal/tinyproxy:latest ANY
代理账号:testU 代理密码:testP 开放端口:3128 允许任意端口访问。
需要自定义可以根据下面的更改
Usage:
docker run -d --name='tinyproxy' -p <Host_Port>:8888 --env BASIC_AUTH_USER=<username> --env BASIC_AUTH_PASSWORD=<password> --env TIMEOUT=<timeout> monokal/tinyproxy:latest <ACL>
- Set <Host_Port> to the port you wish the proxy to be accessible from.
- Set <ACL> to 'ANY' to allow unrestricted proxy access, or one or more space seperated IP/CIDR addresses for tighter security.
- Basic auth is optional.
- Timeout is optional.
Examples:
docker run -d --name='tinyproxy' -p 6666:8888 monokal/tinyproxy:latest ANY
docker run -d --name='tinyproxy' -p 7777:8888 monokal/tinyproxy:latest 87.115.60.124
docker run -d --name='tinyproxy' -p 8888:8888 monokal/tinyproxy:latest 10.103.0.100/24 192.168.1.22/16
docker run -d --name='tinyproxy' --env BASIC_AUTH_USER=testU --env BASIC_AUTH_PASSWORD=testP --env TIMEOUT=600 -p 3128:8888 monokal/tinyproxy:latest ANY
3. 开放端口
开放端口3128
firewall-cmd --add-port=3128/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port
云服务器的设置了安全组的还需要在云服务器厂商那边开放对应的端口。
4.其他
4.1 启动docker时报错如下:
docker: Error response from daemon: driver failed programming external connectivity on endpoint loving_bassi (37b4c399f676cf46e35fd26b2298ad81aac87739d8aee416f449e36c6cb22503): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 90 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.
解决方法:
pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
service docker restart