Linux實戰教學筆記05:遠程SSH連接服務與基本排錯(新手掃盲篇)


第五節 遠程SSH連接服務與基本排錯

標簽(空格分隔):Linux實戰教學筆記-陳思齊


第1章 遠程連接LInux系統管理

1.1 為什么要遠程連接Linux系統

屏幕快照 2016-12-25 下午10.04.28.png-633.3kB
在實際的工作場景中,虛擬機界面或物理服務器本地的窗口都是很少能夠接觸到的,因為服務器裝完系統后,都要拉到IDC機房托管,如果是購買了雲主機,更碰不到服務器本地顯示器了,此時,只能通過遠程連接的方式管理Linux系統。因此,在裝好linux系統后,學習Linux運維的第一步應該是配置好客戶端軟件遠程(通過ssh軟件進行連接)連接Linux系統進行管理。
屏幕快照 2016-12-25 下午10.07.42.png-2022.9kB

第2章 連接前的小知識

2.1 IP地址

互聯網上的計算機都會有一個唯一的32位的地址,我們訪問服務器,就必須通過這個IP地址。局域網里也有預留的IP地址192.10.172開頭,局域網的IP地址也是唯一。NAT模式,電腦宿主機的ip在局域網是唯一的,選擇了NAT模式創建虛擬機,虛擬機就是一個新的局域網(私有網絡)

2.2 端口的簡單概念

老師的機器ip 192.168.11.211
192.168.11.211代表一台主機,但是主機上可能會有很多服務。一台主機上的不同服務功能,就是通過端口區分,然后讓外部人員訪問。

2.3 協議的簡單概念

漢語,英語,法語,不同的服務提供了不同的端口,對應了不同的功能,通信方式可能也是不同的,這種通信的方式我們就可以理解為協議。
一台主機上的不同服務功能,就是通過端口區分,不同的服務端口,客戶端和服務器之間通信,就可以使用不同的協議

第3章 SSH遠程連接故障排查示例

屏幕快照 2016-12-25 下午10.27.30.png-835kB

  • telnet連接服務器是明文的,非加密的
  • SSH連接服務器是加密的連接

(由於我是用mac來寫文檔,沒法實際截圖xsehll這個windows工具的使用,但這個工具真的是非常簡單,請同學們自行腦補)

3.1 ssh連接示意

  • 服務器端=>通過ssh協議提供=>sshd服務====>監聽22端口(不斷的監聽是否有人需要服務)
  • 客戶端(客戶):ssh協議,ip地址,端口號(需要什么服務),用戶名,密碼

屏幕快照 2016-12-26 下午10.02.37.png-343.3kB

3.2 遠程連接五要素

  1. 協議:SSH(加密),telnet(未加密)
  2. IP:對方的IP地址
  3. 端口:默認22端口
  4. 用戶名:
  5. 密碼:

3.3 如何查看IP地址

  • ifconfig(ip a)

QQ20161226-230633@2x.png-76.4kB

可以通過這兩個命令來查看IP地址
ip地址/24:代表子網掩碼255.255.255.0
lo:回環網卡:用於檢測設備自測
eth0:你的第一塊網卡
eth1:你的第二塊網卡

注意
假如你發現你的虛擬機沒有IP地址的話,那么也許你的網卡設備處於關閉狀態
QQ20161226-232602@2x.png-44.5kB
通過命令:ifup + 網卡名(ethx) 可以開啟設備
通過命令:ifconfig +網卡名(ethx)+ up 也可以開啟設備
QQ20161226-233622@2x.png-156.2kB

討論

既然這兩個命令都能開啟成功,那么它們到底有沒有區別呢?請跟隨我來做個實驗。

  • 第一步:我們刪掉eth1網卡的配置文件
    QQ20161226-233915@2x.png-27.6kB

/etc/sysconfig/network-scripts/:這個路徑是網卡配置文件的路徑,作為運維人員我們是必須熟記得

  • 第二步,我們關閉eth1這個網卡設備
    QQ20161226-234211@2x.png-72.8kB
  • 第三步,我們嘗試開啟這個設備
    QQ20161226-234407@2x.png-68.2kB

繼續討論

為什么我們的試驗結果是這樣的呢?當我刪除了eth1這個網卡的配置文件,ifup這個命令就失靈了?

  • 這是因為,ifup/ifdown這個命令控制的實際上並不是物理網卡的開啟和關閉,而實際上他控制的僅僅是網卡的配置文件而已,它是通過網卡配置文件間接的操作網卡設備。
  • 而ifconfig xxxx up/down:則是控制物理網卡設備的開啟和關閉,因此並不受配置文件的干擾。

3.4 xshell 遠程連接的基本原理

  • 我們在前幾節中提到過,sshd這個服務,實際上是服務器的一個守護進程。
  • 正是因為存在這個守護進程,因此服務器的22端口才會持續不斷的被監聽(監視)
  • 當xshell通過ssh協議訪問服務器的22端口的時候,服務器的sshd服務才會馬上回應這個訪問,因此才能進行遠程連接
  • 故,當服務器不存在sshd(把進程kill掉)這個服務時,xshell是無法通過ssh協議進行遠程訪問的。
    QQ20161227-000537@2x.png-29.7kB

如果服務器端sshd服務被未運行,那么所有通過ssh協議的訪問都將失敗(包含xshell)
屏幕快照 2016-12-27 上午12.07.48.png-287kB
這是一個mac的控制台的連接圖通過ssh訪問失敗,(xshell連接的請自行嘗試。)

  • 當sshd這個服務監聽的不再是22端口時(通過配置文件可以改),xshell必須切換到它監聽的端口進行訪問才能正確連接。
    QQ20161227-001520@2x.png-60.6kB

小結

  • ifconfig + 網卡名:可以查看開啟狀態的網卡的IP地址(看不到關閉狀態的網卡設備)
  • ip a:可以查看所有網卡的IP地址(還能看到關閉狀態的網卡)
  • ip link:可以查看所有網卡的物理狀態
  • ifup/ifdown + 網卡名:通過網卡配置文件來開啟和關閉網卡設備
  • ifconfig 網卡名 up/down:直接關閉和開啟網卡設備。
  • 通過kill + Pid號 或者pkill + 服務名稱 來殺掉進程
    QQ20161227-002320@2x.png-123.1kB
    sshd服務的配置文件路徑:/etc/ssh/sshd_config
    網卡的配置文件路徑:/etc/sysconfig/network-scripts/ifcfg-網卡名
    netstat -antup或ps -ef :可以用來查看當前服務器開啟的所有服務

3.5 故障排查

1,兩個機器之間物理網絡是否通暢(網線網卡,IP是否正確)
ping -t 192.168.xx.xx ====>物理網絡是否通暢
QQ20161227-003442@2x.png-981.4kB
2,防火牆或selinux是否處於開啟狀態
QQ20161227-003728@2x.png-77.5kB

QQ20161227-004303@2x.png-270.2kB

直接通過sed -i 操作文件永久關閉selinux(下圖的enable應該是enabled
QQ20161227-004641@2x.png-257.5kB

3,查看服務器的服務進程是否處於開啟狀態(sshd)

小結

  • 第一步:看看路是不是通的:
    ping 服務器:

排查客戶端到服務器端線路問題,ping是常用的網絡連通性檢查工具(路通否)

tracert -d 服務器IP:跟蹤路由器

路由跟蹤命令,也可以檢查路由是否通暢,-d 是不對域名進行解析

  • 第二步:去服務器端查看
    service iptables status
    /etc/init.d/iptalbes status

這兩個命令都可以查看,等效。
linux防火牆iptables,可能好心辦壞事,阻擋了遠程連接,關掉防火牆,讓道路暢通無阻

  • 第三步:SSH服務問題
    telnet + IP地址:查看SSH 22 端口是否打開了(客戶端執行)
    nmap + IP地址 + -p 22 :掃描服務器是否開啟了22端口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM