服务器重启后无法被远程连接的问题原因及解决方案

前言


我们的服务器一开始是可以被远程连接的,但是当我们的服务器因为某些原因而发生重启,我们在这之后,再对它执行远程连接的时候,经常会发生无法远程的情况。下面介绍的就是,解决这个问题的方法。

ssh报错解决方法,请参考下列链接:
https://blog.csdn.net/gx_1_11_real/article/details/80423409



原因


【1】被重启的服务器的ip未设为静态,服务器重启后IP自动获取,地址发生改变。
【2】执行远程的本机的ssh或防火墙等原因,导致无法远程
【3】服务器重启后,防火墙的设置恢复最初的规则
【4】服务器重启后,ssh服务未启动或配置错误
【5】密钥文件发生错误



排查的过程



【1】确定是否是本地的问题,即执行远程的主机的问题


<1>测试本机的网络及配置是否正常

ping 远程的IP
ssh 其他远程的服务器

如可连接其他的服务器和ping通远程的IP,证明非本地的原因



【2】确认是否重启服务器的问题


<1>测试重启服务器的网络是否正常

ping 重启服务器的ip

如可ping通重启服务器的IP,证明服务器重启后ip未改变,且网络的联通性无问题



<2>测试重启服务器的端口及远程服务是否正常
ssh 重启服务器的ip
nmap 重启服务器的ip 端口 (例如:nmap 10.10.20.208 22)

(可使用其他端口扫描工具,扫描重启服务器的22端口,telnet、ss、netstat…)

如果测试端口有问题,证明该端口服务未启动或被防火墙禁用



解决方法



【1】去本地登陆重启服务器修改防火墙



<1>查看防火墙是否运行及其规则

service iptables status(centos6)
systemctl status firewalld(centos7)

如防火墙未启动,查看ssh服务


如防火墙启动,就查看规则,并根据情况更改;如无需防火墙,就进行关闭

iptables

  • iptables -nvL 查看防火墙规则
    iptables -F/-X/-Z 清除已有iptables规则

  • iptables -A INPUT -p tcp --dport 22 -j ACCEPT 放行22端口(临时性,无需重启服务)

  • echo “-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT” >> /etc/sysconfig/iptables
    service iptables restart 放行22端口(永久性,需重启服务)


firewall

  • firewall-cmd–zone=public --list-ports 查看所有打开的端口

  • firewall-cmd --zone=public --add-port=22/tcp --permanent 放行22端口(永久性,无重启服务)
    firewall-cmd --reload 更新防火墙规则

  • firewall-cmd --permanent --add-service=sshd 放行ssh服务(永久性,无需重启服务)
    firewall-cmd --reload 更新防火墙规则


关闭防火墙

  • service iptables stop
    chkconfig iptables off 开机不自启 (on为开机自启)

  • systmectl stop firewalld
    systemctl disable firewalld 开机不自启



【2】去本地登陆重启服务器进行重启服务



<1>查看ssh 服务是否启动


service sshd status (centos6)
systemctl status sshd(centos7)

如未启动或启动后无进程,查看ssh的配置文件后,重启ssh服务
service sshd restart(centos6)
systemctl restart sshd(centos7)


启动后无进程,或端口丢失,查看ssh的配置文件后,重启ssh服务



【3】去本地登陆重启服务器删除密钥文件并重新推公钥


<1>删除远程的主机ip的在known_hosts相关信息

vim /.ssh/known_hosts

这里写图片描述


<2>从远程的主机向重启的服务器推公钥(单向即可)

远程的主机操作
ssh-copy-id 重启的服务器的ip



补充



由于近期才看到有个读者,发了评论说:"碰到一个奇怪的事,有时重启远程服务器可以,有时重启后又没法远程连接。"我本来想着回复到评论里算了,结果好像评论没审核通过什么的,干脆补充到这了。

<1>首先排查自己这边网络是否有问题,然后查看服务器系统日志,看是否有报错,有没有内存溢出。

<2>查看计划任务和服务的日志。有时候有些服务器中计划任务或某些服务有异常,会导致重启服务器没过多久又会报内存溢出,挖矿病毒那种也会导致;如果是有些连上一会儿又断开的,观察一下哪个服务的负载或内存占用异常,查看与这台服务器相关的nginx或其他web服务的日志。

<3>对于服务上或者病毒引起的问题,云服务器可以尝试更换实例,实体机可以重装系统通常可以解决问题。注意要先备份服务或有冗余才能这样。

<4>如果重装系统仍没有解决,迁移回服务又异常了,查看系统和服务的最大连接数,尤其的基于k8s的服务。

<5>如果不是服务的问题,看服务器是云还是实体机。

云的话发工单让云平台的人排查问题(他们会排查防火墙配置?本地网络?该实例的网络配置?等)

实体机就看下启动时和启动后,是否有硬件方面的提示或报错、排查网卡是否异常、光纤或网线是否老化、内存是否损坏、硬盘或Raid岌岌可危、电源或者服务器是否异常漏电、也可能是交换机老化。如果某台频繁发生也可能是计划报废(谁都没证据),要不就是修的多了哪根线有问题了?这种如果不能保修,只能认定为高危,不适合作为部署重要服务的机器了。如果怀疑漏电静电之类导致的,给服务器搬迁机柜和换电源。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漠效

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值