Linux 網路故障排查

2021-07-28 10:22:09 字數 4520 閱讀 4879



要能連網,網路裝置首先必須保證處於工作狀態,如果網絡卡沒有開啟,則肯定不能上網的,假設我們使用eth0網絡卡上網,首先檢查該網絡卡是否處於up狀態,使用ip命令:

#sudo ip link ls eth0

輸出:2: eth0:

mtu 1500 qdisc pfifo_fast state up mode default group default qlen 1000

link/ether 08:00:27:c9:b4:f2 brd ff:ff:ff:ff:ff:ff

state必須處於up狀態,若處於down狀態,嘗試手動啟動:

#sudo ip link

set eth0 up

或者#sudo ifconfig eth0 up

手動啟動後,需要再次執行sudo ip link ls,如果仍然處於down狀態,則說明是網路硬體問題,比如網線沒有連線好,或者鏈路不通等。如果大家都能上網,極有可能是由於網線接觸不良導致的,拔下網線重新插好,重複以上工作試試。

如果網絡卡已經處於

#sudo ifconfig eth0 或者

sudo ip addr ls eth0

2: eth0:

mtu 1500 qdisc pfifo_fast state up group default qlen 1000

link/ether 08:00:27:c9:b4:f2 brd ff:ff:ff:ff:ff:ff

inet

192.168.1.105/24 brd 192.168.1.255 scope global eth0

valid_lft forever preferred_lft forever

inet6 fe80::a00:27ff:fec9:b4f2/64 scope link

valid_lft forever preferred_lft forever

以上說明網絡卡已經獲取了ip位址,位址為192.168.1.105/24,如果輸出為:

3: eth0:

mtu 1500 qdisc pfifo_fast state up group default qlen 1000

link/ether 08:00:27:9a:d5:d1 brd ff:ff:ff:ff:ff:ff

inet6 fe80::a00:27ff:fe9a:d5d1/64 scope link

valid_lft forever preferred_lft forever

則說明該網絡卡沒有正確獲取ip。

如果沒有或者ip,就需要配置ip。如果是通過dhcp服務自動獲取ip的,則可手動執行dhclint獲取ip:

#sudo dhclient -4 -v eth0

如果無法獲取ip,且網絡卡處於up狀態,則可能是鏈路問題,無法連線遠端dhcp伺服器。如果知道dhcp伺服器位址,可以ping一下試試,比如dhcp伺服器位址為192.168.1.1:

#ping 192.168.1.1

如果icmp被禁了,使用nc命令或者telnet更適合,且可以探測埠是否開放,雖然dhcp埠是67,不過通常dhcp和dns伺服器是同一臺機器,因此順便測試53埠:

#nc -zv 192.168.1.1 67

#nc -zv 192.168.1.1 53

# telnet 192.168.1.1 67

# telnet 192.168.1.1 53

如果伺服器的ip不是通過dhcp獲取的動態ip,而是靜態ip,則需要手動設定ip位址,使用ifconfig配置:

#sudo ifconfig eth0 192.168.1.105 netmask 255.255.255.0

#route add default gw 192.168.1.1 dev eth0

或者#sudo ip addr add 192.168.1.105/24 dev eth0

#sudo route add default gw 192.168.1.1 dev eth0

到此,需要重新執行ip addr ls或者ifconfig命令再次檢查是否ip配置正確。

如果網絡卡的ip已經配置正確(包括子網掩碼),仍然不能上網,則需要檢查能否ping通閘道器位址,通常閘道器位址為網路位址的第乙個ip或者最後乙個ip,比如若ip為192.168.1.101/24,則閘道器通常為192.168.1.1或者192.168.1.254,如果不是二者,則需要詢問網管了。假設閘道器位址為192.168.1.1,ping一下是否通:

#ping 192.168.1.1

如果ping不通,則可能是交換機問題。如果閘道器連通性良好,則檢視路由表是否正確,以下三個命令都可檢視路由表,隨便使用乙個:

#sudo route -n

#sudo netstat -rn

#sudo ip route ls

# sudo route -n

kernel ip routing table

destination     gateway         genmask         flags metric ref    use iface

0.0.0.0         192.168.1.1     0.0.0.0         ug    0      0        0 eth0

192.168.1.0     0.0.0.0         255.255.255.0   u     0      0        0 eth0

其中genmask為0.0.0.0的是預設路由,檢查gateway是否正確。不正確的話需要重新修改預設閘道器:

#sudo route del default eth0 # 先刪除錯誤的預設閘道器

#sudo route add default gw 172.16.0.1 dev eth1 # 填寫正確的閘道器

如果不能連通外網,可以使用tracepath 或者 mtr命令檢視到底是哪一跳不通:

其中host列是所有經過的跳(路由),可以檢視哪個跳不通或者丟包嚴重。

如果能夠ping通外網,但仍然不能使用瀏覽器上網,那八成是網域名稱解析不了了,即dns伺服器配置有錯誤。檢查下:

#nslookup server

此時會輸出dns伺服器位址,檢查是否正確,若不正確或者不存在,可以臨時設定,修改/etc/resolve.conf檔案,設定可用的dns伺服器,如果不知道本區的dns伺服器,可以設定通用的`8.8.8.8,可以同時設定多個dns伺服器:

# /etc/resolve.conf# dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)

# do not edit this file by hand -- your changes will be overwritten

nameserver

219.239.26.42

nameserver

124.207.160.106

nameserver

8.8.8.8

search

dhcp

host

設定完成後,試一下能不能解析網域名稱:

如果能夠解析網域名稱,則應該就可以正常上網了。

我們以上都是通過命令列的方式配置網路,伺服器重啟後,需要重新配置,如果需要儲存狀態,需要寫到配置檔案中去,以ubuntu為例,修改/etc/network/inte***ces檔案,如果是dhcp 動態ip,配置如下:

# the primary network inte***ce

auto

eth0

# 設定網絡卡開機啟動

iface

eth0

inet

dhcp

# 設定網絡卡動態獲取ip

如果是靜態ip,則配置如下:

auto

eth0

iface

eth0

inet

static

# 設為靜態獲取

ipaddress

192.168.1.101

# 配置ip位址

netmask

255.255.255.0

# 設定子網掩碼

gateway

192.168.1.1

# 設定閘道器

dns-nameservers

8.8.8.8

114.114.114.114

# 設定dns伺服器,多個位址空格隔開

linux網路故障排查

當linux作業系統產生網路故障時,應先從硬體到軟體 從自身到全域性。1,檢查網線 網絡卡。到機房裡檢查網線兩端是否都亮燈,普通伺服器的話應該是綠燈常亮為正常,交換機綠燈閃爍表示正在傳輸資料。也可以通過命令ethtool ethx來檢視某一網絡卡的鏈路是否物理連通。其中,speed是當前網絡卡的速度...

Linux 網路故障排查

1.第一步是要確認網絡卡本身是否工作正常?利用ping工具可以確認這點。輸入ping 127.0.0.1 然後看是否正常ping 通?這裡的127.0.0.1 被稱作主機的回環介面,是tcp ip協議棧正常工作的前提。如果ping 不通,一般可以證實本機tcp ip協議棧有問題,自然就無法連線到網路...

網路故障排查

wireshark抓包工具是一款開源的網路協議分析軟體。工能非常強大,對tcp udp進行抓包分析,是最適合的。如何確診是ip衝突 換乙個ip試試,換了ip之後,再ping原來的那個ip,如果有應答,就能確診是ip衝突。換了ip後,ping原來那個ip無應答,並不能確認不是ip衝突 因為arp表可能...