错误请求 - 无效的主机名 HTTP 错误 400。请求的主机名无效。在使用ngrok时出现此问题。

66

当我使用ngrok并使用以下配置运行ngrok给出的url时:

  • 我的本地url是:localhost:8080/someexample
  • 我的ngrok url是:http://f07d0862.ngrok.io/

它显示如下错误:

Bad Request - Invalid Hostname  HTTP Error 400. 

1
你能告诉我如何生成ngrok的URL吗? - Naman Sogani
1
嘿,Sunny:你能把答案标记为正确吗? - Jonathan ANTOINE
请将本地主机通过隧道暴露到互联网上,使用ngrok时出现HTTP错误400的重复问题。 - Pratyush Dhanuka
6个回答

181

由于主机名不同,您的Web服务器正在拒绝该请求。

请尝试 ngrok http -host-header="localhost:8080"


这个非常完美,也是使用Facebook Messenger Webhooks进行开发的完美解决方案。 - Mike Upjohn
8
这个回答缺少了主机头值周围的引号和冒号,应该是:-host-header="localhost:8080" - moritzg
请参考以下链接 https://dev59.com/y10a5IYBdhLWcg3wRGvp - Pratyush Dhanuka
这是对我有效的命令:ngrok http -host-header=localhost 8080。使用其他命令会显示错误无法完成隧道连接对于 http://27900a3a1d5e.ngrok.io 的连接已经成功地隧道传输到您的 ngrok 客户端,但是客户端未能与本地地址 host-header=localhost:33511 建立连接。请确保在 host-header=localhost:33511 上运行了 Web 服务,并且它是有效的地址。遇到的错误是:拨号 tcp:查询 host-header=localhost:没有这样的主机。 - Momodu Deen Swarray
我需要在ngrok 3.0.6上使用两个前导破折号:--host-header="localhost:8080" - Holistic Developer

40

这就是您想要的解决方案。

ngrok http 8080 -host-header="localhost:8080"

6
这是我成功的做法:
ngrok http -host-header=localhost 8080

3

对我来说,这是这样的

ngrok.exe http https://localhost:44315 --host-header=localhost:44315

0

如果使用 -o 标志出现错误,请尝试使用双--

ngrok http 8080 --host-header="localhost:8080"


-2

也许你应该关闭防火墙。

这对我有用。


Ngrok可以绕过防火墙限制,那么防火墙应该如何成为一个问题呢? - Sevada 797

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