事件背景:前同事离职,与我没有具体交接公司服务器相关信息。现在需要弄清楚服务器中到底运行了哪些服务?
思路梳理
不幸中的万幸,由于公司使用的是云服务器(天翼云),因此可以通过查看云服务器配置中的安全组信息。进一步确认当前服务器中开放了哪些端口,作为后续查找问题思路。既然聊到安全组,先来介绍一下安全组的概念。
安全组概念
安全组是一种虚拟防火墙,具备有状态的数据包过滤功能,用于设置云服务器、负载均衡、云数据库等实例的网络访问控制,控制实例级别的出入流量,是重要的网络安全隔离手段。 每台云服务器实例至少属于一个安全组,在创建实例的时候必须指定安全组。
安全组信息展示(以天翼云为例)
从下图中的协议端口可以发现目前云服务器中配置的协议端口,从这一步切入。可以从端口的角度具体查看涉及到哪些服务~
具体的实操命令演示
查看具体监听的端口和进程命令
shell
netstat -tulnp | grep -E "xxxx|xxxx|xxxx|xxxx"
命令的详细解释:
使用上述命令进行查看,可以得到相关进程端口信息,从下图的进程端口信息。可以大致得出目前服务中启动了哪些服务,例如下面的nginx、ollama等
详细分析上述端口信息(这一步可以直接丢给ai模型帮你分析),得出下面的结论
信息进一步解读
-
Nginx (80, 443),监听 HTTP (80) 和 HTTPS (443) 端口,提供 Web 服务。进程名:
nginx: master
,确认是 Nginx 服务器。 -
SSH (3049),监听端口
3049
,通常 SSH 默认端口是22
,可能是为了安全考虑改成了3049
。 -
Java 应用 (8085, 8089, 8084, 8088, 8060, 8065)。
-
RabbitMQ (5672, 15672, 25672),
5672
:RabbitMQ 消息队列的 AMQP 端口,负责处理消息传输。15672
:RabbitMQ 管理界面端口,可以通过http://服务器IP:15672
访问管理后台。25672
:RabbitMQ 集群通信端口。 -
Redis (6397),监听端口
6397
(默认是6379
,这里可能是修改后的端口)。 -
Elasticsearch (9200, 9300),
9200
:Elasticsearch REST API 端口,可以通过http://服务器IP:9200
访问。9300
:Elasticsearch 集群通信端口,节点之间通讯。 -
Ollama (11434),
ollama
是一个用于本地 AI 模型推理的工具(类似于 Llama.cpp),通常用于运行 AI 推理服务。
如何进一步根据端口号查看信息
使用命令
shell
lsof -i :8085
上述命令解释:
lsof
(List Open Files): 列出系统中打开的文件,包括网络连接、普通文件、库文件等。
-i :8085
: 过滤出所有监听或正在使用 8085
端口的进程。
对上述命令结果的详细解读展示(可用AI给自己赋能)
小提示:lsof -i :8085命令可以安全执行 ,不会影响生产环境,适用于排查进程、端口占用情况,如果服务器负载高,可以用
time lsof -i :8085
测试耗时
也可以使用命令:
shell
ps -aux | grep 8085
运行结果展示:
上述结果解读:
由于这块借助AI解读,此处展示AI给我生成的解读示例:
shell
root 19601 5.2 1.2 1284768 50320 ? Sl 10:03 0:10 /usr/bin/java -Xms1g -Xmx2g -jar myapp.jar --server.port=8085
如何查看8085这个是否是web服务
可以使用命令:
shell
curl -I http://localhost:8085
命令解读:
下面展示一下具体的执行效果:如果没有就会失败
展示一下成功的效果,这里使用了8060端口:
在极端高并发的情况下 (如服务器已满载),短时间内大量请求 可能会稍微增加负载。但单独执行一次 curl -I
的影响可以忽略不计。
如果任然担心可以使用:
shell
time curl -I http://localhost:8060
附录
参考文章:blog.csdn.net/Cloud_1234_...
联系我
- 公众号:舒一笑的架构笔记
- 微信:Tobeabetterman1001
- 邮箱:yixiaoshu88@163.com
- 博客:www.shuyixiao.cloud