# SOCKS5 静态代理设置：curl、Python、Firefox 和 DNS

> 使用 curl --socks5-hostname、Python socks5h:// 和 Firefox 设置 SOCKS5 静态代理，DNS 通过代理解析。测试于 2026 年 10 月 19 日；无需 KYC，可用加密货币支付。

- URL: https://steadyproxy.com/zh/guides/socks5-static-proxy/
- 最后更新: 2026-10-19
- Publisher: SteadyProxy (https://steadyproxy.com)

将工具指向你静态 IP 的 SOCKS5 主机和端口，登录或使用 IP 允许列表，并让代理解析主机名。

**快速回答 — 如何设置 SOCKS5 静态代理？**

要设置 SOCKS5 静态代理，请将你的工具指向你静态 IP 的 SOCKS5 主机和端口，并让代理解析主机名。使用 curl --socks5-hostname、Python Requests 中的 socks5h:// URL，或 Firefox 中的“使用 SOCKS v5 时代理 DNS”复选框。**SteadyProxy** 静态 IP 支持 HTTP、HTTPS（CONNECT）和 SOCKS5；默认 SOCKS5 端口是 7778，每个 IP 显示自己的主机和端口。更新于 2026 年 10 月 19 日。

## SOCKS5 的关键事实有哪些？

| 属性 | 值 |
| --- | --- |
| 协议 | SOCKS 版本 5（RFC 1928），TCP 连接 |
| 登录方式 | 用户名和密码子协商（RFC 1929），或 IP 允许列表 |
| SteadyProxy 身份验证 | 用户名和密码，或 IP 白名单（最多 10 个 IP） |
| 默认端口 | SOCKS5 7778，HTTP 7777；使用每个 IP 列出的主机和端口 |
| 通过代理的 DNS | curl --socks5-hostname 或 socks5h://；Requests socks5h://；Firefox “使用 SOCKS v5 时代理 DNS” |
| Python 包 | requests[socks]，它会安装 PySocks |
| 被阻止的目标 | 银行、政府、支付门户和票务网站，以及 SMTP（发邮件）端口 25、465 和 587 |

## 何时应使用 SOCKS5 而不是 HTTP 端口？

当应用不支持 HTTP 代理，或只提供 SOCKS 设置时，请使用 SOCKS5。对于 Web 流量，两者都可以：HTTP 端口通过 CONNECT 隧道承载 HTTPS，而 SOCKS5 承载任何 TCP 连接。对于一个静态 IP，两者给出相同的出口 IP，你可以用下面的测试确认。请计划仅使用 TCP：本指南不涵盖 UDP。通过两者都无法发送电子邮件，因为 SMTP 端口已关闭。

## 如何在 curl 中使用 SOCKS5 静态代理？

curl 有两种方式将主机名发送给代理：--socks5-hostname 选项，或以 socks5h:// 开头的代理 URL。普通的 socks5:// 方案会让 curl 先在你自己的机器上解析主机名，然后只发送 IP。在我们 2026 年 10 月 19 日的测试中，测试代理通过 socks5h:// 收到主机名 api.ipify.org 和 ipinfo.io，通过 socks5:// 收到原始 IPv4 地址。

*通过 SOCKS5 使用 curl，有无远程 DNS*

```bash
# SOCKS5, hostname resolved by the proxy (recommended)
curl -s --socks5-hostname gw.steadyproxy.com:7778 --proxy-user USERNAME:PASSWORD https://api.ipify.org

# Same thing as a proxy URL: socks5h:// = the proxy resolves the hostname
curl -s -x "socks5h://USERNAME:PASSWORD@gw.steadyproxy.com:7778" https://ipinfo.io/json

# For comparison only: socks5:// resolves the hostname on your own machine first
curl -s -x "socks5://USERNAME:PASSWORD@gw.steadyproxy.com:7778" https://api.ipify.org

```

## 如何在 Python Requests 中使用 SOCKS5？

使用 python -m pip install "requests[socks]" 安装 SOCKS 附加组件，然后为 http 和 https 键都使用 socks5h:// URL。Requests 文档指出，socks5 在客户端解析 DNS，socks5h 在代理服务器上解析。如果用户名和密码包含 @ 或冒号等字符，请对其进行 URL 编码。下面的脚本于 2026 年 10 月 19 日通过带用户名和密码登录的测试 SOCKS5 服务器运行。

*socks5_requests.py：通过 SOCKS5 使用远程 DNS 的 Requests*

```python
"""Python Requests through a SOCKS5 static proxy.

Install: python -m pip install "requests[socks]"
"""
import os
from urllib.parse import quote

import requests

HOST = os.environ.get("PROXY_HOST", "gw.steadyproxy.com")
PORT = os.environ.get("PROXY_SOCKS_PORT", "7778")
USER = quote(os.environ.get("PROXY_USER", "USERNAME"), safe="")
PASSWORD = quote(os.environ.get("PROXY_PASS", "PASSWORD"), safe="")

# socks5h:// sends the hostname to the proxy: DNS is resolved on the exit side
PROXY = "socks5h://" + USER + ":" + PASSWORD + "@" + HOST + ":" + PORT
PROXIES = {"http": PROXY, "https": PROXY}

with requests.Session() as session:
    session.trust_env = False
    response = session.get("https://ipinfo.io/json", proxies=PROXIES, timeout=(10, 30))
    response.raise_for_status()
    data = response.json()
    print(data.get("ip"), data.get("org"), data.get("country"), data.get("city"))

```

## 如何在 Firefox 或系统设置中设置 SOCKS5？

在 Firefox 中，打开“设置”，滚动到“网络设置”并点击“设置”。选择“手动代理配置”，在 SOCKS 主机中填写主机地址，在旁边的端口栏填写端口，并选择 SOCKS v5。勾选“使用 SOCKS v5 时代理 DNS”，然后点击“确定”。Firefox 的 SOCKS 面板没有用户名或密码字段，因此请为该 IP 使用 IP 白名单，或改用 HTTP 端口，Firefox 会在那里要求登录。

在 macOS 上，“系统设置”>“网络”> 你的连接 >“详细信息”>“代理”中有 SOCKS 代理条目。Windows 的代理设置针对 HTTP 代理，因此请改为在每个应用内设置 SOCKS5。Chrome 也支持通过其 --proxy-server 开关使用 SOCKS5 服务器；请参阅[浏览器设置指南](https://steadyproxy.com/zh/guides/browser-setup/)。

## 通过代理进行 DNS 解析为什么重要？

使用本地 DNS 时，你自己的解析器会看到你访问的每个主机名，而且它返回的服务器可能是根据你的位置而非代理的位置选择的。内容分发网络按地区应答 DNS，因此在法国的本地查询可能让一个通过英国 IP 发出的请求指向法国的服务器。远程 DNS（socks5h）让代理侧解析域名，这样目标服务器就会像对待该 IP 所在国家的访客那样作出应答。这使本地价格和搜索结果的检查更加准确。

## 如何检查 SOCKS5 设置是否有效？

通过 SOCKS5 端口打开 ipinfo.io/json，读取 ip、org 和 country 字段。然后通过同一静态 IP 的 HTTP 端口发送同样的请求：出口 IP 应当一致。要确认它在数小时内保持不变，请参阅[如何检查代理是否为静态](https://steadyproxy.com/zh/guides/check-if-a-proxy-is-static/)。“general SOCKS server failure”或身份验证错误通常意味着端口错误、密码错误，或源 IP 不在你的白名单中。

## 关于 SOCKS5 静态代理，人们还常问什么？

### socks5:// 和 socks5h:// 有什么区别？

使用 socks5:// 时，你的机器解析主机名，只把 IP 地址发送给代理。使用 socks5h:// 时，主机名发送给代理，由代理解析。curl 和 Python Requests 都遵循这一规则。静态 IP 请使用 socks5h://，这样 DNS 应答与 IP 所在国家一致，且你的本地解析器看不到这些主机名。

### SOCKS5 是加密的吗？

不是。SOCKS5 只转发连接；它不增加任何加密。RFC 1929 指出，其用户名和密码登录以明文传输密码。你的 HTTPS 流量通过隧道保持端到端加密，但代理登录不是。在不可信网络上，优先使用 IP 白名单，它完全不发送密码。

### SOCKS5 提供的 IP 与 HTTP 端口不同吗？

对同一静态 IP 而言不应不同：两个端口通向同一个出口地址。通过每个端口分别发送 api.ipify.org 检查一次。如果两个结果不同，你可能使用了仪表盘中的两条不同凭据，或你机器上的系统代理接管了其中一个请求。

### Chrome 可以使用带密码的 SOCKS5 代理吗？

Chrome 通过 --proxy-server 接受 SOCKS5 服务器，其文档显示那里没有用户名或密码字段。请使用 IP 白名单，这样 Chrome 无需登录，或让 Chrome 指向 HTTP 端口和本地转发器。我们的 [Selenium 指南](https://steadyproxy.com/zh/guides/selenium-static-proxy/) 包含针对该情况的经过测试的转发器脚本。

### 为什么 curl 说无法解析代理？

该消息说的是代理自身的主机，而不是目标。检查你仪表盘中主机的拼写、你的本地 DNS，以及任何阻止到 SOCKS5 端口出站流量的防火墙。用 curl -v 测试网络路径，它会打印 SOCKS5 握手的每个步骤，包括身份验证。

### 哪些应用可与 SOCKS5 静态代理配合使用？

大多数 HTTP 客户端、浏览器、抓取框架和命令行工具都接受 SOCKS5 设置，可在配置文件中设置，或通过 ALL_PROXY 设置。邮件发送将无法使用，因为端口 25、465 和 587 已关闭。每种用途都必须遵守我们的[可接受使用政策](https://steadyproxy.com/zh/acceptable-use/)。

### 在 SteadyProxy，带 SOCKS5 的静态 IP 多少钱？

每个套餐都免费包含 SOCKS5。截至 2026 年 10 月，一个 ISP IP 价格为 US$2.24，一个专用数据中心 IP 价格为 US$1.34，均为 30 天。更大套餐在 100 个 ISP IP 时降至 US$1.34/IP · 30 天。支付使用加密货币，无需 KYC；请参阅[价格](https://steadyproxy.com/zh/pricing/)。

## 本指南使用了哪些来源？

1. [RFC 1928：SOCKS 协议版本 5](https://www.rfc-editor.org/rfc/rfc1928) — IETF (2026-10-19)
2. [RFC 1929：SOCKS V5 的用户名/密码身份验证](https://www.rfc-editor.org/rfc/rfc1929) — IETF (2026-10-19)
3. [Requests 高级用法：SOCKS](https://requests.readthedocs.io/en/latest/user/advanced/#socks) — Requests (2026-10-19)
4. [curl 手册页（--socks5-hostname、-x）](https://curl.se/docs/manpage.html) — curl (2026-10-19)
5. [在 Chrome 中配置 SOCKS 代理服务器](https://www.chromium.org/developers/design-documents/network-stack/socks-proxy/) — The Chromium Projects (2026-10-19)

---

SteadyProxy: SteadyProxy 是一家静态代理服务商：提供 ISP（静态住宅）和独立数据中心 IP，按 IP 租用 30 天，加密货币支付，无需上传身份证件。
