You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu服务器上Python Requests代理调用NSE接口失败问题排查

问题描述

我开发了一个用requests库和代理抓取NSE网站公告的Python脚本,Windows本地运行正常,但部署到Ubuntu服务器后,用代理访问NSE端点时请求失败。

问题详情

会话建立阶段向NSE URL发送GET请求时出错,代码片段:

response = session_nse.get(NSE_URL, headers=NSE_HEADERS, proxies=proxy_config, timeout=15)

代理配置代码:

proxy = random.choice(PROXIES)
proxy_config = {
    "http": f"http://{proxy}",
    "https": f"http://{proxy}"
}

注:已尝试使用/不使用代理两种方式。

现象对比

  • Windows本地:无异常,可成功接收响应
  • Ubuntu服务器:请求超时,或抛出ProxyError、Max retries exceeded with URL等异常

环境信息

  • 本地:Windows 10,Python 3.12.4
  • 服务器:Ubuntu 22.04,Python 3.10.12

疑问

  1. 为何代理在Ubuntu服务器上失效但Windows本地正常?
  2. Ubuntu服务器上需检查哪些配置或系统设置?

解答

1. 代理在Ubuntu失效但Windows正常的可能原因

  • 代理IP权限限制:部分代理服务商仅允许特定地域(如你本地所在地区)的IP使用,服务器IP不在允许范围内,请求被拦截。
  • 系统代理冲突:Ubuntu可能全局配置了代理(通过http_proxy/https_proxy环境变量),和脚本内的代理配置冲突,导致请求走了错误路径。
  • SSL证书差异:Ubuntu的根证书库和Windows不同,若代理需要SSL验证,服务器缺少对应根证书会导致请求失败。
  • 防火墙/安全组拦截:Ubuntu本地防火墙(ufw)或云服务商安全组禁止了代理端口的出站请求;或NSE服务器屏蔽了服务器所在IP段。
  • requests版本兼容性:服务器上Python 3.10对应的requests版本可能低于本地,对代理协议的兼容性处理更严格,比如脚本用http协议配置socks5代理时,低版本requests无法正常解析。

2. Ubuntu服务器需检查的配置/设置

  • 网络连通性测试:
    • 用curl直接测试代理:curl -x http://<代理IP:端口> https://www.nseindia.com,查看是否能返回内容。
    • 测试端口连通性:nc -zv <代理IP> <端口>,确认服务器到代理的端口是否能打通。
  • 系统代理环境变量:
    • 执行echo $http_proxy和echo $https_proxy,若存在全局代理,临时取消后测试:unset http_proxy https_proxy。
  • 防火墙与安全组:
    • 查看ufw规则:sudo ufw status,确保允许出站访问代理端口(如8080、3128等)。
    • 检查云服务商安全组,确认出站规则允许访问代理IP和端口。
  • SSL证书配置:
    • 更新系统根证书:sudo apt update && sudo apt install --reinstall ca-certificates,之后重新运行脚本。
    • 临时关闭SSL验证测试(仅用于排查,不推荐生产):在请求中添加verify=False参数,若成功则说明是证书问题。
  • requests版本调整:
    • 查看服务器requests版本:pip show requests,若版本过低,升级到和本地接近的版本:pip install --upgrade requests。
  • 代理格式与协议校验:
    • 若代理需要认证,确认PROXIES列表格式为用户名:密码@代理IP:端口,脚本配置需对应调整。
    • 若代理是socks5协议,将配置改为socks5://<代理IP:端口>,并安装依赖:pip install requests[socks]。

内容的提问来源于stack exchange,提问作者dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:52:10