小弟最近买了一个阿里云服务器玩,之前用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访问,感觉怪怪的。
而且要吐槽一下阿里云的网页,把界面做的和淘宝一样复杂了,东西太多,根本不知道哪个内容在哪里找。
而且对于连接不上服务器也没有相应的解决方法,但是我看了看网上有挺多人遇到这个问题的,可能是现在还不太重视吧