請(qǐng)先通過(guò)控制臺(tái)VNC遠(yuǎn)程登陸服務(wù)器進(jìn)行問(wèn)題排查。
排查思路:
思路一:客戶(hù)端本地網(wǎng)絡(luò)異常
故障現(xiàn)象:用戶(hù)無(wú)法登陸外網(wǎng)。
可能原因:網(wǎng)卡驅(qū)動(dòng)未開(kāi)啟或網(wǎng)卡配置有問(wèn)題。
解決方法:查找 /etc/hosts.deny 看是否有攔截IP;檢查網(wǎng)卡驅(qū)動(dòng),重新安裝。
思路二:服務(wù)器處于關(guān)機(jī)狀態(tài)
故障現(xiàn)象:無(wú)法遠(yuǎn)程連接成功。
可能原因:云服務(wù)器ECS處于關(guān)機(jī)狀態(tài),無(wú)法連接到外網(wǎng)導(dǎo)致無(wú)法遠(yuǎn)程連接。
解決方法:到控制臺(tái)主機(jī)列表頁(yè),找到相關(guān)主機(jī),點(diǎn)擊主機(jī)名稱(chēng)進(jìn)入開(kāi)關(guān)機(jī)頁(yè)面,點(diǎn)擊開(kāi)機(jī)進(jìn)行開(kāi)機(jī)操作。
思路三:iptables配置異常(Centos6)
前提條件:您只有在已授權(quán)可關(guān)閉iptables的情況下,才能做該項(xiàng)排查。
故障現(xiàn)象:SSH無(wú)法連接,關(guān)閉iptables后連接恢復(fù)。
解決方法:調(diào)整iptables配置策略。
1.查看防火墻規(guī)則:
iptables -nvL –line-number
l L查看當(dāng)前表的所有規(guī)則,默認(rèn)查看的是filter表,如果要查看NAT表,可以加上-t NAT參數(shù)。
l n不對(duì)IP地址進(jìn)行反查,加上這個(gè)參數(shù)顯示速度會(huì)快很多。
l v輸出詳細(xì)信息,包含通過(guò)該規(guī)則的數(shù)據(jù)包數(shù)量、總字節(jié)數(shù)及相應(yīng)的網(wǎng)絡(luò)接口。
2.修改規(guī)則
a.若之前已設(shè)置過(guò)規(guī)則策略的,將原有的iptables文件保存一份,避免之前設(shè)置的策略丟失。
cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
b. 清空服務(wù)器上所有的規(guī)則。
iptables –F
c. 設(shè)置 INPUT 方向所有的請(qǐng)求都拒絕。如果是線(xiàn)上業(yè)務(wù)請(qǐng)勿直接操作,會(huì)導(dǎo)致業(yè)務(wù)直接中斷。
iptables -P INPUT DROP
d. 設(shè)置 iptables 防火墻后需放行 22 號(hào)端口,否則會(huì)導(dǎo)致無(wú)法遠(yuǎn)程。
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
e. 指定 IP 訪問(wèn)22號(hào)端口。
iptables -I INPUT -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT
說(shuō)明:192.168.1.1為請(qǐng)求端IP地址。
f. 使用 iptables -L 查看一下添加的規(guī)則是否生效。
iptables –L
g. 保存添加的規(guī)則。
iptables-save > /etc/sysconfig/iptables
3.設(shè)置后需要重啟iptables。
service iptables restart 或 /etc/init.d/iptables restart
4. 操作完成后,重啟服務(wù)器進(jìn)行配置驗(yàn)證。
systemctl reboot
操作完成后,重啟服務(wù)器進(jìn)行配置驗(yàn)證。
思路四:遠(yuǎn)程訪問(wèn)端口配置異常
故障現(xiàn)象:SSH 遠(yuǎn)程無(wú)法連接,遠(yuǎn)程訪問(wèn)端口非默認(rèn)端口。
可能原因:更改了遠(yuǎn)程訪問(wèn)端口配置,有可能防火墻未對(duì)自定義端口放開(kāi)。
解決方案:客戶(hù)端無(wú)法正常登錄時(shí),建議先使用不同的 SSH 客戶(hù)端基于相同賬戶(hù)信息進(jìn)行登錄測(cè)試。如能正常登錄,則判斷是客戶(hù)端配置問(wèn)題,需對(duì)客戶(hù)端配置做排查分析。
1. 使用 telnet 測(cè)試現(xiàn)有監(jiān)聽(tīng)端口連通性。使用 Linux 自帶的 telnet 工具測(cè)試現(xiàn)有端口的連通性。
telnet <host> <port>
# host 是目標(biāo)服務(wù)器 IP,port是待測(cè)試端口號(hào)
2. 修改或查看Linux遠(yuǎn)程端口:
vi /etc/ssh/sshd_config
找到 #port 22 這一行,默認(rèn)端口為 22,可以把前面的#刪除,把 22 改為其它的端口。
重啟SSH服務(wù):
/etc/init.d/sshd restart 或 service sshd restart
3.創(chuàng)建新的監(jiān)聽(tīng)端口測(cè)試。
可以使用python 自帶的 Web 服務(wù)器用于臨時(shí)創(chuàng)建新的監(jiān)聽(tīng)端口進(jìn)行測(cè)試。
python -m SimpleHTTPServer <所需端口號(hào)>
說(shuō)明:
l 您可以通過(guò)自動(dòng)測(cè)試默認(rèn)端口來(lái)檢測(cè)遠(yuǎn)程訪問(wèn)端口的問(wèn)題。
l 服務(wù)監(jiān)聽(tīng)能使用的端口范圍為 0~65535,錯(cuò)誤配置監(jiān)聽(tīng)端口會(huì)導(dǎo)致遠(yuǎn)程桌面服務(wù)監(jiān)聽(tīng)失敗。
思路五:CPU負(fù)載過(guò)高
故障現(xiàn)象:CPU負(fù)載過(guò)高導(dǎo)致系統(tǒng)無(wú)法進(jìn)行遠(yuǎn)程連接。
解決方法:您可以去控制臺(tái)找到對(duì)應(yīng)的主機(jī),點(diǎn)擊主機(jī)名稱(chēng)進(jìn)入到主機(jī)詳情頁(yè)面,點(diǎn)擊監(jiān)控查看主機(jī)CPU使用情況。CPU占用率搞相關(guān)問(wèn)題排查詳見(jiàn)云服務(wù)器ECS Linux系統(tǒng)CPU占用率較高問(wèn)題排查。
注意:如果在某個(gè)時(shí)間段CPU負(fù)載過(guò)高可能導(dǎo)致遠(yuǎn)程連接失敗,建議您查詢(xún)是否是程序或主機(jī)資源不滿(mǎn)足現(xiàn)有要求。
最后嘗試重啟服務(wù)器
如果通過(guò)控制臺(tái)的VNC遠(yuǎn)程登陸功能仍無(wú)法成功地進(jìn)行遠(yuǎn)程連接,請(qǐng)嘗試重啟服務(wù)器。重啟會(huì)導(dǎo)致服務(wù)器停止服務(wù),從而中斷業(yè)務(wù),請(qǐng)謹(jǐn)慎執(zhí)行。