📌  相关文章
📜  检查端口 linux 3 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:55:49.941000             🧑  作者: Mango

检查端口 Linux 3 - Shell-Bash

在Linux系统中,我们常常需要检查端口是否处于开放状态。这一过程可以通过命令行的方式进行。

检查端口命令

在Linux下,我们可以使用netstatlsof命令检查端口是否开放。其中,netstat命令是一个追踪网络连接的工具,而lsof命令则用于列出当前系统打开的文件。这两个命令都可以用来检查端口状态。

以下代码演示了如何使用netstat命令检查端口状态:

netstat -an | grep <port_number>

其中,<port_number>是需要检查的端口号。该命令将返回所有与该端口相关的连接信息。

以下代码演示了如何使用lsof命令检查端口状态:

lsof -i :<port_number>

同样地,<port_number>是需要检查的端口号。该命令将返回所有正在使用该端口的进程信息。

自动化检查脚本

为了方便日常工作,我们可以为以上操作编写一个自动化的检查脚本。以下代码示例演示了如何编写一个检查端口开放状态的脚本,其输出为端口号和协议:

#!/bin/bash

ports=(80 443 22 3306) #需要检查的端口号
protocols=("tcp" "tcp" "tcp" "tcp") #需要检查端口的协议类型

for i in ${!ports[@]}
do
    if netstat -an | grep -E "^${protocols[$i]}[[:space:]]+[^[:space:]]+[[:space:]]+[^[:space:]]+:${ports[$i]}\>" > /dev/null
    then
        echo "Port ${ports[$i]} is open (${protocols[$i]})"
    else
        echo "Port ${ports[$i]} is closed (${protocols[$i]})"
    fi
done

以上脚本将循环检查ports中定义的端口是否处于开放状态。其中,protocols定义的是对应端口的协议类型。如果端口开放,则输出Port <port_number> is open (<protocol>),否则输出Port <port_number> is closed (<protocol>)

总结

通过以上介绍,我们可以使用netstatlsof命令来检查端口状态,并编写自动化脚本进行检查。这些技能在日常Linux操作中非常有用,值得我们掌握。