要确认服务是否监听特定端口,常用方法是使用lsof和nc命令。1. 使用lsof -i :可查看具体端口的监听情况,若有输出说明服务正在监听;2. 使用nc -zv
要确认某个服务是否正在监听特定端口,最常用的方法是使用 lsof 和 nc 这两个命令。它们在排查网络问题、调试服务时非常实用,尤其适合运维人员和开发人员。
下面介绍几种常见的使用方式,帮助你快速判断端口是否被正确监听。
lsof(list open files)是一个强大的工具,可以列出当前系统中打开的文件和网络连接。在网络排查中,它常用于查看哪些进程正在监听哪些端口。
基本命令:
sudo lsof -i :<端口号>
比如你想查看是否有服务在监听 80 端口:
sudo lsof -i :80
输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 1234 root 6u IPv4 12345 0t0 TCP *:http (LISTEN)
这说明 nginx 正在监听 80 端口。
常见选项说明:
如果你没有看到任何输出,那可能这个端口没有被监听。
nc(netcat)是一个多功能网络工具,可以用来测试端口是否开放或可连接。
基本命令:
nc -zv <IP地址> <端口号>
例如检测本地 3306 端口是否可用:
nc -zv localhost 3306
输出示例:
Connection to localhost 3306 port [tcp/mysql] succeeded!
如果提示 succeeded,说明端口是通的;如果没有响应或报错,可能是服务没启动或者防火墙拦截了。
注意事项:
虽然不是标题里的命令,但有时候你会想换一种方式验证结果。可以用 ss 或 netstat 来查看监听状态。
例如:
ss -tuln | grep :22
或者:
netstat -tuln | grep :22
这些命令会列出所有处于 LISTEN 状态的 TCP/UDP 端口,适合快速浏览整个服务器的监听情况。
基本上就这些方法了,不复杂但容易忽略细节的地方在于:有时服务虽然在监听,但因为防火墙设置或 bind 地址限制(比如只绑定了 127.0.0.1),导致外部无法访问。遇到这种情况,记得检查配置和防火墙规则。
以上就是Linux如何检测服务是否正在监听端口?lsof与nc命令实践的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号