小弟最近買了一個阿裡雲伺服器玩,之前用XShell連上了,搭了個小網站,後面就沒管了。
之後發現使用XShell連不上了??????????
報錯:(port 22): Connection failed
可是我是啥也沒動呀,怎麼突然就用不了了呢?
懷着這種疑問,我去網上查了下,發現還有很多小夥伴和我一樣。
下面我就總結了一下全網我所看到的排查方案、解決方案:
1.首先保證你自己的電腦是連上網的,這個也最好排查,随便登個網頁看看是否能正常通路。
2.通過阿裡雲網頁連接配接上伺服器,這個是一定可以連上的。
使用指令 ps -e | grep sh 檢視你雲伺服器上的sshd是否開啟,正常開啟會顯示如下圖
如果沒有的話,我們就需要啟動或者重新開機ssh服務
開啟ssh服務
/etc/init.d/ssh start
重新開機ssh服務
sudo /etc/init.d/ssh restart
3.如果還是連不上,我們可以重新開機一下伺服器試試
4.如果還是連不上,我們可以ping一下你雲伺服器的公網ip,看看能連得上不
5.進入阿裡雲網頁控制台中的安全組,把所有端口都加上,看看連得上不
6.如果還是連不上,我們可以試試修改ssh伺服器的配置檔案
- 在阿裡雲網頁連上伺服器
- 建議修改之前備份一下 cp /etc/ssh/ssh_config /etc/ssh/ssh_config.bak
- 修改這個檔案:/etc/ssh/sshd_config,
找到兩行:
MaxSessions:最大允許連結數,預設10.
MaxStartups:最大允許保持多少個未認證連結(未輸入登入密碼),預設值是10.
把他們的數字改大,例如改成(注意要去掉注釋#)
MaxSessions 1000
MaxStartups 1000
最後重新開機sshd ,使用指令service sshd restart或者/etc/init.d/ssh restart,然後連接配接試試看連得上不。
7.如果還是連接配接不上,那繼續在阿裡雲網頁連接配接上伺服器,解除安裝ssh,再重新安裝試試。
解除安裝openssh-server:apt-get remove openssh-server
安裝openssh-server:apt-get install openssh-server
安裝完之後啟動服務:sudo /etc/init.d/ssh start
啟動後,檢視服務是否正确啟動: ps -e|grep ssh
再連接配接試試看連得上不
8.如果還是連接配接不上,那就要考慮防火牆的問題了。
這篇對UBuntu的防火牆iptables進行了詳細的說明,大家可以先看一下:ubuntu中防火牆iptables配置
如果發現是安裝了防火牆,那麼有可能是端口被禁止通路了,因為ssh連接配接使用的是22端口,是以我們可以用指令
允許所有通路22端口:iptables -A INPUT -p tcp --dport 22 -j ACCEPT
當然有小夥伴會疑問為啥我會找到這麼多呢?因為我是到最後一個方法才解決的問題的,太慘了,不多說了,都是淚啊!
我應該是沒動過防火牆的呀,不知道為啥22端口被防火牆禁止通路了。
不過所幸問題得到了解決,雖然花了我一晚上的時間。
勇敢熊熊不怕困難……
基本上這是我在網上看到的所有排查方案了。不過有個疑問,之前阿裡雲那邊設定了安全組是允許端口22通路的,不知道為啥又多出來個防火牆不允許端口22通路,感覺怪怪的。
而且要吐槽一下阿裡雲的網頁,把界面做的和淘寶一樣複雜了,東西太多,根本不知道哪個内容在哪裡找。
而且對于連接配接不上伺服器也沒有相應的解決方法,但是我看了看網上有挺多人遇到這個問題的,可能是現在還不太重視吧