ホームページ  >  記事  >  運用・保守  >  Linux でのネットワーク障害のトラブルシューティング方法

Linux でのネットワーク障害のトラブルシューティング方法

齐天大圣
齐天大圣オリジナル
2020-11-14 10:42:142741ブラウズ

ネットワークの問題が原因で会社の Web サイトを開けない場合、どのようにトラブルシューティングを行うべきですか。別の例として、リモート接続ツールがサーバーに接続できない場合、または mysql データベースに接続できない場合は、ネットワークの問題が原因である可能性があります。私たちは日々の仕事や勉強の中で、さまざまなネットワークの問題に遭遇することがよくあります(コンピュータネットワークが複雑すぎるため)。次に、Linux サーバーでネットワークの問題が発生した場合のトラブルシューティング方法を見てみましょう。

ping

まず、ping コマンドについて見てみましょう。このコマンドは、2 つのホスト間で正常に通信できるかどうかをテストするために使用されるツールです。 ping のオブジェクトは、IP アドレスまたはドメイン名のいずれかになります。このコマンドは、Linux および Windows の cmd モードで使用できます。使用方法は同じです。

# 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 
……

以下は、LAN 上のどの IP が通信できるかを確認するために使用されるシェル スクリプトです。

#!/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

このコマンド2 つのホスト間の各ノードのネットワーク ステータスを確認するために使用されます。 Web サイトにアクセスするときに速度が遅い場合は、このコマンドを使用してすべてのノードのネットワーク状態を表示できます。

# 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

このコマンドは、ドメイン名を通じて IP アドレスを逆にチェックでき、使い方は非常に簡単です。

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

。 Web サイトにアクセスできない場合は、まずサーバーの IP アドレスに ping を実行し、正常に ping できる場合は Web サイトのドメイン名に ping を実行して、DNS が正常に解決されるかどうかを確認します。問題がないにもかかわらず Web サイトにアクセスできない場合は、ポート 80 が外部に対して開いているかどうかを確認する必要があります。 netstat コマンドは、ホスト ポートのリスニング ステータスを確認するために使用されます。

# 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

このコマンドは、サーバーの指定されたポートがそれ自体に対して開いているかどうかをテストするために使用できます。

# 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...  <=== 一直是这样的状态则

上記の最初の状況の場合、8.210.110.139 のポート 22 が開いていることを意味します。 2 番目のタイプで試行が続く場合は、このポートがそれ自体に対して開かれていないことを意味します。

以上がLinux でのネットワーク障害のトラブルシューティング方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。