ngrok 错误无法读取有效的 http 请求:格式错误的 HTTP 请求

Posted

技术标签:

【中文标题】ngrok 错误无法读取有效的 http 请求:格式错误的 HTTP 请求【英文标题】:ngrok error Failed to read valid http request: malformed HTTP request 【发布时间】:2017-12-16 17:10:40 【问题描述】:

我正在使用 ngrok 构建到 localhost 服务器的安全隧道

在服务器端我运行命令 start ngrok

./bin/ngrokd -domain="tunnel.kmic168.com" -httpAddr=":8080"

显示

[07/12/17 17:37:16] [INFO] [registry] [tun] No affinity cache specified
[07/12/17 17:37:16] [INFO] [metrics] Reporting every 30 seconds
[07/12/17 17:37:16] [INFO] Listening for public http connections on [::]:8080
[07/12/17 17:37:16] [INFO] Listening for public https connections on [::]:443
[07/12/17 17:37:16] [INFO] Listening for control and proxy connections on [::]:4443

看起来不错。然后我在客户端运行命令

./ngrok -subdomain=rbp -config="ngrok.cfg" 80

Tunnel Status: reconnecting .

总是重新连接。然后我检查了服务器端显示这些错误

[07/12/17 17:40:13] [INFO] [pub:7ac836d4] 新连接来自 119.130.171.143:25904 [07/12/17 17:40:13] [WARN] [pub:7ac836d4] 无法读取有效的 http 请求:HTTP 请求格式错误 "\x16\x03\x01\x00\x9a\x01\x00\x00\x96\x03\x03;Q?\xccj\xb7nm\xa0\xe0\x86\x04\u007fHW5\x10\xb1\xc4\xcc\ xed\xe5\xbf\xc9\x00\xa1ĥbq\x00\x00\x1c\xc0/\xc0+\xc00\xc0,\xc0\x13\xc0\t\xc0\x14\xc0" [07/12/17 17:40:13] [DEBG] [pub:7ac836d4] 结束 [07/12/17 17:40:23] [信息] [指标] 报告: "bytesIn.count":0,"bytesOut.count":0,"connMeter.count":0,"connMeter.m1":0,"httpTunnelMeter.count":0,"linux":0,"osx" :0,"other":0,"tcpTunnelMeter.count":0,"tunnelMeter.count":0,"tunnelMeter.m1":0,"windows":0

这是我的cfg文件内容

server_addr: "tunnel.kmic168.com:8080"
trust_host_root_certs: false

有解决此错误的方法吗?非常感谢!

【问题讨论】:

我确实测试了 nc -v -w 10 -z tunnel.kmic168.com 8080 连接到 tunnel.kmic168.com 8080 端口 [tcp/http-alt] 成功!一切顺利。但仍然无法读取有效的http请求 【参考方案1】:

我终于找到了解决办法

https://gist.github.com/lyoshenka/002b7fbd801d0fd21f2f

你必须使用端口 4443

【讨论】:

感谢您分享这个有用的链接。

以上是关于ngrok 错误无法读取有效的 http 请求:格式错误的 HTTP 请求的主要内容,如果未能解决你的问题,请参考以下文章

ngrok 无法正常工作以测试 HTTPS

ngrok,无法完成隧道连接

Ngrok 无法读取端口的配置

Discord bot 无法访问 Google Sheets 获取错误请求缺少有效的 API 密钥

Ngrok 不为 http 请求提供服务

Android 应用程序无法在真实设备上通过 NGROK 发送请求