找不到隧道

Tunnel not found

我正在使用 ngrok 1 客户端和服务器建立到本地主机的隧道。

我运行the script在服务器端编译ngrokd和ngrok:

NGROK_DOMAIN="my-domain.com"
git clone https://github.com/inconshreveable/ngrok.git
cd ngrok

openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

cp rootCA.pem assets/client/tls/ngrokroot.crt
# make clean
make release-server release-client

我运行服务器:

bin/ngrokd -tlsKey=device.key -tlsCrt=device.crt -domain="$NGROK_DOMAIN" -httpAddr=":8000" -httpsAddr=":8001"

然后我把刚刚编译好的ngrok下载到客户端。 我创建客户端配置:

NGROK_DOMAIN="my-domain.com"
echo -e "server_addr: $NGROK_DOMAIN:4443\ntrust_host_root_certs: false" > ngrok-config

和运行客户:

./ngrok -config=ngrok-config 80

并且显示在线:

Tunnel Status                 online                                                                                                                                                 
Version                       1.7/1.7                                                                                                                                                
Forwarding                    http://4f2e0a1e.:8000 -> 127.0.0.1:80                                                                                                                  
Forwarding                    https://4f2e0a1e.:8000 -> 127.0.0.1:80                                                                                                                 
Web Interface                 127.0.0.1:4040                                                                                                                                         
# Conn                        0                                                                                                                                                      
Avg Conn Time                 0.00ms

然后我请求 http://4f2e0a1e.my-domain.com:8000 希望它将请求传递给我的 localhost:80:

curl http://4f2e0a1e.my-domain.com:8000

但响应是:

Tunnel 4f2e0a1e.my-domain.com:8000 not found

在服务器上,我在 curl 请求后立即看到日志:

[08:59:15 MSK 2019/02/02] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [pub:1ca51d1c] New connection from myClientIp:63169
[08:59:15 MSK 2019/02/02] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [pub:1ca51d1c] Found hostname 4f2e0a1e.my-domain.com:8000 in request
[08:59:15 MSK 2019/02/02] [INFO] (ngrok/log.(*PrefixLogger).Info:83) [pub:1ca51d1c] No tunnel found for hostname 4f2e0a1e.my-domain.com:8000
[08:59:15 MSK 2019/02/02] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [pub:1ca51d1c] Closing

实际上,$NGROK_DOMAIN 在行

中是空的
bin/ngrokd -tlsKey=device.key -tlsCrt=device.crt -domain="$NGROK_DOMAIN" -httpAddr=":8000" -httpsAddr=":8001"

我设置NGROK_DOMAIN=my-domain.com后,开始正常工作了

您可以使用 VMWare workstation 代替 oracle virtual box 我相信它会起作用。 我也遇到了 ngrok 隧道错误。

I got the final and ultimate solution for this issue !

  1. 忘记您的旧帐户并创建一个新帐户 Ngrok
  2. 只需按照 ngrok 将新的身份验证配置添加到您的终端 文档 here
  3. 就是这样,现在照常启动您的隧道。它会起作用 在 WAN 上很好。

我认为这个问题是由 Ngrok 防火墙由于可疑活动引起的。

您有 3 种修复方法

解决方案 #1:Authenticate/Re-authenticate 使用来自 ngrok 的令牌 怎么做? 第 1 步:转到终端上的 ngrok 文件夹位置 第二步:输入:ngrok config add-authtoken your_auth_id

解决方案 #2:删除您的帐户并重新创建它或在 Ngrok 上创建一个全新的帐户。并且不要忘记验证您的令牌

解决方案 #3:如果您的问题未得到解决或您不断收到相同的错误,请联系 Ngrok 支持团队