Ich möchte wissen, ob Telnet auf beiden Seiten der Computer aktiviert sein muss, um eine Telnet-Verbindung herzustellen.
Hier ist das Problem: Ich versuche, eine öffentliche IP auf Port 80 von einem Linux-Webserver (Red Hat) aus zu telneten.
Auf dieser öffentlichen IP ist HTTP (80) aktiviert. I “ Ich bin mir nicht sicher, ob Telnet aktiviert ist, aber der Eigentümer sagt, dass dies der Fall ist.
Auf meinem Linux-Server ist HTTP (80) aktiviert, Telnet jedoch nicht. Stattdessen ist SSH aktiviert.
Wenn ich von meinem Linux-Server aus telnet: telnet PublicIP 80
heißt es:
Trying "PublicIP"... Connected to "PublicIP" ("PublicIP"). Escape character is "^]". Connection closed by foreign host
Muss Telnet auf meinem Server aktiviert werden, damit es funktioniert? Weil es am anderen Ende kein Problem gibt, wie von anderen Quellen bestätigt. Öffentliche IP: 220.226.190.180
Bitte erläutern Sie, wie ich es zum Laufen bringen kann. Wenn ich Telnet auf meinem Linux-Server aktivieren muss, bitte Teilen Sie den Befehl und die Methode, um dies zu tun.
Kommentare
- Da wir wissen, dass der Telnet-Port nicht sicher ist, blockieren die meisten fw ihn, sind Sie sicher dass es ‚ keine Firewall (auf dem anderen Computer) gibt, die den Telnet-Port blockiert.
- Es scheint, dass Sie bereits getan haben, was Sie wollten … Sie Telnet ‚ zum Remote-HTTP-Dienst und da Sie ‚ nichts eingegeben haben, wurde die Verbindung geschlossen. Sie müssen den Telnet-Dienst nicht aktivieren (Server) auf jedem Computer. Sie verwenden den Telnet-Client. Sie können auch curl / wget / nc / Whatever verwenden, um dasselbe zu tun.
- Es besteht eine hohe Wahrscheinlichkeit, dass dies der Fall ist. Aber es ist zulässig an jeden. sogar ich kann es von meinem Heimnetzwerk auf meinem Windows-PC telnet. aber es ist von meinem Büro ua m gegenüber. Auf unserer Seite der Firewall ist von diesem Server aus alles erlaubt.
- @Networker Die Sicherheitsbedenken sind (in diesem Zusammenhang) nur Unsinn. Telnet wird als Client verwendet, um die Erreichbarkeit eines Dienstes zu testen – und NEIN, der Telnet-Port ist nicht beteiligt.
Antwort
Sie versuchen, die Konnektivität zu einem Remote-Webserver mit telnet
zu testen? Dann nein: Sie benötigen keine Telnet-Server. Der Remote-HTTP-Server wartet auf Befehle, wie durch das Escape-Zeichen angezeigt. Wenn das Warten abgelaufen ist, wird die Verbindung geschlossen. Also …
telnet <hostname or ip address> 80
Geben Sie dann einige HTTP-Befehle ein:
GET / HTTP/1.1 host: <fqdn>
Verwenden Sie den vollqualifizierten Domänennamen eines Hosts, für den der Remote-Webserver konfiguriert wurde. Das Standarddokument wird mit den obigen HTTP-Befehlen zurückgegeben. Bitte beachten Sie den genauen Kommentar von 0xAF.
Kommentare
- Das OP muss nach seiner Eingabe eine leere Zeile eingeben, um eine Antwort abrufen zu können. Die meisten HTTP-Server ermöglichen die HTTP / 1.0-Kommunikation. Wenn das OP versucht, nur den HTTP-Dienst zu testen, kann er einfach “ GET / HTTP / 1.0 “ schreiben und die Eingabetaste drücken 2 mal.
Antwort
Um Ihre Frage im ersten Satz zu beantworten: Telnet besteht aus zwei Dingen: a serverseitige Anwendung (Daemon) und clientseitige Anwendung.
Wenn ein Telnet-Server ausgeführt wird, wartet der Computer auf TCP-Port 23 auf Verbindungen von einem Telnet-Client.
Ein Telnet-Client überwacht keine Ports, sondern versucht, eine Verbindung zum TCP-Port 23 (standardmäßig) auf einem Computer herzustellen. Wenn die Verbindung korrekt hergestellt wurde, wird der Benutzer möglicherweise aufgefordert, sich anzumelden, und hat dann eine interaktive Shell-Sitzung. Da Telnet standardmäßig mit einfachem, unverschlüsseltem Text (einschließlich Ihres Passworts!) Kommuniziert, wird dies NICHT empfohlen.
Wie Christopher jedoch in seiner ausgezeichneten Antwort sagt, wenn Sie wirklich versuchen, einen http-Server mit zu testen Telnet, Sie können das Telnet-Programm dafür verwenden, und Sie benötigen keinen Telnet-Server.
Mit dem Telnet-Client-Programm können Sie eine Verbindung zu anderen TCP-Ports als dem Standard-Port 23 herstellen.
telnet <hostname> <TCP port>
Da http-Server normalerweise Port 80 überwachen, können Sie mit dem Telnet-Programm eine Verbindung zu Port 80 herstellen und sehen, was der http-Server an Browser sendet, wenn diese eine Verbindung herstellen:
telnet google.com 80
Damit wird eine Verbindung hergestellt, aber Sie müssen dann den folgenden Text eingeben, der nur eine einfache http-Anforderung ist (Groß- / Kleinschreibung ist wichtig):
GET / HTTP/1.1 host: test.com
Drücken Sie dann zweimal die Eingabetaste.
Sie sehen dann alle rohen HTML-Dateien, die Google für Browser bereitstellt. Sie können dasselbe Konzept verwenden, um Ihre zu testen eigene http-Server.
Antwort
telnet
kann zum Testen des HTTP-Protokolls verwendet werden, es gibt jedoch Tools, die für die Aufgabe besser geeignet sind. Ich persönlich empfehle curl
. Es handelt sich im Wesentlichen um ein Befehlszeilenprogramm, das mit einer Vielzahl von Protokollen (HTTP, HTTPS, FTP …) interagieren kann. Wenn Sie curl
anstelle von telnet
zum Testen eines HTTP-Servers verwenden, müssen Sie die HTTP-Anforderungen nicht manuell eingeben und erhalten diese Weitere Informationen insgesamt.Einige Funktionen, die Sie für Ihre aktuelle Situation möglicherweise nützlich finden, sind:
Stellen Sie über HTTP eine Verbindung zu einem Host her und fordern Sie das Standarddokument an:
curl <public ip>
Stellen Sie über HTTP eine Verbindung zu einem Host her und zeigen Sie nur die HTTP-Header an:
curl -I <public ip>
Stellen Sie über HTTP eine Verbindung zum Host her, zeigen Sie nur die HTTP-Header an und folgen Sie den 3xx-Weiterleitungen:
curl -LI <public ip>
curl
bietet buchstäblich Dutzende von Optionen. Ich empfehle die Verwendung von curl --help
für eine kurze Zusammenfassung und man curl
oder curl --manual
für detailliertere Informationen.
Antwort
Wenn Sie kein Telnet oder Curl haben, können Sie auch cat und proc dir verwenden, um einen Port zu verbinden:
cat < /dev/tcp/HOST/PORT
Aus diesem Artikel (auf Spanisch) extrahiert.