凌峰创科服务平台

goagent无法连接到代理服务器

核心排查思路:

GoAgent 的工作流程是:你的客户端 -> GoAgent 本地服务 -> Google App Engine (GAE) 服务器 -> 互联网,连接失败的问题可能出在任何一个环节,我们的排查顺序是:本地 -> 网络 -> 服务器

goagent无法连接到代理服务器-图1
(图片来源网络,侵删)

第一步:检查本地客户端配置(最常见原因)

这是最容易出错的地方,请仔细核对。

1 检查 proxy.ini 文件

这是 GoAgent 的核心配置文件,确保里面的服务器ID和密码正确。

  • 打开配置文件:找到你解压 GoAgent 文件夹中的 proxy.ini 文件。
  • 核对 [gae] 部分
    [gae]
    ; 你的 GAE App ID
    id = your-app-id
    ; 你的 GAE App 的密码(在 app.yaml 中设置的)
    password = your-password
    • id:必须完全正确,区分大小写。
    • password:必须完全正确,区分大小写。
    • 检查:确认这两个值没有输错,特别是特殊字符(如 和 _)不要混淆。

2 检查 appid.txt 文件

这个文件包含了你的 GAE App ID。

  • 打开文件:找到 appid.txt 文件。
  • :文件里应该只包含你的 App ID,my-goagent-app
  • 检查:确保 App ID 和 proxy.ini 中的 id 一致,并且没有多余的空格或换行符。

3 检查 CA.crt 证书

GoAgent 使用一个自签名的证书来解密 HTTPS 流量,如果证书导入不正确,浏览器或系统会拒绝连接。

goagent无法连接到代理服务器-图2
(图片来源网络,侵删)
  • 检查证书文件:确保 CA.crt 文件存在于 GoAgent 目录中,并且没有损坏。
  • 重新导入证书
    1. Windows
      • 双击 CA.crt 文件,选择“安装证书”。
      • 选择“当前用户”或“本地计算机”。
      • 选择“将所有的证书都放入下列存储”,然后点击“浏览”。
      • 选择“受信任的根证书颁发机构”,点击“确定”,然后完成安装。
    2. macOS
      • 双击 CA.crt 文件,会自动打开“钥匙串访问”。
      • 在“钥匙串访问”中,找到刚刚导入的证书(通常名为 GoAgentGoAgent CA)。
      • 双击证书,展开“信任”选项,将“使用此证书时”的下拉菜单选为“始终信任”。
    3. Linux (Firefox)
      • 在 Firefox 的地址栏输入 about:preferences#privacy,找到“证书”->“查看证书”->“证书 authorities”。
      • 导入 CA.crt 文件,并勾选“信任”。

4 检查本地 Python 环境

GoAgent 本地端是一个 Python 应用。

  • Python 版本:GoAgent 3.x 通常需要 Python 2.7,请确保你的系统默认 Python 是 2.7 版本,在命令行中输入 python --versionpython2.7 --version 检查。

  • 依赖库:确保你已经安装了所有必需的库,通常运行 proxy.py 时会提示缺少哪个库,根据提示安装即可。

    # 在 Linux/macOS 上
    sudo pip install -r requirements.txt
    # 在 Windows 上
    pip install -r requirements.txt

第二步:检查网络连接和服务器状态

如果本地配置无误,问题可能出在 GoAgent 服务器端或你的网络环境。

goagent无法连接到代理服务器-图3
(图片来源网络,侵删)

1 检查 GAE 服务器状态

GoAgent 的服务器端部署在 Google App Engine 上。

  • 访问 App Engine 控制台:登录你的 Google App Engine 控制台
  • 检查应用状态
    • 你的应用是否处于 “运行中 (Running)” 状态?如果显示“已停止”或“错误”,需要先部署和启动它。
    • 检查应用的 “用量”“配额”,GAE 有免费额度,一旦用完(如 CPU、带宽、请求数),应用就会无法响应,检查你是否超额使用了。
    • 检查最近的 “错误”“访问日志”,看是否有相关的错误信息,500 Internal Server Error403 Forbidden

2 检查 GAE App 部署配置

  • app.yaml 文件:这是 GAE 应用的配置文件,确保 application 字段的值和你的 App ID 完全一致。
    application: your-app-id  # 必须和你的 App ID 一致
    version: 1
    runtime: python27
    api_version: 1
    threadsafe: yes
  • index.yaml 文件:确保这个文件已经上传到 GAE 服务器,GoAgent 需要它来创建数据表,如果忘记上传,服务器会报错。
  • 重新部署:部署过程可能不完整,尝试重新部署整个 GoAgent 服务器端代码到 GAE。

3 检查本地防火墙或杀毒软件

它们可能会阻止 GoAgent 本地服务(默认在 0.0.1:8086)的运行或网络连接。

  • 临时关闭:尝试暂时关闭 Windows Defender 或第三方杀毒软件,然后重启 GoAgent 看看是否能连接。
  • 添加例外:如果关闭后可以连接,说明是软件拦截,请将 GoAgent 所在的文件夹(或 proxy.py 进程)添加到防火墙/杀毒软件的信任列表或白名单中。

第三步:使用命令行工具进行诊断

这是最有效的排查方法,因为它能直接告诉你连接失败的具体原因。

1 运行 gae.py

这个工具用于检查你的 GAE 服务器端是否可以正常访问。

  1. 打开命令行(CMD 或 PowerShell)。
  2. 进入 GoAgent 目录。
  3. 运行命令:
    python gae.py
  4. 观察输出
    • 如果输出正常:会显示 app: your-app-idversion: x 等信息,并提示 gae.py test success!,这说明你的 GAE 服务器端本身是没问题的。
    • 如果输出错误:会显示具体的错误,get https://appengine.google.com/api/appversion/getdefault?... failed,这通常意味着 GAE 服务器端配置错误或无法访问。

2 运行 proxy.py 并观察日志

这是启动 GoAgent 本地服务并查看详细连接日志的关键。

  1. 打开一个新的命令行窗口。
  2. 进入 GoAgent 目录。
  3. 运行命令:
    python proxy.py
  4. 仔细观察启动日志
    • loading CA from ...:检查证书加载是否成功。
    • gae ip list:程序会尝试从 GAE 服务器获取可用的 IP 地址列表,如果这里卡住或报错,说明本地无法连接到 GAE 服务器。
    • using ip: ...:成功获取 IP 后,它会选择一个 IP 进行连接。
    • connecting to ...:显示正在尝试连接的 GAE 服务器 IP 和端口。
    • connected:如果看到这个,说明连接成功了!
    • [ERROR] ...:如果连接失败,这里会打印出详细的错误信息,
      • URLError: <urlopen error [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed>:这是典型的网络连接超时,可能是你的网络无法访问 GAE,或者 GAE 服务器宕机/配额用尽。
      • SSLError ...:通常是证书问题,或者 SSL/TLS 协议不匹配。
      • HTTP Error 403: Forbidden:通常是 GAE 服务器端配置错误(如 app.yaml 不对)或配额问题。

第四步:常见问题汇总与解决方案

| 现象 | 可能原因 | 解决方案 | |

分享:
扫描分享到社交APP
上一篇
下一篇