记录一次服务器重启应用恢复过程 |
您所在的位置:网站首页 › 服务器重启需要多久恢复正常 › 记录一次服务器重启应用恢复过程 |
副标题:哎呀,服务器登录不进去了瞎折腾 梳理服务器错误操作的整个过程,算是自己的一次复盘 ✍️ 本文可以了解到: 1、ssh 免密登录服务器简单配置 2、sshd 端口查看和修改 3、Elixir + Phoenix 服务线上操作 4、如何查看 Linux 的开机启动项(服务器重启后,哪些服务会自动重启) 5、systemctl 简介 背景 🚦本来自己云服务器上的应用一直跑的很稳定,也好长时间没打理了。最近收到腾讯云的安全提示,说服务器有高危漏洞 🕷,需要处理一下。 经过 🚜因为应用太过稳定(访问量很小 🤷🏻♀️)好久没登录服务器了,先本地终端 ssh 连接服务器,发现被拒绝了。然后我又尝试从腾讯云的网页使用 ssh 标准方式登录也被拒绝了 🐣。 我以为密码不对,就在腾讯云服务器实例上选择了重启服务器修改密码。(错误操作的开始 😿) 重启还挺快,也就七八秒,但是我发现我还是登录不进去,就开始脑补,不会被黑了吧 🤖? ![]() 然后就选择了腾讯云提供的第二种登录方式,翻了一下文档发现默认用户名不是 root, 是 ubuntu 进入到服务器之后,先确定 ssh 的 sshd 服务有没有启动 查看 sshd 状态service sshd status发现 sshd 服务是正常运行的,但是为什么登录不进去 ❓ 突然想到可能是本地 ssh 配置有问题 查看 ~/.ssh/config 文件发现之前的配置没有了,偶对了,最近换电脑了。这个配置没处理… 😭 配置 ssh重新配置 ~/.ssh/config添加类似的内容 Host 这里自定义个字符串 HostName IP地址 User 用户名 Port 端口号IP地址 可以从云服务的控制台找到。 突然想起来,默认的 ubuntu 这个账户的权限挺大的,我好像搞了一个权限更小的账户管理应用,但是记不清用户名了,再确认一下 🙈。 查看服务器上有哪些用户cat /etc/passwd从里面找到之前创建的用户。 欧,我又想起来了。我好像把 ssh 的默认端口也给改了,默认端口不安全,我换成其他的了 🐶。 这也是为什么网页版的登录不了,网页版默认端口是 22 🙈 查看 ssh 端口配置vi /etc/ssh/sshd_config或者 直接查看 ssh 服务端口netstat -tnlp | grep sshd好了,上面 ~/.ssh/config 内需要的内容我们都找好了,配置上。 还有一步,把自己本地 ssh 的公钥加入到服务器的授权名单里,以后就可以免密登录了。 vi ~/.ssh/authorized_keys服务器可以正常登录了。但是访问了一下,发现应用还挂着 🐤。 恢复应用我这个小应用是使用 Elixir + Phoenix 开发的后端,数据库用的 PostgreSQL 查看 nginx 的状态service nginx status 查看 PostgreSQL 的状态service postgresql status发现数据库服务是正常运行的。 重启 elixir + Phoenix 应用应用放在该用户的 home 文件夹的 www 内,找到应用 onePiece(这个小服务是和海贼王相关的 🏴☠️),进入 bin 文件夹,里面有个可执行文件 onePiece # 查看帮助./onePiece help# ping 应用 ./onePiece ping# 启动应用./onePiece start然后应用正常启动了 ☠️ ⛵️ ⚓️ 🏝 漏洞修补这才是一开始登录服务器的目的呀… 😹 腾讯云这边做的还挺好,漏洞详情里会给出需要升级的软件的命令。根据命令执行即可。 systemctl 🎈这个过程中,我产生了一个疑问 🤔,nginx、sshd、postgresql 这些服务重启服务器的时候,会自动重启吗?如何查看服务器的开机启动项? 查找资料的时候发现了 systemctl 查看可以使用 systemctl 管理的服务systemctl list-unit-files 查看开机启动项ls /etc/systemd/system/multi-user.target.wants/从这个命令的结果可以看到,我之前有疑问的 nginx、sshd、postgresql 服务器重启的时候都会默认启动。 把一个服务添加到开机启动systemctl enable httpd systemctl 和 service 命令的区别我前面重启服务和查看服务状态都用的 service 命令,其实也可以用 systemctl 命令去管理。 二者有什么区别哪?简单来说: systemctl 相比 service 是新一代的 Linux 系统的启动和管理命令 systemctl 命令兼容 service 命令格式不太一样 systemctl 是服务名放在最后 systemctl status httpdsystemctl 仅仅是 Systemd 其中一个命令,其实还有更多,包括查看服务器时间、登录用户、启动耗时等等,具体可以参考阮一峰的博文: Systemd 入门教程:命令篇 Systemd 入门教程:实战篇 小结 👉本来的目的是,去服务器补漏洞的,结果由于长时间不登录服务器,加上不熟悉,瞎折腾了一番,但是整个过程,经历一次也学习到一些新知识。 我在运维上还有很多不了解的,之后加强学习。 记录本文也是害怕,万一下一次又双叒叕忘了呐 ☠️ 🙈 🐣 🧶 🤪。 感谢您的阅读。 🙏 关于转载请看这里 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |