So generieren Sie eine feste URL mit ngrok

73

Ich arbeite an Facebook Messenger.

Die Facebook-App akzeptiert nur eine URL für den Webhook, aber ngrock generiert jedes Mal eine neue URL. Jetzt kann ich meine App nicht testen, da die Webhook-URL geändert wurde.

Saxid
quelle
1
UPDATE NOV 2018: Siehe Antwort unten mit mehr als 39 Upvotes, die andere Dienste vorschlagen! stackoverflow.com/a/47500376/565877
Devin G Rhode

Antworten:

156

UPDATE Mai 2020

Serveo ist wieder betriebsbereit ! Keine Installation, keine Anmeldung!

Alles, was Sie tun müssen, ist Folgendes auszuführen:

ssh -R <unique subdomain>:80:<your local host>:<your local port> serveo.net

mögen

ssh -R youruniquesubdomain:80:localhost:8000 serveo.net

UPDATE Januar 2020

Da es einige Probleme mit Serveo und localtunnel gibt , möchte ich Ihnen einen weiteren kostenlosen ssh-basierten Selbsthosting- Service vorstellen : Localhost.run

Leider bietet es keine eindeutigen Subdomains, ist jedoch ssh-basiert, sodass Sie keine zusätzlichen Anwendungen installieren müssen. Ich warte immer noch darauf, dass Serveo zurückkommt.


UPDATE April 2018

Ich habe gerade Serveo gefunden ! Und es ist total unglaublich!


UPDATE November 2017

Wahrscheinlich ist es nicht die beste Option für Sie, aber ich habe angefangen, localtunnel anstelle von ngrok zu verwenden .

Ein Installations- und Ausführungsablauf ist sehr einfach:

npm install -g localtunnel
lt --port <your localhost port> --subdomain youruniquesubdomain

Dann kann ich zu meiner http://youruniquesubdomain.localtunnel.me gehen. Das war's!

Eugene Kovalev
quelle
1
Während ich mich in einem Docker-Container entwickle, wird in meinem virtuellen Netzwerk eine subdomain.localhostURL ausgeführt. Dieses Tool macht genau das, was ich brauchte. Danke für den Vorschlag.
DazBaldwin
3
@DazBaldwin Ich habe meine Antwort gerade aktualisiert. Serveo sieht unglaublich aus!
Eugene Kovalev
1
Serveo ist großartig! Wenn Sie nach Alternativen suchen, gibt es auch Burrow.io . Sie erstellen und verwalten Tunnel über die Weboberfläche, sodass Sie nicht einmal ssh-Befehle eingeben müssen. Fügen Sie einfach einen CURL-Befehl ein und BAM, Tunnel geöffnet.
Paulo Arruda
9
Starten Sie Servo automatisch neu, nachdem Sie die Verbindung mituntil ssh -R aw2xcd:80:localhost:5000 serveo.net; do echo "Restarting..."; done
Chris Gunawardena
4
22. Juli, Serveo wieder runter.
Addict
13

Keine kostenlose Subdomain-Unterstützung mehr von ngrok ..... pls haben einen Fehler wie unten

Tunnelsitzung fehlgeschlagen: Nur kostenpflichtige Pläne können benutzerdefinierte Subdomains binden. Fehler beim Binden der benutzerdefinierten Subdomain 'arvindpattartestfb.ngrok.io' für das Konto 'arvccccc'. Dieses Konto ist im 'Free'-Plan enthalten.

Aktualisieren Sie auf einen kostenpflichtigen Tarif unter: https://dashboard.ngrok.com/billing/plan

ERR_NGROK_313

Arvind Pattar
quelle
Tatsächlich. ngrok Nachricht : Tunnel session failed: Only paid plans may bind custom subdomains... Sign up at: https://ngrok.com/signup. If you have already signed up, make sure your authtoken is installed. Your authtoken is available on your dashboard: https://dashboard.ngrok.com.
Barak Manos
2
Wann hat sich das geändert und wo war die Ankündigung?
JackKalish
8

