惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
N
Netflix TechBlog - Medium
大猫的无限游戏
大猫的无限游戏
爱范儿
爱范儿
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Register - Security
The Register - Security
IT之家
IT之家
博客园_首页
Microsoft Security Blog
Microsoft Security Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
I
InfoQ
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Jina AI
Jina AI
Apple Machine Learning Research
Apple Machine Learning Research
M
MIT News - Artificial intelligence
博客园 - Franky
C
Check Point Blog
T
The Blog of Author Tim Ferriss
V
Visual Studio Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
Recent Announcements
Recent Announcements
云风的 BLOG
云风的 BLOG
美团技术团队
The Cloudflare Blog
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
D
DataBreaches.Net
Google DeepMind News
Google DeepMind News
V
V2EX
aimingoo的专栏
aimingoo的专栏
GbyAI
GbyAI
G
Google Developers Blog
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42
罗磊的独立博客
量子位
MongoDB | Blog
MongoDB | Blog
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件
D
Docker
人人都是产品经理
人人都是产品经理

胡方运的博客

macOS App 开发 iCloud 不同步问题解决 机票还能这么买!随心飞低价旅行攻略 提前避坑:父母患病和医保问题 我和 Apple 开发的缘分 我的手机流量和宽带套餐性价比方案 iMessage 在国内好用吗? 为什么要写博客 macOS 升级 beta 系统后,如何打开原来版本的 XCode Xcode 安装依赖超时问题解决办法 短信转发-多设备多平台 Follow RSS 阅读 App macOS 重装踩坑记 我的 2021 我的 2020 年终总结 如何给网站添加免费的 https 证书 如何管理多个 git 账号 写给自己的JavaScript系列之一步步写个 JavaScript 解释器 JavaScript 文件的异步加载 async 和 defer 如何修改 git 已提交的用户名和邮箱
记录一次服务器重启应用恢复过程
感谢您的阅读。 🙏 关于转载请看这里 · 2021-05-13 · via 胡方运的博客

副标题:哎呀,服务器登录不进去了瞎折腾

梳理服务器错误操作的整个过程,算是自己的一次复盘 ✍️

本文可以了解到:

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


./onePiece ping


./onePiece start

然后应用正常启动了 ☠️ ⛵️ ⚓️ 🏝

漏洞修补

这才是一开始登录服务器的目的呀… 😹

腾讯云这边做的还挺好,漏洞详情里会给出需要升级的软件的命令。根据命令执行即可。

systemctl 🎈

这个过程中,我产生了一个疑问 🤔,nginxsshdpostgresql 这些服务重启服务器的时候,会自动重启吗?如何查看服务器的开机启动项?

查找资料的时候发现了 systemctl

查看可以使用 systemctl 管理的服务

systemctl list-unit-files

查看开机启动项

ls /etc/systemd/system/multi-user.target.wants/

从这个命令的结果可以看到,我之前有疑问的 nginxsshdpostgresql 服务器重启的时候都会默认启动。

把一个服务添加到开机启动

systemctl enable httpd

systemctl 和 service 命令的区别

我前面重启服务和查看服务状态都用的 service 命令,其实也可以用 systemctl 命令去管理。

二者有什么区别哪?简单来说:

  • systemctl 相比 service 是新一代的 Linux 系统的启动和管理命令
  • systemctl 命令兼容 service
  • 命令格式不太一样 systemctl 是服务名放在最后 systemctl status httpd

systemctl 仅仅是 Systemd 其中一个命令,其实还有更多,包括查看服务器时间、登录用户、启动耗时等等,具体可以参考阮一峰的博文:

Systemd 入门教程:命令篇

Systemd 入门教程:实战篇

小结 👉

本来的目的是,去服务器补漏洞的,结果由于长时间不登录服务器,加上不熟悉,瞎折腾了一番,但是整个过程,经历一次也学习到一些新知识。

我在运维上还有很多不了解的,之后加强学习。

记录本文也是害怕,万一下一次又双叒叕忘了呐 ☠️ 🙈 🐣 🧶 🤪。