📅  最后修改于: 2023-12-03 15:03:11.040000             🧑  作者: Mango
Ngrok 是一款可以将本地服务映射到公网上的工具,让我们能够方便地测试本地应用或网站。然而,有些用户在使用过程中可能会遇到 ngrok 主机头无效
的问题。下面将介绍这个问题的原因和解决方法。
当我们使用 Ngrok 建立本地服务与公网的链接时,Ngrok 会为我们随机分配一个二级域名,该域名会映射到我们指定的本地服务地址。但是,有些服务可能会根据 HTTP 请求的 Host
头信息来判断请求的来源,如果该信息与预期域名不一致,就会返回 ngrok 主机头无效
的错误信息。这通常是漏洞扫描器或反爬虫机制为了防止恶意攻击而采取的策略。
1.指定域名
在启动 Ngrok 时,可以通过 -hostname
参数指定自己的域名,而不是使用随机分配的域名。例如:
ngrok http 80 -hostname mydomain.com
这样,Ngrok 就会使用 mydomain.com
这个域名来映射到本地的 http://localhost:80
,并在请求的 Host
头信息中包含该域名。
在本地计算机的 Hosts 文件中添加一条记录,将预期的域名与 Ngrok 的随机分配的二级域名进行绑定。例如,在 Windows 系统中,可以按照以下步骤操作:
127.0.0.1 mydomain.com
这样,Ngrok 就会使用我们设定的域名来映射到本地服务地址,从而解决 ngrok 主机头无效
的问题。
以上两种方法都可以解决 Ngrok 主机头无效的问题,具体选择哪一种方法取决于项目的具体情况和自己的需求。