当前位置: 首页 > 知识库问答 >
问题:

通过隧道(使用ngrok)将本地主机暴露到internet:HTTP错误400:错误请求;无效的主机名

万俟修诚
2023-03-14

从以前版本的问题来看,有这样一个问题:用ip地址而不是本地主机浏览网站,这大致概括了我到目前为止所做的工作。。。我已经让本地IP工作了。然后我找到了ngrok,显然我不需要通过IP连接。

我想做的是将我在localhost上运行的网站暴露在互联网上。我找到了一个可以做到这一点的工具:ngrok。

在Visual Studio中运行网站,网站会在localhost/port#.启动。我在命令行中运行命令“ngrok超文本传输协议端口#”。一切似乎都很好。我生成了几个网址,ngrok检查网址(localhost:4040)有效。

唯一的问题是,当我转到生成的URL时,我得到一个HTTP错误400:错误请求无效主机名。这与我运行“ngrok超文本传输协议错误端口#”时的错误不同,这是一个找不到主机的错误...所以我认为发生了一些好事。我只是不知道是什么...

在通过隧道服务将我的网站暴露到互联网上时,我是否遗漏了一个步骤?如果有,我在ngrok留档中找不到它。

共有3个答案

南门峰
2023-03-14

这对我不起作用。您可以执行以下操作:

对于IIS Express

在VS 2015中:转到<代码>。vs\config\applicationhost。配置项目中的文件夹

在VS 2013及更早版本中:转到%USERPROFILE%\My Documents\IISExpress\config\applicationhost.config

查找说明以下内容的绑定:

<binding protocol="http" bindingInformation="*:5219:localhost" />

对我来说,这是一个运行在5219端口的项目

把它改成

  <binding protocol="http" bindingInformation="*:5219:" />

IIS Express现在将接受该端口上的所有传入连接。

缺点:您需要以管理员身份运行IIS Express。

或者,您可以在Ngrok中重写主机标头:

ngrok.exe http -host-header=rewrite localhost:5219
吴峰
2023-03-14

以下命令将解决问题

ngrok http -host-header=localhost 8080
国言
2023-03-14

与ngrok解决此问题。用不可置信的话来说,一些应用程序在看到与预期不同的主机头时会感到愤怒。

运行以下命令应该可以解决问题:

ngrok http [port] -host-header="localhost:[port]"

根据版本的不同,您可能还想尝试:

ngrok http [port] --host-header="localhost:[port]"
 类似资料:
  • 我想通过ssh隧道与具有localhost访问权限的用户连接到远程MySQL。 我用这个做隧道: 和这个连接到主机: 我得到的错误是: 问题是用户“user”@“remote-host”(或“user”@“%”)不存在,只有“user”@“localhost”存在。 有没有办法强迫远程主机在不进行服务器端修改的情况下认为我来自本地主机?这是我通过ssh隧道进行连接的唯一原因。 注: 如果要连接此命

  • 我在索引中有代码。php 在头上。php 当我尝试在浏览器中打开时,发现以下错误:

  • 问题内容: 在我的工作中,我与docker一起工作,而该选项的工作方式就像将docker容器端口转发到机器的超级按钮一样。这使我可以通过示例添加使用某些端口的艰苦任务: 在9001端口为我的覆盖率报告提供帮助 我的应用程序的本地部署版本在端口9000中提供 手表实时重新加载端口35729 对于单元测试运行器,请使用9876端口 当我开始在Mac中使用Docker时,我遇到的第一个问题是:该选项不再

  • 你好,朋友,我是一个新的flutter当我尝试在本地主机上发出http请求时,我得到了这个错误 E/Flutter(8392):[错误:Flutter/lib/ui/ui_dart_state.cc(157)]未处理异常:SocketException:OS错误:连接被拒绝,错误号=111,地址=127.0.0.1,端口=33200我正在本地主机上使用http pacakge与laravel应用程

  • 我有一个基于Spring Web model view controller(MVC)框架的项目。Spring Web模型-视图-控制器(MVC)框架的版本是3.2.8 我有这个控制器 这个URL一切正常:

  • 目前从Angular JS controller中,我试图将JSON数据发送到后端服务。但是我有400个错误的请求错误。 在Controller中,我试图通过http服务发送数据,如下所示: