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