设置代理意味着告诉应用程序——或整个操作系统——将其流量发送到特定的主机和端口,并在代理要求时提供凭据。 您从提供商那里需要的信息始终是相同的四项:主机(域名或 IP)、端口用户名密码——或者,不使用登录名,而是将您自己的 IP 添加到提供商的 IP 白名单中。以下是人们最常配置代理的四个地方的具体步骤,以及如何检查代理是否生效。

开始之前:系统代理 vs 应用代理

代理可以在两个级别上设置,了解您正在操作的是哪一个可以避免大多数混淆。

  • 系统代理(Windows 设置、macOS 网络偏好设置):操作系统通告一个代理,遵循系统设置的应用会使用它。Chrome、Edge、Safari 和大多数桌面应用都遵循。有些工具完全忽略它。
  • 应用代理:应用有自己的设置,并且只使用该设置。Firefox 是这里值得注意的浏览器;命令行工具使用环境变量或标志;反检测浏览器为每个配置文件设置代理。

如果您希望所有流量都通过代理,请设置系统代理。如果您希望一个浏览器或工具使用代理,而机器上的其他部分保持直连——这是多账户或测试工作的常见情况——请在应用程序中设置。混淆这两者正是“我设置了代理但我的 IP 没有改变”的原因。

Firefox(独立设置,所有平台)

Firefox 是最容易独立于操作系统设置代理的浏览器。

  1. 打开 设置 → 滚动到 常规 底部的 网络设置 → 点击 设置…
  2. 选择 手动配置代理
  3. 对于 HTTP/HTTPS 代理:在 HTTP 代理 中输入主机和端口,并勾选 同时将此代理用于 HTTPS
    对于 SOCKS 代理:在 SOCKS 主机 中输入主机和端口,并选择 SOCKS v5
  4. 勾选 使用 SOCKS v5 时代理 DNS。这会将域名解析路由到代理,防止 DNS 泄漏——如果不勾选,您的 ISP 仍然可以看到您访问的每个域名。
  5. 点击 确定。在首次请求时,Firefox 会提示输入代理用户名和密码,并提供保存选项。

Firefox 还允许您为每个容器或配置文件设置代理,这就是人们无需扩展即可从一个安装中运行多个代理身份的方式。

Chrome 和 Edge

Chrome 在 Windows 和 macOS 上没有自己的代理设置:设置系统打开您计算机的代理设置 只是打开下面描述的操作系统对话框。有三种方法可以专门为 Chrome 设置代理:

  1. 使用系统代理(见下文)。最简单;也会影响其他应用。
  2. 使用标志启动。 通过快捷方式或终端启动 Chrome,使用以下命令:
    chrome --proxy-server="http://proxy.example.com:8080"
    chrome --proxy-server="socks5://proxy.example.com:1080"
    只有该 Chrome 实例被代理。结合 --user-data-dir= 为其提供单独的配置文件。Chrome 会在首次使用时提示输入凭据;它不接受标志中的凭据。
  3. 使用扩展。 代理切换扩展可以保存多个配置文件,并可以按标签页或按站点切换,还可以存储凭据。方便,但扩展可以看到您的流量配置——只安装您信任的扩展。

在 Linux 上,Chrome 除了系统设置外,还会读取 http_proxy / https_proxy 环境变量。

Windows 11(系统范围)

  1. 设置网络和 Internet代理
  2. 手动设置代理 下,点击 使用代理服务器 旁边的 设置
  3. 打开它,输入地址(主机)和端口,并可选地列出要绕过的地址(例如 localhost;127.*;*.local)。保存。
  4. 当代理应用首次连接时,Windows 会提示输入凭据。

有两件事需要了解。首先,此对话框仅配置 HTTP 代理;Windows 内置的系统代理不支持 SOCKS5。如果您的提供商给您提供了 SOCKS5,请在 Firefox、Chrome 标志或应用程序本身中使用它。其次,该设置适用于使用 WinHTTP/WinINet 的应用——浏览器、Office、商店应用——但不适用于所有应用;许多开发工具和游戏会绕过它。我们的 Windows 专用指南 涵盖了系统代理周围泄漏的内容。

自动设置代理 部分接受 PAC 文件 URL——一个小的 JavaScript 文件,根据 URL 决定使用哪个代理。对于“这些域名通过代理,其他所有直连”的情况很方便。

