Linux系統 SSH網絡故障 解析

最近我在連接公司服務器的時候 發現一些網絡故障, 以下是我的故障排查整理
大家先了解一下《Linux網絡結構特點》

《Linux網絡結構特點》

Linux網絡結構特點

由於Linux是在Internet上發展成熟的操作系統,因此,它具有與生俱來的網絡功能,特別在Internet和Intranet的功能上有明顯優勢。但是由於Linux的桌面應用和Windows的差距,除了一些Linux專門實驗室之外大多數企業應用Linux系統時:往往是Linux和Windows或Unix等操作系統共存形成異構網絡。掌握Linux TCP/IP的網絡模型,掌握OSI網絡模型、TCP/IP模型及相關服務對應的層次對於Linux網絡故障分析與排除是非常重要的。據統計,Linux網絡故障有35%在物理層、25%在數據鏈路層、10%在網絡層、10%在傳輸層、10%在對話、7%在表示層、3%在應用層。由此可以看出,網絡故障通常發生在網絡七層模型的下三層,即物理層、鏈路層和網絡層。對應於實際網絡也就是使用的網絡線纜、連接模塊、網卡、交換機、路由器等設備故障。這些故障可能因爲硬件的質量或性能、磨損老化、人爲誤操作、不正確的網絡協議設置、管理問題、Linux軟件的BUG、系統受到黑客攻擊和Linux病毒等原因造成。OSI的層次結構爲網管員分析和排查故障提供了非常好的組織方式。由於各層相對獨立,按層排查能夠有效地發現和隔離故障,因而一般使用逐層分析和排查的方法。
在這裏插入圖片描述

現在咱們直接步入主題

Linux系統 ssh網絡故障

一、IP能ping通且網絡沒問題情況下如何檢查故障

    1.檢查所需要的進程是否已經在主機上開啓
    可以使用ps命令。它能顯示當前運行中進程的相關信息,包括進程的PID。
    Linux和UNIX都支持ps命令,顯示所有運行中進程的相關信息。

ps命令能提供一份當前進程的快照。如果想狀態可以自動刷新,可以使用top命令。
ps命令

輸入下面的ps命令,顯示所有運行中的進程:

ps aux | less

其中,

-A:顯示所有進程

a:顯示終端中包括其它用戶的所有進程

x:顯示無控制終端的進程

任務:查看系統中的每個進程。
1.ps -A
2. ps -e
在這裏插入圖片描述
top命令提供了運行中系統的動態實時視圖。在命令提示行中輸入top:
3. top
在這裏插入圖片描述
二、查看SSH端口是否開啓
輸出:
ss -ntlp | grep 22(找出打開套接字/端口應用程序)
netstat -anp | grep 22 (需要安裝net-tools)
netstat -anp | grep ssh (需要安裝net-tools)
lsof -i:22
圖片我就不一一舉例了,上方命令本人已試驗成功
在這裏插入圖片描述

三、端口開啓情況下

Ⅰ.telnet 22+端口 是通的情況下
(一)已經連接上 打^] 退出 情況
1.檢查用戶名密碼錯誤
2.檢查 (是/否) 禁止ROOT用戶直接登陸
3.檢查遠程用戶:用戶過期或者用戶密碼過期 (時效30天-90天)
4 .是否多次登陸失敗 導致鎖死
解決方法2種
1.重啓sshd
2.重設密碼

Ⅱ、connect refuse 訪問拒絕情況
1 .檢查有沒有加端口
4. 是否協議不認
3 否認我們的IP網段
5. IP是否被屏蔽
6. ip是否衝突

Ⅲ、 known_hosts 錯誤
REMOTE HOST IDENTIFICATION HAS CHANGED 翻譯:遠程主機標識已更改
以下是解決方法
1.vi /root/.ssh/known_hosts 編輯相關IP的哪一行!
刪除對應ip的相關rsa信息
優點:其他正確的公鑰信息保留
缺點:還要vi,還要找到對應信息,稍微優點繁瑣
ansible 執行腳本的時候 需要known不輸入這個yes
2.ssh-keygen -R 192.168.0.100
優點:快、穩、狠
缺點:沒有缺點
請除舊的公鑰信息
3.rm -rf ~/.ssh/known_hosts
最差選項處理
優點:乾淨利索
缺點:把其他正確的公鑰信息也刪除,下次鏈接要全部重新經過認證

Ⅳ、 能Ping通 但是ssl 證書不對
問題解析:
我們的客戶端的證書過老,或者是客戶端不支持
1.SecureCRT 版本過老! 16年之前的版本 可能會有這種問題
解決方法:證書報錯 只能升級工具解決問題
2.putty的版本過老 16年之前的版本 可能會有這種問題
解決方法:證書報錯 只能升級工具解決問題

Ⅴ.Telnet 不通情況下
1.檢查防火牆 iptable 防火牆
在cen OS 7中,安裝一個IPtable防火牆,一堆水貼,真的是誤人子弟。
正確的方法:
(1)cen OS7因爲自帶Firewalls,所以需要先停用
啓動: systemctl start firewalld
查看狀態: systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
(2) 安裝IPtable防火牆
首先安裝IPtable防火牆相關組件:
yum install -y iptables-services iptables-devel.x86_64 iptables.x86_64
systemctl enable iptables ##啓用iptables
systemctl start iptables ##啓動iptables
systemctl status iptables ##查看iptables狀態

