linux中出現(xiàn)網(wǎng)絡(luò)故障該如何排除

如果公司網(wǎng)站打不開了,假如是因?yàn)榫W(wǎng)絡(luò)問題,你該如何去進(jìn)行排查。又比如,遠(yuǎn)程連接工具連不上服務(wù)器或mysql數(shù)據(jù)庫連不上,會(huì)不會(huì)是因?yàn)榫W(wǎng)絡(luò)問題。日常工作或?qū)W習(xí)中,我們經(jīng)常會(huì)遇到各種各樣的網(wǎng)絡(luò)問題(因?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)實(shí)在太復(fù)雜了)。現(xiàn)在我們來看看,如果linux服務(wù)器出現(xiàn)了網(wǎng)絡(luò)問題,該如何去排查。

ping

首先來看ping命令,這個(gè)命令是用來測試兩臺主機(jī)之間能否進(jìn)行正常通訊的工具。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? ……

下面,是一個(gè)shell腳本,用來查看局域網(wǎng)有哪些ip可以進(jìn)行通訊

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

該命令是用來查看兩臺主機(jī)之間的各個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)情況。如果當(dāng)你訪問一個(gè)網(wǎng)站的時(shí)候,速度較慢,那么可以用該命令來查看所有節(jié)點(diǎn)的網(wǎng)絡(luò)情況。

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

。如果網(wǎng)站訪問不了,我們首先做的應(yīng)該是ping服務(wù)器的ip地址,如果能夠正常ping通,接下來應(yīng)該ping網(wǎng)站域名,看dns是否正常解析。如果都沒有問題,網(wǎng)站還是訪問不了,那就需要去看看80端口是否對外開放了。netstat命令就是用來查看主機(jī)端口監(jiān)聽情況。

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

該命令可以用來測試服務(wù)器的指定端口是否對自己開放。

#?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...??<p>如果是上述的第一種情況,則說明8.210.110.139的22端口是開放的。如果是第二種的話,一直在trying,則說明此端口沒有對自己開放。</p>

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊5 分享