首頁 >運維 >linux運維 >linux出現網路故障該如何排除

linux出現網路故障該如何排除

齐天大圣
齐天大圣原創
2020-11-14 10:42:142795瀏覽

如果公司網站打不開了,假如是因為網路問題,該如何去進行排查。又例如,遠端連線工具連不上伺服器或mysql資料庫連不上,會不會是因為網路問題。在日常工作或學習中,我們常常會遇到各種各樣的網路問題(因為電腦網路實在太複雜了)。現在我們來看看,如果linux伺服器出現了網路問題,該如何去排查。

ping

首先來看ping指令,這個指令是用來測試兩台主機之間能否進行正常通訊的工具。 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 
……

下面,是一個shell腳本,用來查看區域網路有哪些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

這個指令是用來查看兩台主機之間的各個節點的網路情況。如果當你造訪一個網站的時候,速度較慢,那麼可以用該指令來查看所有節點的網路情況。

# 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

。如果網站訪問不了,我們首先做的應該是ping伺服器的ip位址,如果能夠正常ping通,接下來應該ping網站域名,看dns是否正常解析。如果都沒有問題,網站還是訪問不了,那就需要去看看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埠是開放的。如果是第二種的話,一直在trying,則表示此連接埠沒有對自己開放。

以上是linux出現網路故障該如何排除的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn