设置代理意味着告诉应用程序——或整个操作系统——将其流量发送到特定的主机和端口,并在代理要求时提供凭据。 您从提供商那里需要的信息始终是相同的四项:主机(域名或 IP)、端口、用户名、密码——或者,不使用登录名,而是将您自己的 IP 添加到提供商的 IP 白名单中。以下是人们最常配置代理的四个地方的具体步骤,以及如何检查代理是否生效。
开始之前:系统代理 vs 应用代理
代理可以在两个级别上设置,了解您正在操作的是哪一个可以避免大多数混淆。
- 系统代理(Windows 设置、macOS 网络偏好设置):操作系统通告一个代理,遵循系统设置的应用会使用它。Chrome、Edge、Safari 和大多数桌面应用都遵循。有些工具完全忽略它。
- 应用代理:应用有自己的设置,并且只使用该设置。Firefox 是这里值得注意的浏览器;命令行工具使用环境变量或标志;反检测浏览器为每个配置文件设置代理。
如果您希望所有流量都通过代理,请设置系统代理。如果您希望一个浏览器或工具使用代理,而机器上的其他部分保持直连——这是多账户或测试工作的常见情况——请在应用程序中设置。混淆这两者正是“我设置了代理但我的 IP 没有改变”的原因。
Firefox(独立设置,所有平台)
Firefox 是最容易独立于操作系统设置代理的浏览器。
- 打开 设置 → 滚动到 常规 底部的 网络设置 → 点击 设置…。
- 选择 手动配置代理。
- 对于 HTTP/HTTPS 代理:在 HTTP 代理 中输入主机和端口,并勾选 同时将此代理用于 HTTPS。
对于 SOCKS 代理:在 SOCKS 主机 中输入主机和端口,并选择 SOCKS v5。 - 勾选 使用 SOCKS v5 时代理 DNS。这会将域名解析路由到代理,防止 DNS 泄漏——如果不勾选,您的 ISP 仍然可以看到您访问的每个域名。
- 点击 确定。在首次请求时,Firefox 会提示输入代理用户名和密码,并提供保存选项。
Firefox 还允许您为每个容器或配置文件设置代理,这就是人们无需扩展即可从一个安装中运行多个代理身份的方式。
Chrome 和 Edge
Chrome 在 Windows 和 macOS 上没有自己的代理设置:设置 → 系统 → 打开您计算机的代理设置 只是打开下面描述的操作系统对话框。有三种方法可以专门为 Chrome 设置代理:
- 使用系统代理(见下文)。最简单;也会影响其他应用。
- 使用标志启动。 通过快捷方式或终端启动 Chrome,使用以下命令:
只有该 Chrome 实例被代理。结合chrome --proxy-server="http://proxy.example.com:8080" chrome --proxy-server="socks5://proxy.example.com:1080"--user-data-dir=为其提供单独的配置文件。Chrome 会在首次使用时提示输入凭据;它不接受标志中的凭据。 - 使用扩展。 代理切换扩展可以保存多个配置文件,并可以按标签页或按站点切换,还可以存储凭据。方便,但扩展可以看到您的流量配置——只安装您信任的扩展。
在 Linux 上,Chrome 除了系统设置外,还会读取 http_proxy / https_proxy 环境变量。
Windows 11(系统范围)
- 设置 → 网络和 Internet → 代理。
- 在 手动设置代理 下,点击 使用代理服务器 旁边的 设置。
- 打开它,输入地址(主机)和端口,并可选地列出要绕过的地址(例如
localhost;127.*;*.local)。保存。 - 当代理应用首次连接时,Windows 会提示输入凭据。
有两件事需要了解。首先,此对话框仅配置 HTTP 代理;Windows 内置的系统代理不支持 SOCKS5。如果您的提供商给您提供了 SOCKS5,请在 Firefox、Chrome 标志或应用程序本身中使用它。其次,该设置适用于使用 WinHTTP/WinINet 的应用——浏览器、Office、商店应用——但不适用于所有应用;许多开发工具和游戏会绕过它。我们的 Windows 专用指南 涵盖了系统代理周围泄漏的内容。
自动设置代理 部分接受 PAC 文件 URL——一个小的 JavaScript 文件,根据 URL 决定使用哪个代理。对于“这些域名通过代理,其他所有直连”的情况很方便。
macOS(系统范围)
- 系统设置 → 网络 → 选择活动连接(Wi-Fi 或以太网)→ 详细信息… → 代理。
- 勾选您需要的协议:Web 代理 (HTTP)、安全 Web 代理 (HTTPS) 和/或 SOCKS 代理。与 Windows 不同,macOS 在系统级别支持 SOCKS。
- 为每个勾选的协议输入主机和端口。如果代理需要登录,请勾选 代理服务器需要密码 并在此处输入——macOS 不会像 Windows 那样稍后提示。
- 在底部字段中添加要绕过的主机,然后点击 好 和 应用。
该设置是按网络位置设置的:从 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 或浏览器自动化框架,我们在单独的指南中提供了代码示例。
验证是否生效
不要假设。配置后:
- 在代理浏览器中加载 IP 检查页面(新的隐私窗口),确认 IP 和国家已更改。
- 运行 DNS 泄漏测试;对于 SOCKS5,确保远程 DNS 已开启。
- 在浏览器中,运行 WebRTC 测试。
完整程序,包括如何读取结果,请参阅 如何测试代理。
常见问题
| 症状 | 可能原因 | 修复方法 |
|---|---|---|
| IP 未改变 | 应用忽略系统代理;协议错误(SOCKS 输入为 HTTP) | 在应用中设置代理;将协议与您购买的匹配 |
407 错误 | 凭据错误或 IP 未列入白名单 | 重新检查用户名(长轮换字符串!)和当前公共 IP |
| 某些网站加载,其他超时 | HTTPS 未代理(Firefox:未勾选“同时用于 HTTPS”) | 也启用 HTTPS/安全代理字段 |
| 一切都很慢 | 代理过载,或住宅/移动延迟 | 测量;比较提供商;在目标允许的情况下使用数据中心代理 |
| WebRTC 测试显示真实 IP | WebRTC 泄漏 | 禁用 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 在下次请求时拾取系统更改。命令行环境变量适用于设置后启动的进程。