如何解决ngrok无效的HTTP响应错误

23

我正在使用zphisher。当我创建一个指向ngrok的链接时,链接被生成了,但是打开它时显示“ngrok网关错误The server returned an invalid or incomplete HTTP response.”。我从ngrok的错误文档中得知这是错误3004,他们列出了错误代码和信息,但没有提供可能修复错误的方法。有人能帮助我吗?我认为我的兄弟在在线课堂上看YouTube视频,我想确信一下,但不想使用钓鱼。我从任何地方都没有得到过任何帮助,只有一个朋友告诉我需要一个ngrok账户,但我试过了,并没有起作用。

7个回答

25

经过一些时间的尝试,我通过以下两个步骤成功解决了问题:

  1. 确保我的本地站点是http(而不是https)
  2. 运行命令ngrok http -host-header=rewrite localhost:PORT

3
正如其他人所说,您可以通过使用完整地址而不仅仅是端口来托管本地https站点:ngrok http https://localhost:8433 - Russ Savage

16
如果您的网站使用https://localhost:port,下面的内容对我来说确实有效。
ngrok http https://localhost:port --host-header=rewrite

3
尝试了各种语法,但是追加 --host-header=rewrite 就是解决方案。 - Michel Rummens
优秀,TCP隧道功能正常。 - Critical Ghost
--host-header=rewrite 是缺失的参数,谢谢 @Mary - Hamza Makraz

14

当我收到3004错误消息并尝试访问https://localhost:3000时,这个命令对我有用:

./ngrok http https://localhost:3000

4
同样地,需要使用ngrok http https://localhost:5001 -host-header="localhost:5001"(而不是 Microsoft 文档中仅建议使用 ngrok http -host-header=localhost 5001)。 - Joel Balmer
1
您也可以使用 -host-header rewrite 来实现此功能。 - Russ Savage

5

我在这个链接中找到了答案,并解决了我的问题。

根据这个链接,你可以使用以下命令:

ngrok http https://localhost:[port]

0
解决方案非常简单。使用您的应用程序正在运行的localhost:port。例如,我的Jenkins应用程序正在运行
http://localhost:8080
我将运行命令$ngrok http http://localhost:8080
注意http / https的区别

0
错误信息: "通过HTTPS加载,但请求的XMLHttpRequest端点为不安全的'http://11111.ngrok-free.app/'。此请求已被阻止;内容必须通过HTTPS提供。"
我在使用ngrok时遇到了同样的问题,我的网站是https的,但所有内部请求都被更改为http,所以为了使其正常工作, 我修改了EasyAdmin Bundle中的代码,文件位于/vendor/easycorp/easyadmin-bundle/src/router/AdminUrlGenerator.php 在第267行的"$this->isInitialized = false;"之后, 我们需要添加以下代码: $url = str_replace("http","https",$url);
现在它对我来说可以正常工作了。

0
我的解决方案是使用这个命令:
ngrok http "http://$(ip route get 1.2.3.4 | awk '{print $7}')"

你的httpd.conf必须监听80端口,或者你必须在命令中添加它。 我的操作系统是Arch Linux。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接