在這裏插入圖片描述
2.檢查物理防火牆是否阻攔

3.也有可能sshd 服務故障或127.0.0.1拒絕連接

(1)啓動 sshd服務正常:
問題分析:
中間的數據傳輸有問題,
不成功 ssh客戶端可能有問題。

(2)不成功 sshd服務端有問題 sshd假死

4.互ping不同或兩端互相ping對端的網關/配置對端網關的路由

四、端口未開啓情況下

Ⅰ.檢查服務是否開啓
檢查命令:ps -ef | grep 進程 有沒有
Ⅱ.服務沒安裝情況下
執行命令如下:
rpm -qa | grep 服務
tar.gz make && make install
dpkg -i deb的包 ---- apt-get
find / -name “關鍵字” 會輸出部分不想關的信息 /proc/
pip python的時候相關

Ⅲ.服務啓動報錯:有可能版本不支持 軟件不兼容 安裝不成功
Ⅳ.檢查端口是否禁用
Ⅴ.檢查dev proc 的配置

五、查看tcp/ip網絡是否暢通

1.沒有回包 導致無法訪問
.沒有回包 導致無法訪問 →防火牆 禁止數據回傳 →ping 單通 →子網掩碼問題→常用的是 /24 255.255.255.0

2.ping 單通ping →單通 路由回程路由不對

3.沒有回包 導致無法訪問 →nginx 499錯誤

4.查看tcp/ip網絡是否暢通→檢查防火牆上是否禁用了ssh協議 保留了tcp/ip協議

六、網絡故障不能ping通

Ⅰ.查看是否禁ping →可以telnet telnet+端口 →是通的
1 . 已經連接上 打^] 退出 情況
(1) 用戶名密碼錯誤
(2) 禁止ROOT用戶直接登陸
(3)一樣是遠程用戶 用戶過期或者用戶密碼過期 30-90
(4) 多次登陸失敗 導致鎖死解決方法:重啓sshd / 重設密碼
2. connect refuse 訪問拒絕
(1)沒有加端口
(2)協議不認
(3)不認我們的IP網段
(4)IP被屏蔽
(5)ip衝突
3.known_hosts 錯誤→REMOTE HOST IDENTIFICATION HAS CHANGED
1.vi /root/.ssh/known_hosts 編輯相關IP的哪一行!
刪除對應ip的相關rsa信息
優點:其他正確的公鑰信息保留
缺點:還要vi,還要找到對應信息,稍微優點繁瑣
ansible 執行腳本的時候 需要known不輸入這個yes
2.ssh-keygen -R 192.168.0.100
優點:快、穩、狠
缺點:沒有缺點
請除舊的公鑰信息
3.rm -rf ~/.ssh/known_hosts
最差選項處理
優點:乾淨利索
缺點:把其他正確的公鑰信息也刪除,下次鏈接要全部重新經過認證
4.能Ping通 但是ssl 證書不對→我們的客戶端的證書過老,或者是客戶端不支持

Ⅱ…查看是否禁ping →可以telnet telnet+端口 →不通
1.檢查防火牆 iptable 防火牆
在cen OS 7中,安裝一個IPtable防火牆,一堆水貼,真的是誤人子弟。
正確的方法:
(1)cen OS7因爲自帶Firewalls,所以需要先停用
啓動: systemctl start firewalld
查看狀態: systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld
(2) 安裝IPtable防火牆
首先安裝IPtable防火牆相關組件:
yum install -y iptables-services iptables-devel.x86_64 iptables.x86_64
systemctl enable iptables ##啓用iptables
systemctl start iptables ##啓動iptables
systemctl status iptables ##查看iptables狀態

在這裏插入圖片描述
2.檢查物理防火牆是否阻攔

3.也有可能sshd 服務故障或127.0.0.1拒絕連接

(1)啓動 sshd服務正常:
問題分析:
中間的數據傳輸有問題,
不成功 ssh客戶端可能有問題。
(2)不成功 sshd服務端有問題 sshd假死

七、不能ping通→telnet 22口 不通

Ⅰ.服務未開啓

Ⅱ.服務開啓→網絡不通
1.路由不通
2.IP 衝突
3.網關或者廣播地址衝突→廣播地址衝突 導致的廣播風暴 導致局域網內集體無法連接→192.168.0.255/24 被佔用 地址段的最後一個地址被佔用 會導致廣播地址衝突 從而廣播風暴 192.168.0.128/25 被佔用 192.168.0.64/26被佔用
4.網線不通→看網口的燈兒 綠色 閃爍 視爲正常
5.網卡是否啓動→需要ifup
6.檢查IP是否生效
7.先ping網關,繼續ping下一個網關, 繼續ping下一個網關→中間的某一跳網絡不通→一跳一跳的ping過去, 一個一個網關的ping過去,確定是在那個交換機路由器處發生的問題

耗時1周 整理的網絡故障思維導圖,供大家參考

在這裏插入圖片描述
在這裏插入圖片描述

先爲成功的人工作,再與成功的人合作,最後是讓成功的人爲你工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章