6 Linux-verktøy for å teste nettverkstilkobling

Lurer du på hvordan du sjekker tilkoblingen mellom to nettverksendepunkter?

En av de vanlige oppgavene for sysadmin er å sjekke tilkoblingen for å feilsøke nettverksproblemer. Det kan være noe som at applikasjonen ikke kan koble til backend-tjenesten, ikke kan hente data fra ekstern URL, bekrefte om flyten er åpnet, etc.

Uansett hva det måtte være, vil følgende verktøy/kommandoer hjelpe deg. De er testet på CentOS, og jeg ser ingen grunn til ikke å jobbe på en annen Linux-distro.

La oss utforske…

telnet

En av de mye brukte kommandoene for å teste viktig tilkobling mellom servere, server til en annen nettverksenhets IP. Syntaksen for kommandoen er enkel.

telnet $destinationIP $PORT

La oss si at du vil teste om du kan koble til port 8080 på 10.0.0.1 IP-adresse; da ville kommandoen vært.

telnet 10.0.0.1 8080

Hvis det ikke er noe problem med å koble til, bør du se den tilkoblede meldingen.

Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.

Merk: Hvis du får en kommando som ikke ble funnet mens du kjører telnet, må du installere telnet som jeg forklarte her.

I de fleste scenariene bør telnet hjelpe. Men hvis du trenger et annet alternativ, er her noen telnet-alternativer.

ncat eller nc

Ncat (aka nc) er et kraftig nettverksverktøy med mange funksjoner som å binde og godta en tilkobling, utføre kommandoer eksternt, skrive og lese data osv. Det fungerer på IPv4 og IPv6, begge deler.

  Slik bruker du vmstat-kommandoen på Linux

For å gjøre en enkel test for å sjekke om porten er åpnet eller ikke, vil du utføre følgende.

nc -vz $HOSTNAME $PORT

La oss ta et eksempel på å teste 443-porten 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 forbindelsen til å lytte på en bestemt port. Dette kan være nyttig når du ikke har faktiske tjenester i gang, men ønsker å sikre at tilkoblingen eksisterer.

Slik begynner du å lytte på en port:

nc -l $PORTNUMBER

Det vil binde porten til et gitt nummer.

Hvis ncat ikke er installert, kan du få det gjort med yum install nc på CentOS/RHEL-servere.

wget

wget er en nyttig kommando for å laste ned/teste HTTP, HTTPS og FTP. Hvis du jobber som webingeniør eller ofte arbeider med nettrelaterte problemer, er wget din venn. Testing med wget er enkel.

wget $URL

Her er et eksempel på testing 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 tilkoblet, betyr det at det ikke er noe tilkoblingsproblem.

  Hvordan sette opp Viber på Linux

Sjekk ut dette for å se noen av de ofte brukte wget-kommandoeksemplene.

krølle

En krøll er et flerbruksverktøy.

Vet du at du kan telnet til en port ved å bruke curl?

Vel, nå vet du det.

curl -v telnet://$IP:$PORT

Følgende er et fungerende eksempel.

[[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 er noen lytteport eller brannmurproblem, vil du se at du prøver …

[[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 dataene. Den støtter flere protokoller – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER, etc.

nmap

Et populært verktøy med hundrevis av funksjoner. Ofte betraktes dette som et sikkerhetsverktøy, nmap lar deg teste en enkelt IP/port eller i området.

For å teste en enkelt port

nmap -p $PORT $IP

Et eksempel på testing av port 443 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] ~]#

Se på tilstandsspalten. Hvis du ser åpen betyr at tilkoblingen er ok. Og hvis tilstanden er filtrert betyr det at tilkobling ikke eksisterer.

  Hvordan installere Sqlite Browser på Linux

Ping

En av de mye brukte kommandoene er å sjekke om en ekstern vert svarer på ICMP ECHO_REQUEST eller ikke. Husk at dette kanskje ikke gir deg nøyaktige resultater når ICMP er blokkert ved det eksterne nettverkets brannmur. Forutsatt at det ikke er tilfelle, kan du pinge til IPv4- eller IPv4-nettverksendepunkt som nedenfor.

ping $ipaddress
ping $url

For eksempel suksessresultatet av 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

For eksempel feilresultat av 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 ping6-kommandoen som nedenfor.

[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 ekstern ping over Internett, kan du bruke online ping-verktøyet.

Konklusjon

telnet fases ut i den nyeste Linux-versjonen. Takket være telnet-alternativet ovenfor.

Hvis du er ny på Linux og ønsker å lære, sjekk ut dette Udemy kurs.