插件窝 干货文章 检测Linux系统中端口是否被占用的技巧

检测Linux系统中端口是否被占用的技巧

端口 使用 口号 占用 258    来源:    2025-04-09

检测Linux系统中端口是否被占用的技巧

在Linux系统中,有多种方法可以检测特定端口是否被占用。以下是几种常用的方法:

1. 使用netstat命令

netstat -tuln | grep :端口号

或者使用更现代的替代命令ss:

ss -tuln | grep :端口号

如果端口被占用,命令会返回相关信息;如果没有返回结果,则表示端口未被使用。

2. 使用lsof命令

lsof -i :端口号

这个命令会显示占用该端口的进程详细信息,包括进程ID(PID)。

3. 使用telnet/nc测试本地端口

telnet localhost 端口号
# 或者
nc -zv localhost 端口号

如果连接被拒绝,通常表示端口未被占用;如果连接成功或挂起,可能表示有服务正在监听。

4. 使用nmap工具

nmap -p 端口号 localhost

nmap会详细报告端口的状态(open/filtered/closed)。

5. 使用/proc文件系统

ls -l /proc/*/fd/ 2>/dev/null | grep "socket:\[端口号\]"

这种方法可以找到打开特定端口的所有进程。

6. 使用简单的bash脚本测试

if timeout 1 bash -c "</dev/tcp/localhost/端口号" 2>/dev/null; then
    echo "端口被占用"
else
    echo "端口可用"
fi

实用技巧

  • 要检查TCP和UDP端口,可以分别使用-t-u选项
  • 结合grep -v可以排除特定进程
  • 使用sudo可以获取更完整的信息(某些进程可能只对root可见)
  • 对于快速检查,ssnetstat更高效

记住,某些端口可能被防火墙拦截,即使没有服务监听也显示为"filtered"状态。