Ik wil weten of het nodig is om telnet aan beide kanten van machines ingeschakeld te hebben om een telnet-verbinding te krijgen.
Hier is het probleem: ik probeer een openbaar IP-adres te telnet op poort 80 vanaf een Linux-webserver (Red Hat).
Op dit openbare IP-adres is HTTP (80) ingeschakeld. I ” Ik weet niet zeker of telnet is ingeschakeld, maar de eigenaar zegt van wel.
Op mijn Linux-server is HTTP (80) ingeschakeld, maar niet telnet. In plaats daarvan is SSH ingeschakeld.
Als ik telnet vanaf mijn Linux-server: telnet PublicIP 80
, staat er:
Trying "PublicIP"... Connected to "PublicIP" ("PublicIP"). Escape character is "^]". Connection closed by foreign host
Moet ik telnet op mijn server inschakelen om het te laten werken? Omdat er aan de andere kant geen probleem is, zoals bevestigd door andere bronnen. Public IP: 220.226.190.180
Leg uit hoe ik het kan laten werken. Als ik telnet op mijn Linux-server moet inschakelen, deel het commando en de methode om dit te doen.
Reacties
- aangezien we de telnet-poort kennen is het niet veilig, dus de meeste fw blokkeren het, weet je het zeker dat er geen ‘ is een firewall (op de andere machine) die de telnet-poort blokkeert.
- Het lijkt erop dat je al hebt gedaan wat je wilde … Je telnet ‘ ed naar de externe HTTP-service en aangezien je ‘ niets hebt getypt, is de verbinding verbroken. Je hoeft de Telnet-service niet in te schakelen (Server) op elke machine. U gebruikt de telnet-client. U kunt ook curl / wget / nc / what gebruiken om hetzelfde te doen.
- De kans is groot dat dat zo is. Maar het is toegestaan naar iedereen, zelfs ik kan het telnet vanaf mijn thuisnetwerk op mijn Windows-pc, maar het is vanuit mijn kantoor ia m geconfronteerd. alles is toegestaan aan onze kant van de firewall vanaf deze server.
- @Networker de bezorgdheid over de veiligheid is (in deze context) gewoon onzin. telnet wordt gebruikt als een client om de bereikbaarheid van een service te testen – en NEE, de telnet-poort is niet betrokken.
Antwoord
U probeert de verbinding met een externe webserver te testen met telnet
? Dan nee: u heeft geen telnet-servers nodig. De externe HTTP-server wacht op opdrachten, zoals aangegeven door het escape-teken. Als het wachten verloopt, wordt de verbinding verbroken. Dus …
telnet <hostname or ip address> 80
Typ vervolgens een paar HTTP-opdrachten:
GET / HTTP/1.1 host: <fqdn>
Gebruik de FQDN van een host waarvoor de externe webserver is geconfigureerd. Het retourneert het standaarddocument met de bovenstaande HTTP-opdrachten. Let op de nauwkeurige opmerking van 0xAF.
Opmerkingen
- Het OP moet 1 lege regel invoeren na zijn invoer om een antwoord te kunnen ophalen. De meeste HTTP-servers staan HTTP / 1.0-communicatie toe. Als het OP alleen de HTTP-service probeert te testen, kan hij gewoon ” GET / HTTP / 1.0 ” schrijven en op enter drukken 2 keer.
Answer
Om uw vraag in de eerste zin te beantwoorden: Telnet is twee dingen: a server-side applicatie (daemon) en een client-side applicatie.
Wanneer een telnet-server draait, luistert de computer op TCP-poort 23 naar verbindingen van een telnet-client.
Een telnet-client luistert niet op poorten, maar probeert eerder verbinding te maken met TCP-poort 23 (standaard) op een computer. Als het correct verbinding maakt, kan de gebruiker worden gevraagd om in te loggen en heeft dan een interactieve shell-sessie. Omdat telnet standaard communiceert met gewone, niet-versleutelde tekst (inclusief je wachtwoord!), Wordt dit NIET aanbevolen.
Echter, zoals Christopher zegt in zijn uitstekende antwoord, als je echt een http-server probeert te testen met telnet, je kunt daarvoor het telnet-programma gebruiken en je hebt geen telnet-server nodig.
Het telnet-clientprogramma kan worden gebruikt om verbinding te maken met andere TCP-poorten dan de standaardpoort 23.
telnet <hostname> <TCP port>
Omdat http-servers gewoonlijk op poort 80 luisteren, kunt u het telnet-programma gebruiken om verbinding te maken met poort 80, en zien wat de http-server naar browsers verzendt wanneer ze verbinding maken:
telnet google.com 80
Dat zal verbinding maken, maar u moet dan de volgende tekst typen, wat slechts een eenvoudig http-verzoek is (hoofdlettergebruik is belangrijk):
GET / HTTP/1.1 host: test.com
Druk vervolgens twee keer op enter.
U ziet dan alle onbewerkte html die Google aan browsers levert. U kunt hetzelfde concept gebruiken om uw eigen http-servers.
Antwoord
telnet
kan worden gebruikt om het HTTP-protocol te testen, maar er zijn tools die beter geschikt zijn voor de taak. Persoonlijk raad ik curl
aan. Het is in wezen een opdrachtregelhulpprogramma dat kan communiceren met een breed scala aan protocollen (HTTP, HTTPS, FTP …). Als u curl
gebruikt in plaats van telnet
om een HTTP-server te testen, hoeft u niet handmatig de HTTP-verzoeken in te typen en krijgt u meer algemene informatie.Enkele functies die u wellicht nuttig vindt voor uw huidige situatie zijn:
Maak verbinding met een host via HTTP en vraag het standaarddocument aan:
curl <public ip>
Maak verbinding met een host via HTTP en bekijk alleen de HTTP-headers:
curl -I <public ip>
Maak verbinding met de host via HTTP, bekijk alleen de HTTP-headers en volg 3xx-omleidingen:
curl -LI <public ip>
curl
heeft letterlijk tientallen opties. Ik raad aan om curl --help
te gebruiken voor een korte samenvatting en man curl
of curl --manual
voor meer gedetailleerde informatie.
Answer
Als je geen telnet of curl hebt, kun je ook cat en proc dir gebruiken om een poort aan te sluiten:
cat < /dev/tcp/HOST/PORT
Geëxtraheerd uit dit artikel (in het Spaans) .