Linux如何检测服务是否正在监听端口?lsof与nc命令实践

发布时间 - 2025-07-12 00:00:00    点击率:

要确认服务是否监听特定端口,常用方法是使用lsof和nc命令。1. 使用lsof -i :可查看具体端口的监听情况,若有输出说明服务正在监听;2. 使用nc -zv 测试端口连通性,提示succeeded表示端口可达;3. 可结合ss -tuln或netstat -tuln查看整体监听状态。注意服务可能因防火墙或绑定地址限制导致外部无法访问,需交叉验证多个命令结果以排查问题。

要确认某个服务是否正在监听特定端口,最常用的方法是使用 lsofnc 这两个命令。它们在排查网络问题、调试服务时非常实用,尤其适合运维人员和开发人员。

下面介绍几种常见的使用方式,帮助你快速判断端口是否被正确监听。


1. 使用 lsof 查看监听中的端口

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 端口。

常见选项说明:

  • -i ::指定端口过滤
  • -P:显示端口号而不是服务名
  • -n:不进行 DNS 解析,加快速度

如果你没有看到任何输出,那可能这个端口没有被监听。


2. 使用 nc 检测端口是否可连接

nc(netcat)是一个多功能网络工具,可以用来测试端口是否开放或可连接。

基本命令:

nc -zv  <端口号>

例如检测本地 3306 端口是否可用:

nc -zv localhost 3306

输出示例:

Connection to localhost 3306 port [tcp/mysql] succeeded!

如果提示 succeeded,说明端口是通的;如果没有响应或报错,可能是服务没启动或者防火墙拦截了。

注意事项:

  • nc 测试的是“能否建立连接”,并不保证服务本身正常运行
  • 如果你用的是 ncatnc6,命令语法类似
  • 有些 Linux 发行版默认没有安装 nc,可以通过包管理器安装,如 yum install nmap-ncatapt install netcat

3. 结合 ssnetstat 辅助排查

虽然不是标题里的命令,但有时候你会想换一种方式验证结果。可以用 ssnetstat 来查看监听状态。

例如:

ss -tuln | grep :22

或者:

netstat -tuln | grep :22

这些命令会列出所有处于 LISTEN 状态的 TCP/UDP 端口,适合快速浏览整个服务器的监听情况。


小结一下

  • lsof 可以看到哪个进程占用了哪个端口
  • nc 可以测试外部是否能连上该端口
  • 遇到问题时,多尝试几个命令交叉验证更可靠

基本上就这些方法了,不复杂但容易忽略细节的地方在于:有时服务虽然在监听,但因为防火墙设置或 bind 地址限制(比如只绑定了 127.0.0.1),导致外部无法访问。遇到这种情况,记得检查配置和防火墙规则。


# mysql  # linux  # nginx  # 工具  # 网络问题  # udp  # 的是  # 是一个  # 端口号  # 无法访问  # 几个  # 多个  # 你会  # 可以用  # 你想  # 这两个 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速搭建高效香港服务器网站?  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  如何在阿里云服务器自主搭建网站?  Laravel如何实现用户密码重置功能?(完整流程代码)  香港服务器网站推广:SEO优化与外贸独立站搭建策略  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  中国移动官方网站首页入口 中国移动官网网页登录  想要更高端的建设网站,这些原则一定要坚持!  如何快速上传自定义模板至建站之星?  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  如何快速搭建支持数据库操作的智能建站平台?  如何在服务器上配置二级域名建站?  HTML 中如何正确使用模板变量为元素的 name 属性赋值  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何确认建站备案号应放置的具体位置?  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  zabbix利用python脚本发送报警邮件的方法  中山网站制作网页,中山新生登记系统登记流程?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  如何用腾讯建站主机快速创建免费网站?  文字头像制作网站推荐软件,醒图能自动配文字吗?  Swift开发中switch语句值绑定模式  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  高端云建站费用究竟需要多少预算?  Android实现代码画虚线边框背景效果  Linux系统运维自动化项目教程_Ansible批量管理实战  Laravel中的withCount方法怎么高效统计关联模型数量  香港服务器选型指南:免备案配置与高效建站方案解析  如何在云服务器上快速搭建个人网站?  如何续费美橙建站之星域名及服务?  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  Laravel如何实现文件上传和存储?(本地与S3配置)  详解jQuery中的事件  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  如何彻底卸载建站之星软件?  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Laravel如何使用Gate和Policy进行授权?(权限控制)  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  浅谈Javascript中的Label语句  Laravel如何使用Livewire构建动态组件?(入门代码)  Laravel如何使用Blade组件和插槽?(Component代码示例)  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Laravel如何配置Horizon来管理队列?(安装和使用)