Телнет је мрежни протокол који се користи за даљински приступ рачунару и обезбеђује двосмерну комуникацију засновану на тексту. Дакле, потребни су вам телнет сервер и клијент да бисте међусобно разговарали.
Телнет је један од популарних Линук/Виндовс услужних програма који је дуго служио својој сврси.
Главни проблем са телнетом на савременим системима је тај што није безбедан. Сва комуникација у телнету се одвија у обичном тексту, а сав мрежни саобраћај је нешифрован. У суштини свако са одговарајућим приступом и алатима може њушкати мрежни саобраћај да би прочитао овај саобраћај. Као такви, већина модерних Линук оперативних система не долази са унапред инсталираним телнет-ом, а други препоручују да га не користите.
Са појавом ССХ или Сецуре Схелл протокола, који је више од шифроване замене за телнет, употреба телнета за његову намену је одавно застарела. Али постоји алтернативна употреба телнета коју многи системски администратори и технолошки ентузијасти још увек користе, а то је провера повезаности удаљених ТЦП портова.
Можете једноставно проверити да ли удаљени ТЦП порт слуша и правилно реагује помоћу телнет команде. Исечак испод показује како можемо да проверимо да ли је гоогле.цом покренут и ради тако што ћемо проверити ХТТП/ХТТПС везу.
$ telnet google.com 80 Trying 142.250.183.206... Connected to google.com. Escape character is '^]'. ^] telnet> quit Connection closed. $ $ telnet google.com 443 Trying 142.250.183.206... Connected to google.com. Escape character is '^]'. ^] telnet> quit Connection closed. $
ТЦП порт који није отворен или доступан ће се понашати на следећи начин када се провери помоћу телнета:
$ telnet google.com 22 Trying 142.250.193.174... ^C $
Ово олакшава решавање једноставних проблема са мрежним повезивањем у комбинацији са командама пинг, трацероуте или трацепатх, нетстат итд.
Ако користите РХЕЛ 8 (или чак старије верзије РХЕЛ/ЦентОС), имате опцију да користите нц (или Нцат или Нетворк Цоннецтор), који подржава многе опције везане за дијагностику мреже. Разговараћемо о томе како да инсталирате и користите овај алат на РХЕЛ8 и сличним системима.
Преглед садржаја
Шта је нц?
нц (или Нцат) је популаран алат командне линије опште намене за читање, писање, преусмеравање и шифровање података преко мреже. Првобитно написан за нмап пројекат, сада је доступно више Нетцат имплементација. Ради са ТЦП и УДП-ом преко ИПв4 и ИПв6 и пружа неограничене потенцијалне случајеве употребе.
Испод су неке од главних карактеристика нц услужног програма:
- Способност повезивања мачака заједно
- Преусмеравање ТЦП, УДП и СЦТП портова на друге локације
- Шифрујте комуникацију уз ССЛ подршку
- Подршка за прокси преко СОЦК4/5 или ХТТП проксија (укључујући аутентификацију)
- Подржава више платформи, укључујући Виндовс, Линук и мацОС
Инсталирање нц
нц је доступан као део подразумеваних спремишта у РХЕЛ системима. Да бисте га инсталирали на РХЕЛ 7 систем, једноставно издајте доњу команду на терминалу:
$ sudo yum install -y nc
За РХЕЛ 8 систем, можете користити днф као:
$ sudo dnf install -y nc
Проверите ТЦП повезивање
Иако нц нуди мноштво функција које подржавају бројне случајеве употребе у различитим апликацијама, једна од уобичајених је током решавања проблема са мрежом уместо телнета.
нц може показати да ли можете доћи до ТЦП порта. Ево синтаксе:
$ nc -vz <IP/DNS> <Port>
На пример, ако желим да проверим да ли могу да дођем до вдзвдз преко хттп или хттпс. То могу да проверим користећи нц као што је приказано испод (порт 80 је за хттп, док је 443 за хттпс):
$ nc -vz techblog.co.rs.com 80 Ncat: Version 7.70 ( https://nmap.org/ncat ) Ncat: Connected to 104.26.11.88:80. Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds. $ $ nc -vz techblog.co.rs.com 443 Ncat: Version 7.70 ( https://nmap.org/ncat ) Ncat: Connected to 104.26.10.88:443. Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds. $
Слично томе, недоступни или блокирани порт ће приказати излаз попут (више адреса се проверава како вдзвдз ДНС указује на више ИП адреса):
$ nc -vz techblog.co.rs.com 22 Ncat: Version 7.70 ( https://nmap.org/ncat ) Ncat: Connection to 172.67.70.213 failed: Connection timed out. Ncat: Trying next address... Ncat: Connection to 104.26.11.88 failed: Connection timed out. Ncat: Trying next address... Ncat: Connection to 104.26.10.88 failed: Connection timed out. Ncat: Trying next address... Ncat: Connection to 2606:4700:20::681a:a58 failed: Network is unreachable. Ncat: Trying next address... Ncat: Connection to 2606:4700:20::681a:b58 failed: Network is unreachable. Ncat: Trying next address... Ncat: Network is unreachable. $ $ dig techblog.co.rs.com +short 104.26.10.88 172.67.70.213 104.26.11.88 $
Проверите УДП повезивање
телнет може да провери комуникацију само са удаљеним ТЦП портом, док нц вам омогућава да проверите ТЦП и УДП повезаност.
нц може једноставно послати УДП пакете уместо подразумеваних ТЦП користећи:
$ nc -vzu <IP/DNS> <Port>
Али УДП је протокол без сесије, за разлику од ТЦП-а, па као такав, не можете потврдити енд-то-енд УДП конекцију у свим могућим сценаријима само слањем УДП пакета на једном крају, осим ако процес слушања на удаљеном крају не пошаље неки одговор, нц неће моћи да процени да ли је његов послати пакет стигао до одредишта или не. Али нц нуди алтернативу за одређивање енд-то-енд УДП повезивања покретањем УДП слушаоца, под претпоставком да имате исправан приступ ЦЛИ на удаљеном серверу.
Дакле, под претпоставком да морате да проверите УДП повезаност између два Линук хоста за ДНС користећи нц, једноставан начин да то урадите би био да покренете слушање нц сервера на потребном порту:
$ sudo nc -ul <Port>
За ДНС, морамо да проверимо порт 53 који би направио горњу команду као:
$ nc -ul 53
На страни клијента, требало би да покренете други нц процес који шаље УДП пакете серверу:
$ nc -u <IP/DNS> <Port>
Што би нашу команду учинило:
$ nc -u <IP/DNS> 53
С обзиром да ништа не блокира УДП саобраћај за порт 53 између ове две машине, шта год да унесете и унесете на једној машини требало би да буде видљиво на другим хостовима као двосмерно ћаскање. Ако не, неки заштитни зид блокира везу између ова два система.
Модел сервера и клијента који користи нц ради беспрекорно за ове врсте једноставних провера повезивања између хостова. Као и горња УДП провера, нц такође може да слуша ТЦП пакете на датом порту:
$ sudo nc -l <Port>
На страни клијента, нормално можете слати ТЦП пакете да бисте проверили повезаност:
$ nc <IP/DNS> <Port>
Горенаведени сервер/клијент нц метод није потребан у случају ТЦП веза (за разлику од УДП-а) јер је то протокол оријентисан на везу и ради са потврдама. Сваки процес слушања који ради на ТЦП-у ће директно одговорити на нц ТЦП пакете.
Резиме
Овај чланак резимира како нц услужни програм стоји као директна замена за телнет у модерним Линук системима што се тиче провере повезаности портова и пружа много више моћи крајњем кориснику у дијагностици и решавању проблема са мрежом.
нц помоћи се може приступити помоћу команде нц -х:
$ nc -h Ncat 7.70 ( https://nmap.org/ncat ) Usage: ncat [options] [hostname] [port] Options taking a time assume seconds. Append 'ms' for milliseconds, 's' for seconds, 'm' for minutes, or 'h' for hours (e.g. 500ms). -4 Use IPv4 only -6 Use IPv6 only -U, --unixsock Use Unix domain sockets only -C, --crlf Use CRLF for EOL sequence -c, --sh-exec <command> Executes the given command via /bin/sh -e, --exec <command> Executes the given command --lua-exec <filename> Executes the given Lua script -g hop1[,hop2,...] Loose source routing hop points (8 max) -G <n> Loose source routing hop pointer (4, 8, 12, ...) -m, --max-conns <n> Maximum <n> simultaneous connections -h, --help Display this help screen -d, --delay <time> Wait between read/writes -o, --output <filename> Dump session data to a file -x, --hex-dump <filename> Dump session data as hex to a file -i, --idle-timeout <time> Idle read/write timeout -p, --source-port port Specify source port to use -s, --source addr Specify source address to use (doesn't affect -l) -l, --listen Bind and listen for incoming connections -k, --keep-open Accept multiple connections in listen mode -n, --nodns Do not resolve hostnames via DNS -t, --telnet Answer Telnet negotiations -u, --udp Use UDP instead of default TCP --sctp Use SCTP instead of default TCP -v, --verbose Set verbosity level (can be used several times) -w, --wait <time> Connect timeout -z Zero-I/O mode, report connection status only --append-output Append rather than clobber specified output files --send-only Only send data, ignoring received; quit on EOF --recv-only Only receive data, never send anything --allow Allow only given hosts to connect to Ncat --allowfile A file of hosts allowed to connect to Ncat --deny Deny given hosts from connecting to Ncat --denyfile A file of hosts denied from connecting to Ncat --broker Enable Ncat's connection brokering mode --chat Start a simple Ncat chat server --proxy <addr[:port]> Specify address of host to proxy through --proxy-type <type> Specify proxy type ("http" or "socks4" or "socks5") --proxy-auth <auth> Authenticate with HTTP or SOCKS proxy server --ssl Connect or listen with SSL --ssl-cert Specify SSL certificate file (PEM) for listening --ssl-key Specify SSL private key (PEM) for listening --ssl-verify Verify trust and domain name of certificates --ssl-trustfile PEM file containing trusted SSL certificates --ssl-ciphers Cipherlist containing SSL ciphers to use --ssl-alpn ALPN protocol list to use. --version Display Ncat's version information and exit See the ncat(1) manpage for full options, descriptions and usage examples $
За детаљније информације о команди нц, погледајте њену страницу приручника.
$ man nc