Zanima vas kako da proverite da li postoji veza između dve tačke u mreži?
Provera konekcije je čest zadatak sistemskih administratora prilikom rešavanja problema sa mrežom. To može biti bilo šta, od situacije kada aplikacija ne može da se poveže sa pozadinskim servisom, ne može da preuzme podatke sa spoljne URL adrese, ili kada treba proveriti da li je neki port otvoren, itd.
Bez obzira na razlog, sledeći alati i komande će vam biti od pomoći. Testirani su na CentOS-u i nema razloga da ne rade na drugim Linux distribucijama.
Hajde da istražimo…
Telnet
Jedna od najčešće korišćenih komandi za proveru osnovne povezanosti između servera, ili servera sa IP adresom drugog mrežnog uređaja. Sintaksa ove komande je jednostavna.
telnet $odredišnaIP $PORT
Recimo da želite da proverite da li možete da se povežete na port 8080 na IP adresi 10.0.0.1; onda bi komanda glasila:
telnet 10.0.0.1 8080
Ukoliko nema problema sa konekcijom, trebalo bi da vidite poruku o uspostavljenoj vezi.
Trying 10.0.0.1... Connected to 10.0.0.1. Escape character is '^]'.
Napomena: Ako vam se pri izvršavanju telnet komande pojavi poruka da komanda nije pronađena, onda morate instalirati telnet, kao što sam objasnio ovde.
U većini slučajeva, telnet bi trebalo da vam pomogne. Međutim, ako vam je potrebna druga opcija, evo nekoliko telnet alternativa.
Ncat ili nc
Ncat (ili nc) je moćan mrežni alat sa mnogim funkcijama, kao što su uspostavljanje i prihvatanje veze, daljinsko izvršavanje komandi, pisanje i čitanje podataka, itd. Radi na IPv4 i IPv6 protokolima.
Za jednostavan test, kako biste proverili da li je port otvoren ili ne, izvršićete sledeće:
nc -vz $HOSTIME $PORT
Uzmimo primer testiranja porta 443 na adresi vdzvdz.com.
[[email protected] ~]# nc -vz techblog.co.rs.com 443 Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Connected to 104.25.133.107:443. Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds. [[email protected] ~]#
Kao što je pomenuto, možete koristiti nc da uspostavite vezu za slušanje na određenom portu. Ovo može biti korisno kada nemate pokrenute stvarne servise, ali želite da osigurate da postoji veza.
Da biste počeli da slušate na portu:
nc -l $BROJPORTA
Ovo će vezati port za dati broj.
Ako ncat nije instaliran, možete ga instalirati pomoću komande yum install nc na CentOS/RHEL serverima.
Wget
wget je korisna komanda za preuzimanje/testiranje HTTP, HTTPS i FTP protokola. Ako radite kao web inženjer ili se često bavite problemima vezanim za web, wget je vaš prijatelj. Testiranje pomoću wget-a je jednostavno.
wget $URL
Evo primera testiranja tools.vdzvdz.com
[[email protected] ~]# wget tools.techblog.co.rs.com --2019-05-09 20:40:01-- http://tools.techblog.co.rs.com/ Resolving tools.techblog.co.rs.com (tools.techblog.co.rs.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ... Connecting to tools.techblog.co.rs.com (tools.techblog.co.rs.com)|104.25.134.107|:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://tools.techblog.co.rs.com/ [following] --2019-05-09 20:40:01-- https://tools.techblog.co.rs.com/ Connecting to tools.techblog.co.rs.com (tools.techblog.co.rs.com)|104.25.134.107|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: 'index.html.2' [ <=> ] 15,139 --.-K/s in 0.001s 2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' saved [15139] [[email protected] ~]#
Ako vidite da je veza uspostavljena, to znači da nema problema sa konekcijom.
Pogledajte ovo kako biste videli neke od često korišćenih primera wget komandi.
Curl
Curl je višenamenski alat.
Da li ste znali da možete da „telnetujete“ na port koristeći curl?
Pa, sada znate.
curl -v telnet://$IP:$PORT
Sledi radni primer.
[[email protected] ~]# curl -v telnet://chandan.io:443 * About to connect() to chandan.io port 443 (#0) * Trying 104.31.68.106... * Connected to chandan.io (104.31.68.106) port 443 (#0)
A kada nema problema sa portom za slušanje ili sa zaštitnim zidom, videćete da se prikazuje „trying…“
[[email protected] ~]# curl -v telnet://chandan.io:4434 * About to connect() to chandan.io port 4434 (#0) * Trying 104.31.68.106...
Takođe, možete koristiti curl za preuzimanje podataka. Podržava više protokola – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER, itd.
Nmap
Popularan alat sa stotinama funkcija. Često se smatra sigurnosnim alatom, nmap vam omogućava da testirate pojedinačne IP adrese/portove ili opsege.
Za testiranje jednog porta:
nmap -p $PORT $IP
Primer testiranja porta 443 na siterelic.com:
[[email protected] ~]# nmap -p 443 siterelic.com Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTC Nmap scan report for siterelic.com (104.27.174.50) Host is up (0.0079s latency). Other addresses for siterelic.com (not scanned): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32 PORT STATE SERVICE 443/tcp open https Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds [[email protected] ~]#
Pogledajte kolonu „STATE“. Ako vidite da piše „open“ to znači da je veza u redu. A ako je stanje „filtered“, to znači da veza ne postoji.
Ping
Jedna od najčešće korišćenih komandi je da se proveri da li udaljeni host odgovara na ICMP ECHO_REQUEST ili ne. Imajte na umu da ovo možda neće dati tačne rezultate kada je ICMP blokiran na zaštitnom zidu udaljene mreže. Pod pretpostavkom da to nije slučaj, možete pingovati IPv4 ili IPv6 mrežnu tačku kao u nastavku.
ping $ipaddress ping $url
Na primer, uspešan rezultat za vdzvdz.com:
[email protected] ~ % ping techblog.co.rs.com PING techblog.co.rs.com (104.27.119.115): 56 data bytes 64 bytes from 104.27.119.115: icmp_seq=0 ttl=53 time=7.944 ms 64 bytes from 104.27.119.115: icmp_seq=1 ttl=53 time=8.870 ms
Na primer, neuspešan rezultat za internu IP adresu.
[email protected] ~ % ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1
Ako krajnja tačka podržava IPv6, možete koristiti komandu ping6 kao u nastavku.
[email protected] ~ % ping6 techblog.co.rs.com PING6(56=40+8+8 bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d --> 2606:4700:20::681b:7673 16 bytes from 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms 16 bytes from 2606:4700:20::681b:7673, icmp_seq=1 hlim=250 time=8.738 ms
Ako treba da izvršite daljinski ping preko interneta, možete koristiti neki od alata za ping na mreži.
Zaključak
Telnet se postepeno ukida u novijim verzijama Linuxa. Zahvaljujući gore navedenim alternativama, telnet nije više neophodan.
Ako ste novi u Linuxu i želite da naučite više, pogledajte ovaj Udemy kurs.