Linux查看程序占用的端口-lsof

2024-05-05 16:48

本文主要是介绍Linux查看程序占用的端口-lsof,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在作网络编程时,我们经常要知道程序打开的端口号。这里介绍一种简单的端口号查询命令-lsof和具体方法:
首先,介绍一下 losf 命令。使用 “man lsof” 查看lsof的帮助文档。这里截取一部分:

NAME
lsof - list open files
DESCRIPTION
Lsof revision 4.87 lists on its standard output file information about files opened by processes
An open file may be a regular file, a directory, a block special file, a character special file, an executing text reference, a library, a stream or a network file (Internet socket, NFS file or UNIX domain socket.) A specific file or all the files in a file system may be selected by path.
Instead of a formatted display, lsof will produce output that can be parsed by other programs. See the -F, option description, and the OUTPUT FOR OTHER PROGRAMS section for more information.

描述的大意:lsof 用于列举进程打开文件文件情况,这里的的文件包括普通文件,目录,块设备,字符设备,可执行文件,库,流,以及网络文件(如 套接字),这里体现了 UNIX 系统的主要哲学—万物皆文件,并且该命令的输出可以作为其他命令的输入。
了解 lsof 命令的大意后,我们重点了解该命令选项“-i”:
-i select IPv[46] files
i 选项用于选择打开的 IPv 文件,选项参数:
[46][protocol][@hostname|hostaddr][:service|port]
其中
46 指定 IP 版本,4指 IPv4,6指 IPv6,使用时如果都不指定则匹配时二者都选择。
protocol 指定协议名称,包括 TCP, UDP
hostname 指定网络主机名
hostaddr 主机 IP地址
service/etc/services中出现的服务名 或者服务列表,如 smtp
port 匹配的端口号,亦可以是一个范围

使用时,上述参数必须至少指定一个。’@‘在指定主机名时不可省略,’:‘在指定端口或服务时也不可省略。服务名和端口号列表可以用’-‘连接表示范围,之用’,‘隔开。

At least one address component - 4, 6, protocol, hostname, hostaddr, or service - must be supplied. The ‘@’ character, leading the host specification, is always required; as is the ‘:’, leading the port specification. Specify either hostname or hostaddr. Specify either service name list or port number list. If a service name list is specified, the protocol may also need to be specified if the TCP, UDP and UDPLITE port numbers for the service name are different. Use any case - lower or upper - for protocol. Service names and port numbers may be combined in a list whose entries are separated by commas and whose numeric range entries are separated by minus signs. There may be no embedded spaces, and all service names must belong to the specified protocol. Since service names may contain embedded minus signs, the starting entry of a range can’t be a service name; it can be a port number, however.

举例:
lsof -i6 #IPv6 only
losf -i TCP:25 #TCP and port 25
losf -i @1.2.3.4 #Internet IPv4 host address 1.2.3.4
losf -i @[3ffe:1ebc::1]:1234 #Internet IPv6 host address 3ffe:1ebc::1, port 1234
losf -i UDP:who #UDP who service port
losf -i TCP@lsof.itap:513 #TCP, port 513 and host name lsof.itap
losf -i tcp@foo:1-10,smtp,99 #TCP, ports 1 through 10, service name smtp, port 99, host name foo
losf -i tcp@bar:1-smtp #TCP, ports 1 through smtp, host bar

然而,当我们要查询程序打开的端口号时,可以用如下命令查看:
cherry@localhost libevent$ lsof -i | grep -i "server3" | grep -v grep
server3   1026 cherry    3u  IPv4 0x60f998b5c292148f      0t0  TCP *:5778 (LISTEN)查找结果列出了程序名,PID,属主用户, IP 版本,最后一列就是我们要找的端口号。

这篇关于Linux查看程序占用的端口-lsof的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/962183

相关文章

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Mysql实现范围分区表(新增、删除、重组、查看)

《Mysql实现范围分区表(新增、删除、重组、查看)》MySQL分区表的四种类型(范围、哈希、列表、键值),主要介绍了范围分区的创建、查询、添加、删除及重组织操作,具有一定的参考价值,感兴趣的可以了解... 目录一、mysql分区表分类二、范围分区(Range Partitioning1、新建分区表:2、分

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信