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 代理凭据
- 登录你的 Smartproxy 仪表板。
- 导航到 "Residential" 或 "Datacenter" 部分,找到你的代理端点(例如
gateway.smartproxy.com)和端口(例如7000)。 - 记下你的代理用户名和密码。Smartproxy 支持通过用户名/密码或 IP 白名单进行身份验证。对于用户名/密码方式,你的用户名可能包含用于会话控制的附加参数(例如
user-session-abc123)。请查看仪表板以获取确切格式。 - (可选)如果你更喜欢 IP 白名单,请将你当前的公网 IP 添加到仪表板中的允许列表中。
第 2 步:配置系统级代理的环境变量
环境变量是让 CLI 工具通过代理路由的最简单方式。
- 在文本编辑器中打开你的 shell 配置文件(例如
~/.bashrc或~/.zshrc)。 - 添加以下行,并将占位符替换为你的实际凭据和端点:
对于 SOCKS5,使用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://方案。请注意,并非所有工具都会遵循ALL_PROXY;许多工具即使处理 HTTPS 流量也会使用HTTP_PROXY和HTTPS_PROXY。 - 保存文件并重新加载:
source ~/.bashrc - 验证变量已设置:
echo $HTTP_PROXY
第 3 步:使用 curl 测试代理
- 运行一个简单请求来检查你的 IP:
你应该会看到返回的 JSON 响应中的 IP 与你自己的 IP 不同。curl -x http://username:[email protected]:7000 https://httpbin.org/ip - 要使用 SOCKS5,请指定代理方案:
curl --socks5 username:[email protected]:7000 https://httpbin.org/ip - 如果你设置了环境变量,可以省略
-x标志:curl https://httpbin.org/ip
第 4 步:让 wget 通过代理
- 创建或编辑
~/.wgetrc并添加:
wget 本身不支持 SOCKS5;请为 wget 使用 HTTP 代理。use_proxy = on http_proxy = http://username:[email protected]:7000 https_proxy = http://username:[email protected]:7000 - 使用以下命令测试:
wget -qO- https://httpbin.org/ip
第 5 步:将 Smartproxy 与 Python Requests 一起使用
- 如果尚未安装
requests库,请安装:pip install requests - 使用以下 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()) - 对于 SOCKS5,请安装
requests[socks]并使用:proxies = { "http": "socks5://username:[email protected]:7000", "https": "socks5://username:[email protected]:7000", }
第 6 步:轮换 IP 并使用粘性会话
在使用轮换端点时,Smartproxy 住宅代理默认会按请求轮换 IP。要为多个请求保持同一 IP(粘性会话),你可以在用户名中添加会话标识符。
- 在仪表板中,查看会话控制的格式。通常,你会在用户名后附加
-session-<id>。 - 对于粘性会话,请使用:
将curl -x http://username-session-abc123:[email protected]:7000 https://httpbin.org/ipabc123替换为任意字母数字字符串。相同的会话 ID 会在一段时间内使用相同的 IP(通常最长 10–30 分钟)。 - 要轮换 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 的浏览器扩展来简化设置。