Maison  >  Article  >  Opération et maintenance  >  Comment dépanner les pannes de réseau sous Linux

Comment dépanner les pannes de réseau sous Linux

齐天大圣
齐天大圣original
2020-11-14 10:42:142680parcourir

Si le site Web de l'entreprise ne peut pas être ouvert, si cela est dû à des problèmes de réseau, comment devez-vous le résoudre. Pour un autre exemple, si l'outil de connexion à distance ne parvient pas à se connecter au serveur ou si la base de données MySQL ne peut pas être connectée, cela peut être dû à des problèmes de réseau. Dans le travail ou les études quotidiens, nous rencontrons souvent divers problèmes de réseau (car les réseaux informatiques sont trop complexes). Voyons maintenant comment dépanner s'il y a un problème de réseau sur le serveur Linux.

ping

Regardons d'abord la commande ping. Cette commande est un outil utilisé pour tester si une communication normale peut avoir lieu entre deux hôtes. L'objet du ping peut être soit une adresse IP, soit un nom de domaine. Cette commande peut être utilisée en mode cmd de Linux et Windows. Les méthodes d'utilisation sont les mêmes.

# ping -c 4 8.210.247.5
PING 8.210.247.5 (8.210.247.5) 56(84) bytes of data.
64 bytes from 8.210.247.5: icmp_seq=1 ttl=64 time=1.54 ms
64 bytes from 8.210.247.5: icmp_seq=2 ttl=64 time=1.48 ms
64 bytes from 8.210.247.5: icmp_seq=3 ttl=64 time=1.46 ms
64 bytes from 8.210.247.5: icmp_seq=4 ttl=64 time=1.48 ms
--- 8.210.247.5 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 1.460/1.494/1.548/0.042 ms
 
# ping -c 1 baidu.com 
……

Ce qui suit est un script shell utilisé pour vérifier quelles adresses IP sur le réseau local peuvent communiquer

#!/bin/bash
net='192.168.2.'
seqs=`seq 1 254`

for seq in $seqs
do
    ip=$net$seq
    /usr/bin/ping -c 1 -W 1 $ip >/dev/null 2>&1
    
    if [ "$?" == "0" ];then
        echo "$ip is UP"
    fi
done

traceroute

Ceci La commande est utilisée pour vérifier l’état du réseau de chaque nœud entre deux hôtes. Si la vitesse est lente lorsque vous accédez à un site Web, vous pouvez utiliser cette commande pour afficher l'état du réseau de tous les nœuds.

# traceroute -n google.com
traceroute to google.com (172.217.163.238), 30 hops max, 60 byte packets
 1  * * *
 2  11.109.220.61  1.444 ms  1.577 ms 11.109.216.189  1.500 ms
 3  11.109.220.190  5.512 ms * 11.109.220.174  5.382 ms
 4  11.131.180.222  1.660 ms 11.131.180.218  1.519 ms 11.131.180.250  1.365 ms
 ……

nslookup

Cette commande peut vérifier inversement l'adresse IP via le nom de domaine, et elle est très simple à utiliser.

nslookup 5iqm.com
Server:  100.100.2.136
Address: 100.100.2.136#53

Non-authoritative answer:
Name: 5iqm.com
Address: 121.196.12.64

netstat

. Si le site Web n'est pas accessible, la première chose que nous devons faire est de faire une requête ping sur l'adresse IP du serveur. Si elle peut être pingée normalement, nous devons alors cingler le nom de domaine du site Web pour voir si le DNS est résolu normalement. S'il n'y a aucun problème et que le site Web n'est toujours pas accessible, vous devez alors vérifier si le port 80 est ouvert au monde extérieur. La commande netstat est utilisée pour vérifier l'état d'écoute du port hôte.

# netstat -tlunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      30721/nginx: master 
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      1275/pure-ftpd (SER 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1167/sshd           
tcp        0      0 0.0.0.0:888             0.0.0.0:*               LISTEN      30721/nginx: master 
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      2068/python

telnet

Cette commande peut être utilisée pour tester si le port spécifié du serveur est ouvert sur lui-même.

# telnet 8.210.110.139 22
Trying 8.210.110.139...
Connected to 8.210.110.139.   
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4


# telnet 8.210.110.139 3306
Trying 8.210.110.139...  <=== 一直是这样的状态则

Si c'est la première situation ci-dessus, cela signifie que le port 22 du 8.210.110.139 est ouvert. S'il s'agit du deuxième type et qu'il continue d'essayer, cela signifie que ce port n'est pas ouvert à lui-même.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn