📌  相关文章
📜  检查端口 linux 上运行的服务 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:10:55.544000             🧑  作者: Mango

检查端口 Linux 上运行的服务 - Shell/Bash

在 Linux 上,可以通过检查端口来确定哪些服务正在运行。这是非常有用的,因为这可以帮助我们诊断网络问题,防止不必要的端口暴露和安全漏洞。

以下是一个 Bash 脚本,可以用于检查 Linux 上运行的服务:

#!/bin/bash
# 使用 netstat 命令检查端口上运行的服务

# 设置需要检查的端口
port=80

# 使用 netstat 命令获取所有的监听端口
listening_ports=$(netstat -tln | awk '{print $4}' | grep -E ".*:$port$" | wc -l)

# 如果端口正在监听,则输出端口和对应的服务名
if [ $listening_ports -gt 0 ]; then
    service=$(lsof -i :$port | awk '{print $1}' | tail -n +2 | uniq)
    echo "**服务名:** $service"
    echo "**端口号:** $port"
else
    echo "端口 $port 没有任何服务在运行"
fi

该脚本首先由用户定义需要检查的端口,然后使用 netstat -tln 命令获取所有正在监听的端口。接下来,我们使用 awkgrep 命令过滤出我们需要的端口,然后再用 wc -l 计算它们的数量。

如果端口正在运行,则使用 lsof 命令获取对应的服务名,并输出它们。如果端口没有运行,则输出一个消息说明该端口没有运行任何服务。

Markdown 格式的结果如下:

服务名: nginx
端口号: 80

或者

端口 8080 没有任何服务在运行

这个脚本可以轻松地扩展来检查多个端口。同时,它还可以和其他工具一起使用,比如 Nagios 或 Zabbix,以帮助监控远程服务器的网络运行状况。