HTTP代理使用人群不少,但从零搭建一套可用服务,很多人卡在起步阶段。下面分开讲获取渠道和搭建方式。
代理IP获取渠道大致分成三类。第一类公开代理池,网上检索免费代理,站大爷、快代理、66免费代理这类站点每日更新IP列表。这类站点依靠爬虫抓取全网公开代理,验证存活后对外展示。优点是零成本,缺点可用率很低。实测公开代理池平均连接成功率仅四成,十个IP里面能稳定运行半小时的都算运气不错。IP匿名层次参差不齐,不少标注高匿的代理依旧会透出真实IP,安全层面完全碰运气。
第二类付费代理平台,快代理、芝麻代理、阿布云都属于这类。计费模式按量或者包月,IP池规模更大,可用性、速度远优于免费代理。适合爬虫、数据采集这类对稳定性有需求的场景。付费代理一般开放API接口,调用接口获取可用IP和端口,程序直接接入。芝麻代理HTTP隧道方案成熟,不用自己维护IP池,所有请求走统一入口,平台自动轮换出口IP。

第三类,依托自有服务器搭建私有代理。手上有VPS或者云服务器,部署代理服务端,就能生成专属代理。可控性最强,IP独享,不受其他用户挤占资源,速度稳定性自己把控。缺点在于需要自主维护,服务器到期代理同步失效。
再聊搭建。Squid是最常用方案,Linux安装简单。Ubuntu、Debian执行apt install squid,CentOS换成yum install squid。安装完成配置文件路径/etc/squid/squid.conf,默认仅监听本地3128端口,修改配置开放外部访问。找到http_port行改为http_port 0.0.0.0:3128,acl规则添加允许访问IP段,放开http_access allow all,重启服务即可启用。这样配置属于开放代理,任何人都可以接入,风险很高。正规部署增加账号认证,Squid支持basic认证,htpasswd生成密码文件,配置引用文件,连接代理时需要填写账号密码。
TinyProxy更加轻量化,适合资源有限的主机。apt install tinyproxy完成安装,配置文件/etc/tinyproxy/tinyproxy.conf,将Allow 127.0.0.1修改为Allow 客户端IP,注释该行就能放开全部来源,默认端口8888,修改后重启生效。TinyProxy不支持账号认证,只能依靠IP白名单管控访问,公网服务器不要随意开放。
Nginx也能实现正向代理,但配置流程繁琐,依赖ngx_http_proxy_connect_module模块,编译Nginx时需要一并加载。新增server段,listen 3128,补充resolver、proxy_pass相关规则。Nginx正向代理性能强,并发承载能力好,上手门槛高于Squid、TinyProxy,新手不建议优先尝试。
云服务器部署代理,有个很容易踩的坑。国内主流云厂商安全组默认放行80、443端口,3128、8888端口要去控制台手动放行。端口未开放,本地无论怎么调整配置都无法连接。国内服务器搭建代理访问境外站点,运营商会监测异常流量,出现端口封禁甚至机器下线风险,需要自行评估风险。
Python调用代理代码简单,requests库直接在proxies参数填入http、https地址,格式http://用户名:密码@IP:端口,无认证代理删除账号密码部分。urllib写法稍复杂,构建ProxyHandler后install_opener。浏览器代理设置在网络或者高级选项内填写地址端口,Chrome、Edge跟随系统代理配置,修改系统代理浏览器同步生效。
代理部署完成最好验证IP是否切换成功,访问httpbin.org/ip、ip.sb查看出口IP,返回IP和本机真实IP不一致代表代理生效。结果还是本机IP,代表代理未正常工作,要么配置写错,要么代理节点失效。
最后区分代理与VPN。代理仅接管指定程序流量,浏览器配置代理,其余软件依旧直连网络。VPN接管系统全部流量,所有应用流量经过隧道。二者适用场景不同,不要混淆。