Туннель не найден - PullRequest
       7

Туннель не найден

0 голосов
/ 02 февраля 2019

Я использую ngrok 1 клиента и сервера для создания туннеля к localhost.

Я запускаю скрипт для компиляции 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

На сервере я вижу журналы сразу после запроса скручивания:

[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

1 Ответ

0 голосов
/ 02 февраля 2019

На самом деле $ NGROK_DOMAIN был пуст в строке

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

После того, как я установил NGROK_DOMAIN = my-domain.com, он начал работать правильно.

...