Ngrok错误'502 bad gateway'。

72

我对使用任何网络应用程序都很陌生,最近一直在尝试缓慢地构建一个Facebook Messenger机器人。但是当我尝试使用ngrok时,我无法访问给定的地址,例如:

ngrok http 5000

我在命令行中输入的是这样的,它返回了如下结果:

ngrok by @inconshreveable

Session Status                online
Version                       2.1.18
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://ea986ca5.ngrok.io -> localhost:5000
Forwarding                    https://ea986ca5.ngrok.io -> localhost:5000

Connections                   ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00

但当我按照Facebook开发者页面所要求的方式使用地址 'https://ea986ca5.ngrok.io' 时,它显示:

The connection to http://ea986ca5.ngrok.io was successfully tunneled to your
ngrok client, but the client failed to establish a connection to the local  
address localhost:5000.


Make sure that a web service is running on localhost:5000 and that it is a 
valid address.


The error encountered was: dial tcp [::1]:5000: connectex: No connection 
could be made because the target machine actively refused it.

我的本地端口有问题吗?谢谢!


1
你能够实际访问 localhost:5000 吗? - njzk2
既然你提到了,我不能做什么?为什么? - Jordan Cagney
你是否有一个在该端口上监听的服务器? - njzk2
我是不是最好使用正在监听的端口? - Jordan Cagney
对我来说,使用ngrok总是出现问题。最终决定测试Marcel(Beyond Code)的Expose纯PHP应用程序。太棒了!安装简单,而且它只需要运行即可。 - s3c
显示剩余2条评论
24个回答

0

我通过艰辛的方式解决了这个问题。

  1. 确保使用正确的端口,然后使用 ngrok(例如 3000)。您必须同时运行 ngrok 和 node。
  2. 在代码和回调 URL 上使用正确的终点。
  3. 响应是一个大的 JSON,您必须将 req.query["hub.challenge"] 返回为整数/数字。

提示:使用 ngrok http 127.0.0.1:3000

enter image description here


0
由于某种原因,ngrok的Docker安装给我带来502错误。我为我的Windows操作系统下载了二进制文件,完美运行。

0

我终于做到了

ngrok http 80 

然后在本地主机上启动另一个服务:localhost:80... 在我的情况下,我使用以下内容

php -S localhost:80

而对于反向 shell 的东西...

nc -nlvp 80

您的问题现在已经解决。^_^


-1

如果您有一个HTTP规则将HTTP重定向到HTTPS,则可能会出现此错误。

您可以为开发人员机器禁用此功能,或基于X-Original-Host头添加自定义规则:

我正在使用IIS重写插件,这是我解决问题的方法。

 <rule name="Redirect to https" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
            <match url=".*" negate="false" />
            <conditions logicalGrouping="MatchAll">
              <add input="{HTTPS}" pattern="off" />

              <add input="{HTTP_X_Original_Host}" pattern="yourngrokname.ngrok.io" negate="true" />             

            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" />
          </rule>

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