Undrar du hur man kontrollerar anslutningen mellan två nätverksändpunkter?
En av de vanliga uppgifterna för sysadmin är att kontrollera anslutningen för att felsöka nätverksproblem. Det kan vara något som att applikationen inte kan ansluta till backend-tjänsten, inte kan hämta data från extern URL, verifiera om flödet är öppet, etc.
Vad det än kan vara så skulle följande verktyg/kommandon hjälpa dig. De är testade på CentOS, och jag ser ingen anledning att inte arbeta på en annan Linux-distro.
Låt oss utforska…
Innehållsförteckning
telnet
Ett av de mycket använda kommandona för att testa väsentlig anslutning mellan servrar, server till en annan nätverksenhets IP. Syntaxen för kommandot är enkel.
telnet $destinationIP $PORT
Låt oss säga att du vill testa om du kan ansluta till port 8080 på 10.0.0.1 IP-adress; då skulle kommandot vara.
telnet 10.0.0.1 8080
Om det inte finns några problem med att ansluta, bör du se det anslutna meddelandet.
Trying 10.0.0.1... Connected to 10.0.0.1. Escape character is '^]'.
Obs: om du får ett kommando som inte hittas när du kör telnet måste du installera telnet som jag förklarade här.
I de flesta scenarierna borde telnet hjälpa. Men om du behöver något annat alternativ så är här några telnet-alternativ.
ncat eller nc
Ncat (alias nc) är ett kraftfullt nätverksverktyg med många funktioner som att binda och acceptera en anslutning, utföra kommandon på distans, skriva och läsa data, etc. Det fungerar på både IPv4 och IPv6.
För att göra ett enkelt test för att kontrollera om porten är öppen eller inte, kommer du att utföra följande.
nc -vz $HOSTNAME $PORT
Låt oss ta ett exempel på att testa 443-porten på adminvista.com.com.
[[email protected] ~]# nc -vz adminvista.com.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] ~]#
Som nämnts kan du också använda nc för att binda anslutningen för att lyssna på en viss port. Detta kan vara praktiskt när du inte har faktiska tjänster igång men vill säkerställa att anslutning finns.
Så här börjar du lyssna på en port:
nc -l $PORTNUMBER
Det kommer att binda porten till ett givet nummer.
Om ncat inte är installerat kan du få det gjort med yum install nc på CentOS/RHEL-servrar.
wget
wget är ett användbart kommando för att ladda ner/testa HTTP, HTTPS och FTP. Om du arbetar som webbingenjör eller ofta hanterar webbrelaterade problem så är wget din vän. Att testa med wget är enkelt.
wget $URL
Här är ett exempel på att testa tools.adminvista.com.com
[[email protected] ~]# wget tools.adminvista.com.com --2019-05-09 20:40:01-- http://tools.adminvista.com.com/ Resolving tools.adminvista.com.com (tools.adminvista.com.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ... Connecting to tools.adminvista.com.com (tools.adminvista.com.com)|104.25.134.107|:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://tools.adminvista.com.com/ [following] --2019-05-09 20:40:01-- https://tools.adminvista.com.com/ Connecting to tools.adminvista.com.com (tools.adminvista.com.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] ~]#
Om den visar ansluten betyder det att det inte finns något anslutningsproblem.
Kolla in det här för att se några av de ofta använda exemplen på wget-kommandon.
ringla
En curl är ett mångsidigt verktyg.
Vet du att du kan telnet till en port med curl?
Nåväl, nu vet du det.
curl -v telnet://$IP:$PORT
Följande är ett fungerande exempel.
[[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)
Och när det inte finns något problem med lyssningsporten eller brandväggen, kommer du att se att du försöker…
[[email protected] ~]# curl -v telnet://chandan.io:4434 * About to connect() to chandan.io port 4434 (#0) * Trying 104.31.68.106...
Du kan också använda curl för att ladda ner data. Den stöder flera protokoll – HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER, etc.
nmap
Ett populärt verktyg med hundratals funktioner. Ofta betraktas detta som ett säkerhetsverktyg, nmap låter dig testa en enda IP/port eller inom intervallet.
För att testa en enda port
nmap -p $PORT $IP
Ett exempel på att testa 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] ~]#
Titta på tillståndskolumnen. Om du ser öppen betyder att anslutningen är ok. Och om tillståndet är filtrerat betyder det att anslutning inte existerar.
Ping
Ett av de ofta använda kommandona är att kontrollera om en fjärrvärd svarar på ICMP ECHO_REQUEST eller inte. Tänk på att detta kanske inte ger dig korrekta resultat när ICMP är blockerad vid fjärrnätverkets brandvägg. Förutsatt att så inte är fallet kan du pinga till IPv4- eller IPv4-nätverksändpunkten enligt nedan.
ping $ipaddress ping $url
Till exempel framgångsresultat av adminvista.com.com
[email protected] ~ % ping adminvista.com.com PING adminvista.com.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
Till exempel felresultat 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
Om slutpunkten stöder IPv6 kan du använda kommandot ping6 enligt nedan.
[email protected] ~ % ping6 adminvista.com.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
Om du behöver göra fjärrpinga över Internet kan du använda onlinepingverktyget.
Slutsats
telnet fasas ut i den senaste Linuxversionen. Tack vare ovanstående telnet-alternativ.
Om du är ny på Linux och vill lära dig, kolla in det här Udemy kurs.