Er du usikker på hvordan du verifiserer forbindelsen mellom to nettverksnoder?
En vanlig oppgave for systemadministratorer er å sjekke nettverkstilkoblinger for å løse problemer. Dette kan være alt fra at en applikasjon ikke får kontakt med backend-tjenesten, at den ikke kan hente data fra en ekstern URL, eller bekreftelse på om en gitt port er åpen.
Uansett hva det måtte være, vil de følgende verktøyene og kommandoene være til hjelp. De er testet på CentOS, og det er ingen grunn til å tro at de ikke skal fungere på andre Linux-distribusjoner.
La oss dykke inn i det…
telnet
Dette er en velkjent kommando for å teste grunnleggende tilkobling mellom servere eller fra en server til en annen enhets IP-adresse. Syntaksen er enkel:
telnet $destinasjonsIP $PORT
For eksempel, hvis du ønsker å teste om du kan koble til port 8080 på IP-adressen 10.0.0.1, vil kommandoen se slik ut:
telnet 10.0.0.1 8080
Hvis tilkoblingen går bra, skal du få en melding om at tilkoblingen er opprettet:
Trying 10.0.0.1... Connected to 10.0.0.1. Escape character is '^]'.
Merk: Hvis kommandoen ikke finnes når du prøver å bruke telnet, må du installere telnet, som beskrevet her.
Telnet er ofte tilstrekkelig i de fleste scenarier. Hvis du imidlertid trenger et alternativ, er det flere her:
ncat eller nc
Ncat (også kjent som nc) er et kraftfullt nettverksverktøy med en rekke funksjoner, inkludert å etablere og akseptere tilkoblinger, kjøre kommandoer eksternt, skrive og lese data, og støtter både IPv4 og IPv6.
For en enkel test for å sjekke om en port er åpen, kan du bruke følgende kommando:
nc -vz $VERTSNAVN $PORT
La oss ta et eksempel der vi tester port 443 på tipsbilk.net.com:
[[email protected] ~]# nc -vz tipsbilk.net.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]ekflare-lab ~]#
Som nevnt kan du også bruke nc til å binde en tilkobling for å lytte på en bestemt port. Dette er nyttig når du ikke har aktive tjenester, men vil sjekke at tilkoblingen fungerer.
Slik starter du lytting på en port:
nc -l $PORTNUMMER
Dette binder porten til det angitte nummeret.
Hvis ncat ikke er installert, kan du installere det med yum install nc
på CentOS/RHEL-servere.
wget
wget
er en nyttig kommando for å laste ned og teste HTTP, HTTPS og FTP. Hvis du jobber som webutvikler eller ofte jobber med nettrelaterte problemer, vil wget være nyttig. Testing med wget er enkelt:
wget $URL
Her er et eksempel på testing av tools.tipsbilk.net.com:
[[email protected] ~]# wget tools.tipsbilk.net.com --2019-05-09 20:40:01-- http://tools.tipsbilk.net.com/ Resolving tools.tipsbilk.net.com (tools.tipsbilk.net.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ... Connecting to tools.tipsbilk.net.com (tools.tipsbilk.net.com)|104.25.134.107|:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://tools.tipsbilk.net.com/ [following] --2019-05-09 20:40:01-- https://tools.tipsbilk.net.com/ Connecting to tools.tipsbilk.net.com (tools.tipsbilk.net.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] ~]#
Hvis den viser «connected» betyr det at det ikke er noe problem med tilkoblingen.
Sjekk ut dette for å se noen av de ofte brukte wget-kommandoeksemplene.
curl
Curl er et allsidig verktøy.
Visste du at du kan bruke curl til å telnette til en port?
Vel, nå vet du det.
curl -v telnet://$IP:$PORT
Her er et eksempel i praksis:
[[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)
Og når det ikke finnes en lyttende port eller et brannmurproblem, vil du se «trying…»
[[email protected] ~]# curl -v telnet://chandan.io:4434 * About to connect() to chandan.io port 4434 (#0) * Trying 104.31.68.106...
Du kan også bruke curl for å laste ned data, da det støtter en rekke protokoller – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER, og mer.
nmap
Dette er et populært verktøy med hundrevis av funksjoner. Det blir ofte ansett som et sikkerhetsverktøy, og nmap lar deg teste en enkelt IP/port, eller et helt område.
For å teste en enkelt port:
nmap -p $PORT $IP
Et eksempel der port 443 testes på 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] ~]#
Sjekk «STATE»-kolonnen. Hvis du ser «open», betyr det at tilkoblingen fungerer. Hvis statusen er «filtered» betyr det at tilkoblingen ikke fungerer.
Ping
Dette er en velkjent kommando for å sjekke om en ekstern vert svarer på ICMP ECHO_REQUEST. Merk at dette kanskje ikke gir nøyaktige resultater hvis ICMP er blokkert av brannmuren til det eksterne nettverket. Forutsatt at det ikke er tilfelle, kan du pinge til et IPv4 eller IPv6-nettverksendepunkt slik:
ping $ipadresse ping $url
Et eksempel på et vellykket resultat med tipsbilk.net.com:
[email protected] ~ % ping tipsbilk.net.com PING tipsbilk.net.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
Et eksempel på et mislykket resultat med en intern IP:
[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
Hvis endepunktet støtter IPv6, kan du bruke kommandoen ping6
slik:
[email protected] ~ % ping6 tipsbilk.net.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
Hvis du trenger å gjøre en ekstern ping over internett, kan du bruke et online ping-verktøy.
Konklusjon
Telnet er i ferd med å fases ut i de nyeste Linux-versjonene, men heldigvis finnes det mange gode alternativer som nevnt over.
Hvis du er ny til Linux og ønsker å lære mer, sjekk ut dette Udemy-kurset.