Skip to content

关于MAA Copliot后端接口prts.maa.plus的SSL/TLS问题 #175

@mikoto2464

Description

@mikoto2464

问题描述

使用代理访问 https://prts.plus/ 时会出现如下错误
图片

问题排查

  1. 发现问题出现在prts.maa.plus后端接口似乎没有返回结果,并且提示CORS Failed
    图片

怀疑浏览器CORS策略问题?
服务器屏蔽国外请求?
DNS国内外解析错误?
TLS版本不匹配?
本机网络环境问题?

  1. http测试发现,并无国内外请求的限制,并且所有ip都解析到8.218.106.121,同时也排除了DNS的问题
    图片

  2. 不使用代理,tcping 443端口正常访问

> tcping 8.218.106.121 443

图片

  1. 使用代理,tcping 443端口同样正常访问,说明并不是在http请求上出现问题,判断大概率是SSL相关问题

> tcping 8.218.106.121 443 -proxy-server 127.0.0.1 -proxy-port 7891

图片

  1. 不使用代理,使用curl测试,正常访问,本机当前curl的加密套件并无问题

> curl -v https://prts.maa.plus/

图片

  1. 使用代理,使用curl测试,出现错误
    schannel: failed to receive handshake, SSL/TLS connection failed
    服务器并未返回握手信息,是此台服务器对我的代理服务器的请求被阻止了吗?

> curl -v https://prts.maa.plus/ -x http://127.0.0.1:7891

图片

  1. 在服务器上,使用curl测试,访问正常,并不是代理服务器与maa服务器之间的问题。
    也就是说,问题出现在本机与代理服务器之间的通信问题,通信使用的是hysteria2协议,尝试更换协议能否解决问题?

> curl https://prts.maa.plus

图片

  1. 更换为机场的vless + xtls-rprx-vision + reality配置(懒得再搭)再次测试。发现此时能够正常访问。

> curl -v https://prts.maa.plus/ -x http://127.0.0.1:7891

图片

问题总结

个人技术能力有限,知识范围也不足,目前貌似看来问题出在hysteria2协议或者我clash核心实现的问题?但是我使用此hysteria2代理访问其他网站,使用prts.maa.plus正在使用的TLS1.3时并未出现相关问题。但是此例仍可看出prts.maa.plus仍然可能存在SSL/TLS兼容问题。
图片

补充一下测试的环境,以便复现

  • 客户端:FlClash 0.8.63 项目地址
  • 内核:mihomo(Clash.Meta)项目地址
  • proxy配置
    { name: 'name', server: ip, port: 443, sni: domain, up: 5000, down: 5000, skip-cert-verify: false, type: hysteria2, password: password }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions