第五節 遠程SSH連接服務與基本排錯 標簽(空格分隔):Linux實戰教學筆記 陳思齊 第1章 遠程連接LInux系統管理 1.1 為什麼要遠程連接Linux系統 ![屏幕快照 2016 12 25 下午10.04.28.png 633.3kB][1] 在實際的工作場景中,虛擬機界面或物理伺服器本地 ...
第五節 遠程SSH連接服務與基本排錯
標簽(空格分隔):Linux實戰教學筆記-陳思齊
第1章 遠程連接LInux系統管理
1.1 為什麼要遠程連接Linux系統
在實際的工作場景中,虛擬機界面或物理伺服器本地的視窗都是很少能夠接觸到的,因為伺服器裝完系統後,都要拉到IDC機房托管,如果是購買了雲主機,更碰不到伺服器本地顯示器了,此時,只能通過遠程連接的方式管理Linux系統。因此,在裝好linux系統後,學習Linux運維的第一步應該是配置好客戶端軟體遠程(通過ssh軟體進行連接)連接Linux系統進行管理。
第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遠程連接故障排查示例
- telnet連接伺服器是明文的,非加密的
- SSH連接伺服器是加密的連接
(由於我是用mac來寫文檔,沒法實際截圖xsehll這個windows工具的使用,但這個工具真的是非常簡單,請同學們自行腦補)
3.1 ssh連接示意
- 伺服器端===>通過ssh協議提供===>sshd服務====>監聽22埠(不斷的監聽是否有人需要服務)
- 客戶端(客戶):ssh協議,ip地址,埠號(需要什麼服務),用戶名,密碼
3.2 遠程連接五要素
- 協議:SSH(加密),telnet(未加密)
- IP:對方的IP地址
- 埠:預設22埠
- 用戶名:
- 密碼:
3.3 如何查看IP地址
- ifconfig(ip a)
可以通過這兩個命令來查看IP地址
ip地址/24:代表子網掩碼255.255.255.0
lo:迴環網卡:用於檢測設備自測
eth0:你的第一塊網卡
eth1:你的第二塊網卡
註意
假如你發現你的虛擬機沒有IP地址的話,那麼也許你的網卡設備處於關閉狀態
通過命令:ifup + 網卡名(ethx) 可以開啟設備
通過命令:ifconfig +網卡名(ethx)+ up 也可以開啟設備
討論
既然這兩個命令都能開啟成功,那麼它們到底有沒有區別呢?請跟隨我來做個實驗。
- 第一步:我們刪掉eth1網卡的配置文件
/etc/sysconfig/network-scripts/:這個路徑是網卡配置文件的路徑,作為運維人員我們是必須熟記得
- 第二步,我們關閉eth1這個網卡設備
- 第三步,我們嘗試開啟這個設備
繼續討論
為什麼我們的試驗結果是這樣的呢?當我刪除了eth1這個網卡的配置文件,ifup這個命令就失靈了?
- 這是因為,ifup/ifdown這個命令控制的實際上並不是物理網卡的開啟和關閉,而實際上他控制的僅僅是網卡的配置文件而已,它是通過網卡配置文件間接的操作網卡設備。
- 而ifconfig xxxx up/down:則是控制物理網卡設備的開啟和關閉,因此並不受配置文件的干擾。
3.4 xshell 遠程連接的基本原理
- 我們在前幾節中提到過,sshd這個服務,實際上是伺服器的一個守護進程。
- 正是因為存在這個守護進程,因此伺服器的22埠才會持續不斷的被監聽(監視)
- 當xshell通過ssh協議訪問伺服器的22埠的時候,伺服器的sshd服務才會馬上回應這個訪問,因此才能進行遠程連接
- 故,當伺服器不存在sshd(把進程kill掉)這個服務時,xshell是無法通過ssh協議進行遠程訪問的。
如果伺服器端sshd服務被未運行,那麼所有通過ssh協議的訪問都將失敗(包含xshell)
這是一個mac的控制台的連接圖通過ssh訪問失敗,(xshell連接的請自行嘗試。)
- 當sshd這個服務監聽的不再是22埠時(通過配置文件可以改),xshell必須切換到它監聽的埠進行訪問才能正確連接。
小結
- ifconfig + 網卡名:可以查看開啟狀態的網卡的IP地址(看不到關閉狀態的網卡設備)
- ip a:可以查看所有網卡的IP地址(還能看到關閉狀態的網卡)
- ip link:可以查看所有網卡的物理狀態
- ifup/ifdown + 網卡名:通過網卡配置文件來開啟和關閉網卡設備
- ifconfig 網卡名 up/down:直接關閉和開啟網卡設備。
- 通過kill + Pid號 或者pkill + 服務名稱 來殺掉進程
sshd服務的配置文件路徑:/etc/ssh/sshd_config
網卡的配置文件路徑:/etc/sysconfig/network-scripts/ifcfg-網卡名
netstat -antup或ps -ef :可以用來查看當前伺服器開啟的所有服務
3.5 故障排查
1,兩個機器之間物理網路是否通暢(網線網卡,IP是否正確)
ping -t 192.168.xx.xx ====>物理網路是否通暢
2,防火牆或selinux是否處於開啟狀態
直接通過sed -i 操作文件永久關閉selinux(下圖的enable應該是enabled)
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埠