代理服务器工作逻辑很简单,你的网络请求先发送给代理,由它代为向外转发,再把获取的数据传回本地。目标网站记录到的IP地址是代理节点,不是本机真实IP。实际使用方式,取决于代理协议类型,以及你想让哪些应用流量走代理通道。
主流代理协议一共三类。HTTP代理仅处理网页请求,HTTPS代理负责加密网页访问,SOCKS5代理底层兼容性更强,不限制上层协议,游戏、邮件、下载软件都可以通过它转发。商业代理服务商大多同时支持多种协议,采购时确认协议支持清单。自建代理场景,协议类型由安装软件决定,Shadowsocks、V2Ray采用SOCKS5或是私有协议,Squid、3proxy能够同时开启HTTP与SOCKS5服务。

获取代理地址之后,配置方式区分不同使用场景。浏览器配置是最简单的一类。Chrome、Edge没有独立代理选项,跟随系统代理设置。Windows打开设置,进入网络和Internet板块,点击代理选项,开启使用代理服务器,填写地址端口,保存配置即可。macOS打开系统设置,找到网络,选中当前在用网络连接,点击详细信息,切换代理标签页,勾选对应协议,录入地址端口。Firefox和其他浏览器不一样,自带独立代理配置入口,在设置页面搜索网络设置,单独配置,不会影响系统其余应用。浏览器需要频繁切换代理,可以安装SwitchyOmega扩展,保存多套情景模式,一键切换,省去反复修改系统设置的操作。
手机端配置操作更简单。安卓设备长按当前连接WiFi,选择修改网络,代理选项从无切换为手动,填写主机地址与端口。iPhone打开WiFi详情页面,滑到底部找到配置代理,选择手动,录入同样信息。需要留意手机代理仅对当前WiFi生效,切换移动网络之后代理失效。部分应用不会读取系统代理,包括一些游戏、视频客户端,使用独立网络通道,系统代理无法接管。
命令行工具需要单独配置代理参数。curl使用-x http://ip:port;wget修改配置文件,开启use_proxy = on,填写http_proxy = http://ip:port。Linux、macOS终端可以临时设置环境变量,export http_proxy=http://ip:port和export https_proxy=http://ip:port,仅对当前终端会话生效。编写Python爬虫,requests库在请求参数内添加proxies={'http': 'http://ip:port', 'https': 'http://ip:port'},http与https分开填写;代理开启身份验证时,用户名密码嵌入URL,格式为http://user:pass@ip:port。
配置完成之后需要验证是否生效。浏览器访问ipinfo.io或者ip.sb,页面展示IP为代理地址,代表配置成功。显示本机IP,就核对代理地址端口是否输入错误,或是代理节点本身失效。命令行执行curl -x http://ip:port http://httpbin.org/ip,返回origin字段就是代理IP。
使用代理时经常碰到几类故障。代理认证失败,很多是密码含有特殊符号,做URL编码之后再填入。HTTPS连接失败但HTTP访问正常,代表代理服务端SSL配置存在问题,更换支持HTTPS的代理节点。网络访问缓慢,优先检测本地到代理服务器的延迟,用ping工具测试,延迟偏高时更换节点,调整参数很难改善。免费代理不要用来登录账号、传输敏感资料,服务商能够查看明文流量,部分平台还会留存、倒卖访问记录。付费代理稳定性和隐私保护更好,挑选口碑靠谱服务商。
代理服务器本身属于中性技术工具,具体使用场景需要遵守当地法律法规。企业内网访问、数据采集、隐私防护、跨地域测试都属于合规应用场景。选择代理方案前,先明确自身需求,挑选匹配的协议与配置方案,不要盲目寻找可以直接使用的代理。