Chcę wiedzieć, czy konieczne jest włączenie usługi Telnet po obu stronach komputerów, aby uzyskać połączenie telnet.
Oto problem: próbuję telnetować się do publicznego adresu IP na porcie 80 z serwera WWW Linuksa (Red Hat).
Ten publiczny adres IP ma włączony protokół HTTP (80). I ” Nie jestem pewien, czy telnet jest włączony, ale właściciel tak twierdzi.
Na moim serwerze Linux włączony jest protokół HTTP (80), ale nie telnet. Zamiast tego włączane jest SSH.
Kiedy telnetuję się z mojego serwera Linux: telnet PublicIP 80
wyświetla się:
Trying "PublicIP"... Connected to "PublicIP" ("PublicIP"). Escape character is "^]". Connection closed by foreign host
Czy muszę włączyć telnet na moim serwerze, aby działał? Ponieważ po drugiej stronie nie ma problemu, co potwierdzają inne źródła. Publiczny adres IP: 220.226.190.180
Proszę wyjaśnić, jak mogę to zrobić. Jeśli muszę włączyć telnet na moim serwerze Linux, proszę udostępnić polecenie i metodę, aby to zrobić.
Komentarze
- jak wiemy, port telnet nie jest bezpieczny, więc większość fw go blokuje, czy na pewno że nie ma ' żadnej zapory (na innym komputerze), która blokowałaby port telnet.
- Wygląda na to, że już zrobiłeś to, co chciałeś … Telnet ' ed do zdalnej usługi HTTP, a ponieważ nie ' nie wpisałeś, zamknęło to połączenie. Nie musisz włączać usługi Telnet (Serwer) na dowolnej maszynie. Używasz klienta telnet. Możesz także użyć curl / wget / nc / cokolwiek, aby zrobić to samo.
- Istnieje duże prawdopodobieństwo, że tak jest. Ale jest to dozwolone do każdego. nawet ja mogę telnetować go z mojej sieci domowej na moim komputerze z systemem Windows, ale jest to z mojego biura m.in. m stoi. wszystko jest dozwolone po naszej stronie firewalla z tego serwera.
- @Networker problem bezpieczeństwa jest (w tym kontekście) po prostu nonsensem. telnet jest używany jako klient do testowania osiągalności usługi – i NIE, port telnet nie jest używany.
Odpowiedź
Próbujesz przetestować łączność ze zdalnym serwerem WWW za pomocą telnet
? Wtedy nie: nie potrzebujesz serwerów telnet. Zdalny serwer HTTP oczekuje na polecenia, co wskazuje znak ucieczki. Gdy upłynie limit czasu oczekiwania, połączenie jest zamykane. Więc …
telnet <hostname or ip address> 80
Następnie wpisz kilka poleceń HTTP:
GET / HTTP/1.1 host: <fqdn>
Użyj nazwy FQDN hosta, do obsługi którego został skonfigurowany zdalny serwer WWW. Zwróci domyślny dokument z powyższymi poleceniami HTTP. Proszę zwrócić uwagę na dokładny komentarz 0xAF.
Komentarze
- OP musi wprowadzić 1 pustą linię po swoim wprowadzeniu, aby móc pobrać dowolną odpowiedź. Większość serwerów HTTP zezwala na komunikację HTTP / 1.0. Jeśli OP próbuje przetestować tylko usługę HTTP, może po prostu napisać ” GET / HTTP / 1.0 ” i nacisnąć klawisz Enter 2 razy.
Odpowiedź
Odpowiadając na pytanie w pierwszym zdaniu: Telnet to dwie rzeczy: a aplikacja po stronie serwera (demon) i aplikacja po stronie klienta.
Kiedy serwer Telnet jest uruchomiony, komputer nasłuchuje na porcie TCP 23 w poszukiwaniu połączeń od klienta Telnet.
Klient telnet nie nasłuchuje na żadnym porcie, ale raczej próbuje połączyć się z portem TCP 23 (domyślnie) na komputerze. Jeśli łączy się poprawnie, użytkownik może zostać poproszony o zalogowanie się, a następnie ma interaktywną sesję powłoki. Ponieważ telnet komunikuje się domyślnie używając zwykłego, niezaszyfrowanego tekstu (łącznie z hasłem!), NIE jest to zalecane.
Jednak, jak mówi Christopher w swojej doskonałej odpowiedzi, jeśli naprawdę próbujesz przetestować serwer http przy użyciu telnet, możesz użyć do tego programu telnet i nie potrzebujesz serwera telnet.
Program klienta telnet może być używany do łączenia się z innymi portami TCP niż domyślny port 23.
telnet <hostname> <TCP port>
Ponieważ serwery http zwykle nasłuchują na porcie 80, możesz użyć programu telnet, aby połączyć się z portem 80 i zobaczyć, co serwer http wysyła do przeglądarek podczas ich łączenia:
telnet google.com 80
To się połączy, ale musisz wpisać następujący tekst, który jest zwykłym żądaniem http (ważna jest wielkość liter):
GET / HTTP/1.1 host: test.com
Następnie dwukrotnie naciśnij klawisz Enter.
Następnie zobaczysz cały nieprzetworzony kod HTML, który Google udostępnia przeglądarkom. Możesz użyć tej samej koncepcji, aby przetestować własne serwery http.
Odpowiedź
telnet
może służyć do testowania protokołu HTTP, ale istnieją narzędzia lepiej dostosowane do tego zadania. Osobiście polecam curl
. Zasadniczo jest to narzędzie wiersza poleceń, które może współpracować z wieloma różnymi protokołami (HTTP, HTTPS, FTP …). Użycie curl
zamiast telnet
do przetestowania serwera HTTP pozwoli uniknąć ręcznego wpisywania żądań HTTP i zapewni więcej informacji ogólnie.Oto niektóre funkcje, które mogą okazać się przydatne w obecnej sytuacji:
Połącz się z hostem za pomocą protokołu HTTP i zażądaj dokumentu domyślnego:
curl <public ip>
Połącz się z hostem za pomocą protokołu HTTP i wyświetl tylko nagłówki HTTP:
curl -I <public ip>
Połącz się z hostem za pomocą protokołu HTTP, wyświetl tylko nagłówki HTTP i postępuj zgodnie z przekierowaniami 3xx:
curl -LI <public ip>
curl
ma dosłownie dziesiątki opcji. Zalecam użycie curl --help
, aby uzyskać krótkie podsumowanie, i man curl
lub curl --manual
, aby uzyskać bardziej szczegółowe informacje.
Odpowiedź
Jeśli nie masz telnetu ani curl, możesz również użyć cat i proc dir do podłączenia portu:
cat < /dev/tcp/HOST/PORT
Pobrano z tego artykułu (w języku hiszpańskim) .