為什么要遠(yuǎn)程連接Linux系統(tǒng)??
在實(shí)際的工作場景中,虛擬機(jī)界面或物理服務(wù)器本地的窗口都是很少能夠接觸到的,因?yàn)榉?wù)器裝完系統(tǒng)后,都要拉到IDC機(jī)房托管,如果是購買了云主機(jī),更碰不到服務(wù)器本地顯示器了,此時(shí),只能通過遠(yuǎn)程連接的方式管理Linux系統(tǒng)。因此,在裝好linux系統(tǒng)后,學(xué)習(xí)Linux運(yùn)維的第一步應(yīng)該是配置好客戶端軟件遠(yuǎn)程(通過ssh軟件進(jìn)行連接)連接Linux系統(tǒng)進(jìn)行管理
telnet連接服務(wù)器是明文的,非加密的; 默認(rèn)為23端口
SSH連接服務(wù)器是加密的連接; 默認(rèn)為22端口
ssh連接示意
服務(wù)器端===>通過ssh協(xié)議提供===>守護(hù)進(jìn)程sshd監(jiān)聽22端口(不斷的監(jiān)聽是否有人需要服務(wù))
客戶端(客戶):ssh協(xié)議,ip地址,端口號(hào)(需要什么服務(wù)),用戶名,密碼
如何查看Linux系統(tǒng)的IP地址??
如圖所示,我的Linux系統(tǒng)IP為192.168.179.133。
可以通過這兩個(gè)命令來查看IP地址
ip地址/24:代表子網(wǎng)掩碼255.255.255.0
lo:回環(huán)網(wǎng)卡:用于檢測設(shè)備自測
eth0:你的第一塊網(wǎng)卡
eth1:你的第二塊網(wǎng)卡
ifup 網(wǎng)卡名與ifconfig 網(wǎng)絡(luò)名 up的區(qū)別
假如你發(fā)現(xiàn)你的虛擬機(jī)沒有IP地址的話,那么也許你的網(wǎng)卡設(shè)備處于關(guān)閉狀態(tài)
方法一:ifup + 網(wǎng)卡名(ethx) 可以開啟設(shè)備
方法二:ifconfig +網(wǎng)卡名(ethx)+ up 也可以開啟設(shè)備
討論
既然這兩個(gè)命令都能開啟成功,那么它們到底有沒有區(qū)別呢?請(qǐng)跟隨我來做個(gè)實(shí)驗(yàn)。
第一步:我們刪掉eth1網(wǎng)卡的配置文件
/etc/sysconfig/network-scripts/:這個(gè)路徑是網(wǎng)卡配置文件的路徑,作為運(yùn)維人員我們是必須熟記得
第二步,我們關(guān)閉eth1這個(gè)網(wǎng)卡設(shè)備
第三步,我們嘗試開啟這個(gè)設(shè)備
繼續(xù)討論
為什么我們的試驗(yàn)結(jié)果是這樣的呢?當(dāng)我刪除了eth1這個(gè)網(wǎng)卡的配置文件,ifup這個(gè)命令就失靈了?
•這是因?yàn)椋?span style="color: #ff00ff">ifup/ifdown這個(gè)命令控制的實(shí)際上并不是物理網(wǎng)卡的開啟和關(guān)閉,而實(shí)際上他控制的僅僅是網(wǎng)卡的配置文件而已,它是通過網(wǎng)卡配置文件間接的操作網(wǎng)卡設(shè)備。
•而ifconfig xxxx up/down:則是控制物理網(wǎng)卡設(shè)備的開啟和關(guān)閉,因此并不受配置文件的干擾。
CRT遠(yuǎn)程連接的基本原理
•我們?cè)谇皫坠?jié)中提到過,sshd這個(gè)服務(wù),實(shí)際上是服務(wù)器的一個(gè)守護(hù)進(jìn)程。
•正是因?yàn)榇嬖谶@個(gè)守護(hù)進(jìn)程,因此服務(wù)器的22端口才會(huì)持續(xù)不斷的被監(jiān)聽(監(jiān)視)
•當(dāng)CRT通過ssh協(xié)議訪問服務(wù)器的22端口的時(shí)候,服務(wù)器的sshd服務(wù)才會(huì)馬上回應(yīng)這個(gè)訪問,因此才能進(jìn)行遠(yuǎn)程連接
•故,當(dāng)服務(wù)器不存在sshd(把進(jìn)程kill掉)這個(gè)服務(wù)時(shí),xshell是無法通過ssh協(xié)議進(jìn)行遠(yuǎn)程訪問的。
當(dāng)我遠(yuǎn)程用CRT執(zhí)行命令kill 1486進(jìn)程后,只剩下當(dāng)前CRT連接Linux的sshd進(jìn)程(Pid=19130)。即 我若想在CRT再開一個(gè)會(huì)話連接Linux,是絕對(duì)連不上的。
如果服務(wù)器端sshd服務(wù)被未運(yùn)行,那么所有通過ssh協(xié)議的訪問都將失?。ò瑇shell,CRT)
當(dāng)sshd這個(gè)服務(wù)監(jiān)聽的不再是22端口時(shí)(通過配置文件可以改),CRT必須切換到它監(jiān)聽的端口進(jìn)行訪問才能正確連接。
總結(jié):
ifconfig + 網(wǎng)卡名:可以查看開啟狀態(tài)的網(wǎng)卡的IP地址(看不到關(guān)閉狀態(tài)的網(wǎng)卡設(shè)備)
ip a:可以查看所有網(wǎng)卡的IP地址(還能看到關(guān)閉狀態(tài)的網(wǎng)卡)
ip link:可以查看所有網(wǎng)卡的物理狀態(tài)
ifup/ifdown + 網(wǎng)卡名:通過網(wǎng)卡配置文件來開啟和關(guān)閉網(wǎng)卡設(shè)備
ifconfig 網(wǎng)卡名 up/down:直接關(guān)閉和開啟網(wǎng)卡設(shè)備。
通過kill + Pid號(hào) 或者pkill + 服務(wù)名稱 來殺掉進(jìn)程
sshd服務(wù)的配置文件路徑:/etc/ssh/sshd_config
網(wǎng)卡的配置文件路徑:/etc/sysconfig/network-scripts/ifcfg-網(wǎng)卡名
netstat -antup或ps -ef :可以用來查看當(dāng)前服務(wù)器開啟的所有服務(wù)
故障排查(通過ssh工具無法連接Linux主機(jī))
1、兩個(gè)機(jī)器之間物理網(wǎng)絡(luò)是否通暢(網(wǎng)線網(wǎng)卡,IP是否正確)
ping 192.168.xx.xx ====>在當(dāng)前的CRT或xshell下ping Linux系統(tǒng),看物理網(wǎng)絡(luò)是否通暢
2、防火墻或selinux是否處于開啟狀態(tài)
SELinux(Security-Enhanced Linux)是美國國家安全局(NSA)對(duì)于強(qiáng)制訪問控制的實(shí)現(xiàn),這個(gè)功能讓系統(tǒng)管理員又愛又恨,這里我們還是把它關(guān)閉了吧,至于安全問題,后面通過其他手段來解決,這也是大多數(shù)生產(chǎn)環(huán)境的做法,如果非要開啟也是可以的。關(guān)閉方式如下:
命令說明
setenforce:用于命令行管理SELinux的級(jí)別,后面的數(shù)字表示設(shè)置對(duì)應(yīng)的級(jí)別
getenforce:查看SElinux當(dāng)前的級(jí)別狀態(tài)
提示:修改配置SElinux后,要想使生效,必須要重啟系統(tǒng)。因此,可配合使用setenforce 0 這個(gè)臨時(shí)關(guān)閉的命令,這樣在重啟前后都可以使得SElinux關(guān)閉生效了,也就是說無需立刻重啟服務(wù)器了,在生產(chǎn)環(huán)境下Linux機(jī)器是不能隨意重啟。
3、查看服務(wù)器的服務(wù)進(jìn)程是否處于開啟狀態(tài)(sshd)
netstat -antup或ps -ef :可以用來查看當(dāng)前服務(wù)器開啟的所有服務(wù)
4、查看服務(wù)器的ssh端口是否改變
sshd服務(wù)的配置文件路徑:/etc/ssh/sshd_config