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

如何使用pystunnel库建立与远程服务器的连接?

使用pystunnel在Python中建立stunnel连接的实现方案

环境准备

  • 安装pystunnel库:pip install pystunnel
  • 确保系统已安装stunnel工具(pystunnel依赖系统中的stunnel二进制文件,需保证其在环境PATH中,或在配置中指定路径)

核心实现代码

以下是客户端模式下通过pystunnel连接远程服务器的完整示例,你只需替换对应的IP、端口和证书配置:

import pystunnel
import socket

# 替换为你的实际参数
REMOTE_IP = "xxx.xxx.xxx.xxx"
REMOTE_PORT = 1234
LOCAL_PROXY_PORT = 5678

# stunnel客户端配置(与stunnel.conf语法一致)
stunnel_client_config = {
    "client": True,
    "accept": f"127.0.0.1:{LOCAL_PROXY_PORT}",  # 本地代理端口,Python脚本连接此端口
    "connect": f"{REMOTE_IP}:{REMOTE_PORT}",    # 目标服务器地址
    # 证书相关配置(根据实际需求选择)
    # 验证服务器证书(推荐生产环境使用)
    # "CAfile": "/path/to/trusted_ca.pem",
    # "verify": 2,
    # 跳过证书验证(仅测试用,生产环境禁用)
    # "verify": 0
}

# 使用上下文管理器自动管理stunnel的启动/关闭
with pystunnel.Stunnel(config=stunnel_client_config) as stunnel:
    # 等待stunnel启动完成
    stunnel.wait_for_start()
    
    # 建立到本地代理端口的连接,流量会被stunnel转发到远程服务器
    with socket.create_connection(("127.0.0.1", LOCAL_PROXY_PORT)) as sock:
        # 发送数据(根据业务需求自定义)
        sock.sendall(b"Test data via stunnel")
        
        # 接收服务器响应
        resp = sock.recv(1024)
        print(f"Remote response: {resp.decode('utf-8')}")

关键说明

  • pystunnel是对stunnel命令行的封装,所有配置项与stunnel官方配置文件的语法完全兼容,可参考stunnel客户端配置规则调整参数
  • 若stunnel不在系统PATH中,可在初始化Stunnel时指定stunnel_path="/path/to/stunnel"参数
  • 本地代理端口需确保未被其他进程占用,可选择任意未使用的端口
  • 生产环境务必启用证书验证,避免中间人攻击;测试环境可临时跳过验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:07:25