Vil du vide, hvordan du kan kontrollere forbindelsen mellem to netværksendpunkter?
En af de almindelige opgaver for systemadministratorer er at kontrollere forbindelsen for at fejlfinde netværksproblemer. Det kan være alt som at programmet ikke kan oprette forbindelse til backend-tjenesten, ikke kan hente data fra ekstern URL, kontrollere, om flowet er åbnet osv.
Hvad det end måtte være, vil følgende hjælpe dig med følgende hjælpeprogram/kommandoer. De er testet på CentOS 7.x, og jeg ser ingen grund til ikke at arbejde på en anden Linux-distro.
Lad os udforske…
telnet
En af de meget anvendte kommandoer til at teste væsentlige tilslutningsmuligheder mellem servere, server til en anden netværksenheds IP. Syntaksen for kommandoen er nem.
telnet $destinationIP $PORT
Lad os sige, at du vil teste, om du kan oprette forbindelse til port 8080 på 10.0.0.0.1 IP-adresse; så vil kommandoen være.
telnet 10.0.0.1 8080
Hvis der ikke er noget problem med at oprette forbindelse, så bør du se meddelelsen forbundet.
Trying 10.0.0.1...Connected to 10.0.0.1.Escape character is '^]'.
Bemærk: Hvis du får kommandoen ikke fundet under udførelse af telnet, skal du installere telnet som jeg forklarede her.
I de fleste scenarier bør telnet hjælpe. Men hvis du har brug for en anden mulighed, så er her nogle telnet-alternativer.
ncat eller nc
Ncat (a.k.a. nc) er et kraftfuldt netværksværktøj med mange funktioner som at binde og acceptere en forbindelse, udføre kommandoer eksternt, skrive og læse data osv. Det fungerer både på IPv4 og IPv6.
For at udføre en simpel test for at kontrollere, om porten er åben eller ej, skal du udføre følgende.
nc -vz $HOSTNAME $PORT
Lad os tage et eksempel på at teste 443-porten på geekflare.com.
# nc -vz geekflare.com 443Ncat: 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.#
Som nævnt kan du også bruge nc
til at binde forbindelsen til at lytte på en bestemt port. Dette kan være praktisk, når du ikke har egentlige tjenester kørende, men ønsker at sikre, at forbindelsen eksisterer.
For at starte lytning på en port:
nc -l $PORTNUMBER
Det vil binde porten på et givet nummer.
Hvis ncat ikke er installeret, kan du få det gjort med yum install nc
på CentOS/RHEL-servere.
wget
wget er en nyttig kommando til at downloade/afprøve HTTP, HTTPS og FTP. Hvis du arbejder som webtekniker eller ofte beskæftiger dig med webrelaterede problemer, så er wget
din ven. Det er ligetil at teste ved hjælp af wget.
wget $URL
Her er et eksempel på test af tools.geekflare.com
# wget tools.geekflare.com--2019-05-09 20:40:01-- http://tools.geekflare.com/Resolving tools.geekflare.com (tools.geekflare.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...Connecting to tools.geekflare.com (tools.geekflare.com)|104.25.134.107|:80... connected.HTTP request sent, awaiting response... 301 Moved PermanentlyLocation: https://tools.geekflare.com/ --2019-05-09 20:40:01-- https://tools.geekflare.com/Connecting to tools.geekflare.com (tools.geekflare.com)|104.25.134.107|:443... connected.HTTP request sent, awaiting response... 200 OKLength: unspecified 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 #
Hvis den viser forbundet betyder det, at der ikke er noget forbindelsesproblem.
curl
En curl er et multifunktionelt værktøj.
Ved du, at du kan teletne til en port ved hjælp af curl?
Ja, nu ved du det.
curl -v telnet://$IP:$PORT
Det følgende er et fungerende eksempel.
# 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 der ikke er nogen lyttende port eller et firewallproblem, så vil du se at prøve…
# curl -v telnet://chandan.io:4434* About to connect() to chandan.io port 4434 (#0)* Trying 104.31.68.106...
Du kan også bruge curl til at downloade data. Det understøtter flere protokoller – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER osv.
nmap
Et populært værktøj med hundredvis af funktioner. Ofte betragtes dette som et sikkerhedsværktøj. nmap lader dig teste en enkelt IP/port eller i området.
Til test af en enkelt port
nmap -p $PORT $IP
Eksempel på test af port 443 på siterelic.com
# nmap -p 443 siterelic.comStarting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTCNmap 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:af32PORT STATE SERVICE443/tcp open httpsNmap done: 1 IP address (1 host up) scanned in 0.13 seconds#
Kig på kolonnen state. Hvis du ser åben betyder det, at forbindelsen er ok. Og hvis staten er filtreret betyder det, at forbindelsen ikke eksisterer.
Konklusion
Telnet er ved at blive udfaset i den seneste Linux-version. Tak til ovenstående telnet-alternativ.
Hvis du er ny til Linux og ønsker at lære det, så tjek dette Udemy-kursus.