Skip to content
Beginner / 2 min read

Smartproxy Linux 设置指南:如何在 curl、wget 和 Python 中使用住宅代理

一份面向初学者的教程,介绍如何在 Linux 上配置 Smartproxy 住宅代理。学习身份验证、设置环境变量、让 curl 和 wget 的流量走代理、与 Python requests 集成,以及为隐私保护或网页抓取轮换 IP。

Linux SOCKS5 HTTP(S) 隐私/匿名性

概述

Smartproxy 提供支持 HTTP 和 SOCKS5 的住宅代理和数据中心代理。本指南将向你展示如何在 Linux 上为命令行工具和 Python 脚本配置 Smartproxy。你将学习设置系统级代理环境变量、使用凭据进行身份验证、测试连接,以及为隐私保护或网页抓取轮换 IP。本教程使用住宅代理,但这些步骤同样适用于数据中心代理。

前提条件

  • 一个 Smartproxy 账户(免费试用或付费套餐)。如果你还没有账户,可以在 Smartproxy 网站上注册。
  • 一个 Linux 系统(已在 Ubuntu 22.04 上测试,但也适用于其他发行版)。
  • 基本熟悉终端操作。
  • 已安装 curl、wget 以及带有 requests 的 Python 3。如有需要,可使用包管理器安装。

第 1 步:获取你的 Smartproxy 代理凭据

  1. 登录你的 Smartproxy 仪表板。
  2. 导航到 "Residential" 或 "Datacenter" 部分,找到你的代理端点(例如 gateway.smartproxy.com)和端口(例如 7000)。
  3. 记下你的代理用户名和密码。Smartproxy 支持通过用户名/密码或 IP 白名单进行身份验证。对于用户名/密码方式,你的用户名可能包含用于会话控制的附加参数(例如 user-session-abc123)。请查看仪表板以获取确切格式。
  4. (可选)如果你更喜欢 IP 白名单,请将你当前的公网 IP 添加到仪表板中的允许列表中。

第 2 步:配置系统级代理的环境变量

环境变量是让 CLI 工具通过代理路由的最简单方式。

  1. 在文本编辑器中打开你的 shell 配置文件(例如 ~/.bashrc 或 ~/.zshrc)。
  2. 添加以下行,并将占位符替换为你的实际凭据和端点:
    export HTTP_PROXY="http://username:[email protected]:7000"
    export HTTPS_PROXY="http://username:[email protected]:7000"
    export ALL_PROXY="socks5://username:[email protected]:7000"
    
    对于 SOCKS5,使用 socks5:// 方案。请注意,并非所有工具都会遵循 ALL_PROXY;许多工具即使处理 HTTPS 流量也会使用 HTTP_PROXY 和 HTTPS_PROXY。
  3. 保存文件并重新加载:
    source ~/.bashrc
    
  4. 验证变量已设置:
    echo $HTTP_PROXY
    

第 3 步:使用 curl 测试代理

  1. 运行一个简单请求来检查你的 IP:
    curl -x http://username:[email protected]:7000 https://httpbin.org/ip
    
    你应该会看到返回的 JSON 响应中的 IP 与你自己的 IP 不同。
  2. 要使用 SOCKS5,请指定代理方案:
    curl --socks5 username:[email protected]:7000 https://httpbin.org/ip
    
  3. 如果你设置了环境变量,可以省略 -x 标志:
    curl https://httpbin.org/ip
    

第 4 步:让 wget 通过代理

  1. 创建或编辑 ~/.wgetrc 并添加:
    use_proxy = on
    http_proxy = http://username:[email protected]:7000
    https_proxy = http://username:[email protected]:7000
    
    wget 本身不支持 SOCKS5;请为 wget 使用 HTTP 代理。
  2. 使用以下命令测试:
    wget -qO- https://httpbin.org/ip
    

第 5 步:将 Smartproxy 与 Python Requests 一起使用

  1. 如果尚未安装 requests 库,请安装:
    pip install requests
    
  2. 使用以下 Python 代码片段通过 Smartproxy 路由请求:
    import requests
    
    proxy_url = "http://username:[email protected]:7000"
    proxies = {
        "http": proxy_url,
        "https": proxy_url,
    }
    
    response = requests.get("https://httpbin.org/ip", proxies=proxies, timeout=10)
    print(response.json())
    
  3. 对于 SOCKS5,请安装 requests[socks] 并使用:
    proxies = {
        "http": "socks5://username:[email protected]:7000",
        "https": "socks5://username:[email protected]:7000",
    }
    

第 6 步:轮换 IP 并使用粘性会话

在使用轮换端点时,Smartproxy 住宅代理默认会按请求轮换 IP。要为多个请求保持同一 IP(粘性会话),你可以在用户名中添加会话标识符。

  1. 在仪表板中,查看会话控制的格式。通常,你会在用户名后附加 -session-<id>。
  2. 对于粘性会话,请使用:
    curl -x http://username-session-abc123:[email protected]:7000 https://httpbin.org/ip
    
    将 abc123 替换为任意字母数字字符串。相同的会话 ID 会在一段时间内使用相同的 IP(通常最长 10–30 分钟)。
  3. 要轮换 IP,只需省略会话 ID,或为每个请求使用新的会话 ID。

故障排除

  • 407 Proxy Authentication Required:请仔细检查你的用户名和密码。确保特殊字符已进行 URL 编码。
  • Connection refused 或 timeout:验证端点和端口。检查你的防火墙设置。某些网络会阻止非标准端口。
  • SSL 证书错误:确保你对 HTTPS 目标使用 https://,并且你的代理支持 CONNECT(HTTP 代理支持)。对于 SOCKS5,SSL 是端到端处理的。
  • DNS 泄露:使用 HTTP 代理时,DNS 解析可能在本地进行。为防止泄露,请使用带远程 DNS 的 SOCKS5(在 curl 中为 socks5h://)或类似 proxychains 的工具。
  • 速度慢:住宅代理可能较慢。如果可用,请尝试其他端点或地区。

总结

你已经在 Linux 上为 curl、wget 和 Python 配置了 Smartproxy。现在你可以通过住宅代理或数据中心代理路由流量、安全地进行身份验证,并为隐私保护或网页抓取轮换 IP。请记住妥善保管你的凭据,并查看 Smartproxy 仪表板以了解地理定位和会话控制等高级功能。对于基于浏览器的任务,可以考虑使用 Smartproxy 的浏览器扩展来简化设置。