如何使用代理:浏览器、curl 和 Python 设置教程

在列表中找到了代理,接下来怎么做?本教程介绍如何在最常用的工具中配置代理:浏览器、系统设置、curl 和 Python。所有示例都用 IP:端口 作为占位符,请从免费代理列表中复制实际值。

开始之前

  • 选择几秒前刚检测过、延迟较低的代理。
  • 注意协议:HTTP 代理和 SOCKS5 代理的配置方式不同。
  • 准备两三个备用代理,免费代理随时可能下线。

Firefox

Firefox 有独立于系统的代理设置:

  1. 打开 设置 → 常规 → 网络设置 → 设置…
  2. 选择 手动配置代理。
  3. HTTP 代理:在 HTTP 代理 中填写 IP 和端口,并勾选 也将此代理用于 HTTPS。
  4. SOCKS 代理:填写 SOCKS 主机,选择 SOCKS v5(或 v4),并勾选 使用 SOCKS v5 时代理 DNS 查询。
  5. 点击 确定,打开任意“查看我的 IP”页面进行确认。

Chrome 和 Edge

基于 Chromium 的浏览器默认使用系统代理。若只想让浏览器使用代理,可带参数启动:

chrome --proxy-server="http://IP:端口"
chrome --proxy-server="socks5://IP:端口"

代理切换扩展可以一键完成同样的操作,经常更换代理时很方便。

Windows 和 macOS

  • Windows: 设置 → 网络和 Internet → 代理 → 手动设置代理 → 填写地址和端口。
  • macOS: 系统设置 → 网络 → 当前连接 → 详细信息 → 代理 → 启用 网页代理(HTTP)、安全网页代理(HTTPS) 或 SOCKS 代理。

系统设置会影响所有遵循它的程序,用完记得关闭代理。

curl

curl -x http://IP:端口 https://example.com
curl --socks5-hostname IP:端口 https://example.com

--socks5-hostname 让代理解析域名,避免 DNS 泄露。加上 --max-time 15 可防止卡在失效的代理上。

Python requests

import requests

proxy = "http://IP:端口"            # 或 "socks5h://IP:端口"
r = requests.get(
    "https://example.com",
    proxies={"http": proxy, "https": proxy},
    timeout=15,
)
print(r.status_code)

使用 SOCKS 需要额外安装:pip install "requests[socks]"。

Scrapy

通过 meta 为每个请求指定代理:

yield scrapy.Request(url, meta={"proxy": "http://IP:端口"})

轮换免费代理

免费代理最好以代理池的方式使用。通过我们的 API 下载最新列表,依次尝试,并丢弃失败的代理:

import random, requests

pool = requests.get(
    "https://SITE/api/v1/proxies?protocol=http&anonymity=elite&format=txt"
).text.split()

for attempt in range(5):
    proxy = "http://" + random.choice(pool)
    try:
        r = requests.get("https://example.com",
                         proxies={"http": proxy, "https": proxy}, timeout=10)
        break
    except requests.RequestException:
        pool.remove(proxy.removeprefix("http://"))

将 SITE 替换为本站地址。每隔几分钟刷新一次代理池,列表本身每 30 秒更新一次。

常见问题排查

  • 连接被拒绝或超时:代理已下线,换下一个。
  • 407 Proxy Authentication Required:代理现在需要密码,跳过它。
  • 到处都是验证码:换用高匿代理或其他国家的代理。
  • 网站看到你的真实 IP:代理是透明的,或程序忽略了代理设置。

如果免费代理不够用,请阅读免费与付费代理的对比。

其他语言版本: EnglishРусскийУкраїнськаEspañolPortuguês (Brasil)FrançaisDeutschTürkçeBahasa IndonesiaTiếng Việtالعربيةفارسی

延伸阅读