📜  ngrok 主机头无效 (1)

📅  最后修改于: 2023-12-03 15:03:11.040000             🧑  作者: Mango

Ngrok 主机头无效

Ngrok 是一款可以将本地服务映射到公网上的工具,让我们能够方便地测试本地应用或网站。然而,有些用户在使用过程中可能会遇到 ngrok 主机头无效 的问题。下面将介绍这个问题的原因和解决方法。

问题原因

当我们使用 Ngrok 建立本地服务与公网的链接时,Ngrok 会为我们随机分配一个二级域名,该域名会映射到我们指定的本地服务地址。但是,有些服务可能会根据 HTTP 请求的 Host 头信息来判断请求的来源,如果该信息与预期域名不一致,就会返回 ngrok 主机头无效 的错误信息。这通常是漏洞扫描器或反爬虫机制为了防止恶意攻击而采取的策略。

解决方法

1.指定域名

在启动 Ngrok 时,可以通过 -hostname 参数指定自己的域名,而不是使用随机分配的域名。例如:

ngrok http 80 -hostname mydomain.com

这样,Ngrok 就会使用 mydomain.com 这个域名来映射到本地的 http://localhost:80,并在请求的 Host 头信息中包含该域名。

  1. 修改 Hosts 文件

在本地计算机的 Hosts 文件中添加一条记录,将预期的域名与 Ngrok 的随机分配的二级域名进行绑定。例如,在 Windows 系统中,可以按照以下步骤操作:

  • 使用管理员权限打开记事本
  • 选择“文件” -> “打开” -> “C:\Windows\System32\drivers\etc” -> “hosts”
  • 在打开的 Hosts 文件中添加一行记录,例如 127.0.0.1 mydomain.com
  • 保存并关闭文件
  • 重新启动 Ngrok

这样,Ngrok 就会使用我们设定的域名来映射到本地服务地址,从而解决 ngrok 主机头无效 的问题。

以上两种方法都可以解决 Ngrok 主机头无效的问题,具体选择哪一种方法取决于项目的具体情况和自己的需求。