Sie müssen das Authentifizierungstoken einrichten, das Sie hier finden: https://dashboard.ngrok.com/auth . (W̶o̶r̶k̶s̶ ̶w̶i̶t̶h̶ ̶f̶r̶e̶e̶ ̶v̶e̶r̶s̶i̶o̶n̶, ̶n̶o̶ ̶n̶e̶e̶d̶ ̶t̶o̶ ̶p̶a̶y̶ Anscheinend ist es jetzt kostenpflichtig, siehe ngrok Preise ).

Dann können Sie es so verwenden:

ngrok http 80 -subdomain yoursubdomain
pbogut
quelle
6
Funktioniert nicht Immer noch der gleiche Fehler. Tunnelsitzung fehlgeschlagen: Nur kostenpflichtige Pläne können benutzerdefinierte Subdomains binden. Fehler beim Binden der benutzerdefinierten Subdomain 'mysubdomain' für das Konto 'Ck Maurya'. Dieses Konto ist im 'Free'-Plan enthalten.
Ck Maurya
Das ist wirklich seltsam, ich zahle keinen Cent und kann die Subdomain-Option verwenden. Vielleicht funktioniert es nur für einige Zeit bei neuen Konten?
pbogut
Ich habe das gleiche Problem wie @CkMaurya = (
Adriano Tadao
Welche Version von ngrok verwenden Sie? Ich habe ngrok version 2.0.19installiert, und wenn ich es starte, ngrok http 80 -subdomain yoursubdomainfunktioniert es einwandfrei. Aber wie gesagt, Token muss eingerichtet werden. Wenn ich mein Token entferne, wird der gleiche Fehler angezeigt. Vielleicht ist mein Konto etwas Besonderes, aber ich bezahle nicht dafür.
pbogut
1
Version 2.2.8 gibt an, ERR_NGROK_313wenn der obige Befehl mit einem verwendeten Authentifizierungstoken ausgeführt wird.
Steve Chambers
2

Weder localtunnel.me noch Serveo arbeiten derzeit für mich, daher habe ich eine temporäre Lösung erstellt, die für einige Anwendungsfälle geeignet ist, einschließlich meiner ( ngrokreaktionsnative lokale Entwicklung): Mit dem npm-Paket kann die generierte ngrok-URL in einer json-Datei gespeichert werden , und diese Datei kann für jede andere App gelesen werden.

Stellen Sie zunächst sicher, dass Sie ngrok mithilfe npm install ngrokdieses Knotenskripts installieren :

const ngrok = require('ngrok');
const fs = require('fs').promises;

(async function() {
  const url = await ngrok.connect(3000);
  const api = ngrok.getApi();
  let data = await api.get('api/tunnels');
  data = JSON.parse(data);
  let dict = {'domain': data.tunnels[0].public_url}
  await fs.writeFile("config.json", JSON.stringify(dict));
  console.log("saved " + data.tunnels[0].public_url);
})();

Dann können Sie es von Ihrer App aus mit ähnlichem oder gleichem Code lesen:

const backend = require('./config.json').domain;
Ivan Castellanos
quelle
1

einfach für die lokale DHIS2-Installation habe ich dies auf termainl auf ubunut server gemacht.

Stellen Sie sicher, dass Ihr Web auf dem angegebenen Port ausgeführt wird. meins war auf 8080.

ssh -R dani.serveo.net:80:localhost:8080 serveo.net

Das Schöne an diesem Serveo.net ist, dass Sie denselben Hostnamen ... Präfix-URL vor Servo.net so oft wie gewünscht wiederherstellen können, selbst wenn der Strom ausfällt oder die Internetverbindung unterbrochen wird.

Prost!

Daniel Adenew
quelle
0

Obwohl es keine Lösung ist, sondern es als Problemumgehung betrachtet, hatte ich beim Testen das gleiche Problem. Was ich getan habe, ist, das ngrok mit meinem http-Port am Laufen zu halten, damit sich meine ngrok-URL nicht ändert. Ich ändere jedoch häufig meinen Server und starte ihn neu, um ihn zu testen und zu debuggen.

Forscher
quelle
0

Der Staqlab-Tunnel stellt eine Domain kostenlos zur Verfügung. Es funktioniert großartig, benötigt aber eine Binärdatei, um von der Website heruntergeladen zu werden. Verwenden Sie diesen Service monatelang ohne Probleme

abhishekq61
quelle