macOS(系统范围)

  1. 系统设置网络 → 选择活动连接(Wi-Fi 或以太网)→ 详细信息…代理
  2. 勾选您需要的协议:Web 代理 (HTTP)安全 Web 代理 (HTTPS) 和/或 SOCKS 代理。与 Windows 不同,macOS 在系统级别支持 SOCKS。
  3. 为每个勾选的协议输入主机和端口。如果代理需要登录,请勾选 代理服务器需要密码 并在此处输入——macOS 不会像 Windows 那样稍后提示。
  4. 在底部字段中添加要绕过的主机,然后点击 应用

该设置是按网络位置设置的:从 Wi-Fi 切换到以太网后,您必须在那里重新设置。Safari 和 Chrome 遵循它;Firefox 不遵循,除非您在其自己的对话框中选择 使用系统代理设置。另请参阅我们关于 macOS 在系统代理周围泄漏什么 的说明。

认证:登录 vs IP 白名单

提供商提供一种或两种方式:

  • 用户名和密码。 可从任何地方使用;凭据由操作系统/浏览器提示,或嵌入工具的 URL 中(http://user:pass@host:port)。如果您使用轮换代理,用户名通常就是配置——会话 ID 和国家代码会放入其中(参见 轮换网关如何读取登录信息)。
  • IP 白名单。 您在提供商的仪表板中注册自己的公共 IP;来自该 IP 的连接无需密码。对于具有静态 IP 的服务器很方便;对于 IP 变化的家用连接则无用,对于在多个网络之间移动的笔记本电脑来说也很麻烦。

如果认证失败,您会看到 407 Proxy Authentication Required。检查用户名是否有拼写错误——轮换参数使它们很长——并确认您当前的 IP 是白名单中的那个。

命令行和脚本

大多数 Unix 工具遵循环境变量:

export http_proxy="http://user:pass@proxy.example.com:8080"
export https_proxy="http://user:pass@proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1"

curl 还接受 -x;git、pip、npm 和 apt 各有自己的代理配置键,但也读取上述变量。对于代理 Python、Node 或浏览器自动化框架,我们在单独的指南中提供了代码示例。

验证是否生效

不要假设。配置后:

  1. 在代理浏览器中加载 IP 检查页面(新的隐私窗口),确认 IP 和国家已更改。
  2. 运行 DNS 泄漏测试;对于 SOCKS5,确保远程 DNS 已开启。
  3. 在浏览器中,运行 WebRTC 测试。

完整程序,包括如何读取结果,请参阅 如何测试代理

常见问题

症状可能原因修复方法
IP 未改变应用忽略系统代理;协议错误(SOCKS 输入为 HTTP)在应用中设置代理;将协议与您购买的匹配
407 错误凭据错误或 IP 未列入白名单重新检查用户名(长轮换字符串!)和当前公共 IP
某些网站加载,其他超时HTTPS 未代理(Firefox:未勾选“同时用于 HTTPS”)也启用 HTTPS/安全代理字段
一切都很慢代理过载,或住宅/移动延迟测量;比较提供商;在目标允许的情况下使用数据中心代理
WebRTC 测试显示真实 IPWebRTC 泄漏禁用 WebRTC 或使用反检测浏览器
代理工作,几分钟后停止粘性会话过期,或 IP 白名单和您的 IP 已更改在登录字符串中延长会话时间;重新白名单

常见问题解答

Chrome 有自己的代理设置吗?

在 Windows 或 macOS 上没有——它使用系统代理。要单独代理 Chrome,请使用 --proxy-server= 启动它或使用扩展。

Windows 可以在系统范围内使用 SOCKS5 代理吗?

不能;Windows 代理对话框仅支持 HTTP。请在支持 SOCKS5 的应用程序中使用它(Firefox、大多数开发工具、反检测浏览器),或运行一个小型本地 HTTP 到 SOCKS 的桥接器。

在哪里输入代理密码?

Windows 和 Firefox 在首次连接时提示;macOS 在代理设置中有字段;命令行工具在 URL 中作为 user:pass@host:port 接受。

什么是 PAC 文件?

代理自动配置文件:一个简短的 JavaScript 函数,为每个 URL 返回使用哪个代理(或不使用)。它允许您只将某些网站路由到代理。Windows 和 macOS 都在自动代理设置中接受 PAC URL。

如何在不同的浏览器标签页中使用不同的代理?

标准浏览器按配置文件代理,而不是按标签页。使用单独的配置文件(Chrome --user-data-dir,Firefox 配置文件或容器)、代理切换扩展或反检测浏览器,后者正是为此而构建的。

更改代理后需要重启吗?

Firefox 和操作系统对话框会立即应用。Chrome 在下次请求时拾取系统更改。命令行环境变量适用于设置后启动的进程。