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

如何通过SSH隧道使用Python Requests访问远程Web服务器?

嘿,这个问题我刚好折腾过,用Python Requests通过已有的SSH SOCKS隧道访问远程Web服务器其实挺简单的,咱们一步步来:

解决步骤:

1. 先安装必要的依赖包

Requests本身不直接支持SOCKS代理,所以需要装个辅助库,直接用pip一键安装就行:
pip install requests[socks]
这个命令会同时安装Requests和PySocks,一步到位。如果你已经装过Requests,单独装PySocks也可以:pip install PySocks

2. 编写Requests请求代码

关键是要配置正确的SOCKS代理,这里要注意用socks5h://前缀——这和你用curl时的--socks5-hostname参数效果完全对应:socks5h会让代理服务器(也就是你的SSH隧道端)去解析目标域名,而不是本地解析,这对访问远程机器内部的服务特别重要(本地可能解析不了内部域名)。

单次请求示例:

import requests

# 配置代理,覆盖HTTP和HTTPS请求
proxies = {
    'http': 'socks5h://localhost:8159',
    'https': 'socks5h://localhost:8159'
}

try:
    # 把这里的URL换成你要访问的远程Web服务器的内部地址
    response = requests.get('http://your-remote-web-server-internal-url', proxies=proxies)
    # 主动抛出HTTP错误(比如404、500),方便排查问题
    response.raise_for_status()
    # 打印网页内容或者做后续处理
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"请求出问题啦: {e}")

复用代理的Session示例:

如果要发起多次请求,用Session更高效,不用每次都重复传proxies参数:

import requests

# 创建Session对象,统一配置代理
session = requests.Session()
session.proxies = {
    'http': 'socks5h://localhost:8159',
    'https': 'socks5h://localhost:8159'
}

try:
    # 第一次请求
    response1 = session.get('http://your-remote-web-server-internal-url/page1')
    response1.raise_for_status()
    
    # 第二次请求,自动复用代理和会话状态
    response2 = session.get('http://your-remote-web-server-internal-url/page2')
    response2.raise_for_status()
    
    print("Page1内容(前500字符):", response1.text[:500])
    print("Page2内容(前500字符):", response2.text[:500])
except requests.exceptions.RequestException as e:
    print(f"请求出错: {e}")

3. 几个注意点

  • 确保你的SSH隧道(Putty的端口转发)是正常运行的,别中途断开了
  • 如果远程Web服务器用的是自签名HTTPS证书,测试时可以加上verify=False参数跳过证书验证(生产环境不建议这么做):requests.get(..., verify=False)
  • 如果你访问的是远程机器的IP地址而非域名,用socks5://也能工作,但socks5h更通用,不管是IP还是域名都能完美处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:26:17