linux查看端口号占用命令-netstat

题记

经常会发现,很多时候我们在运行一些带有端口的程序时,程序经常会报端口被占用的问题,比如Tomcat 8080,端口起不来。

查看端口号 netstat

如果发现某个端口被占用后,可以用命令查看,该端口到底是被哪个进程所占用。命令如下:

netstat -pan | grep 5623
#其中5623位端口号

如图:

发现5623的端口,被28425的进程id所占用,继续进一步跟踪,到底是哪个程序所占用了。

通过进程id查找程序–ps

直接通过:ps -aux | grep pid 查看,进程程序名称,

通过netstat查找端口占用的pid,再通过pid进一步的查找程序名称,能够确认目前冲突的端口是哪个程序已经占用了,我们是重新启用换一个端口号,还是结束已经占用的端口号所用的程序,清空被占用的端口号。

netstat 中参数选项
-a或--all:显示所有连线中的Socket; 
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址; 
-c或--continuous:持续列出网络状态; 
-C或--cache:显示路由器配置的快取信息; 
-e或--extend:显示网络其他相关信息; 
-F或--fib:显示FIB; 
-g或--groups:显示多重广播功能群组组员名单; 
-h或--help:在线帮助; 
-i或--interfaces:显示网络界面信息表单; 
-l或--listening:显示监控中的服务器的Socket; 
-M或--masquerade:显示伪装的网络连线; 
-n或--numeric:直接使用ip地址,而不通过域名服务器; 
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称; 
-o或--timers:显示计时器; 
-p或--programs:显示正在使用Socket的程序识别码和程序名称; 
-r或--route:显示Routing Table; 
-s或--statistice:显示网络工作信息统计表; 
-t或--tcp:显示TCP传输协议的连线状况; 
-u或--udp:显示UDP传输协议的连线状况; 
-v或--verbose:显示指令执行过程; 
-V或--version:显示版本信息; 
-w或--raw:显示RAW传输协议的连线状况; 
-x或--unix:此参数的效果和指定"-A unix"参数相同; 
--ip或--inet:此参数的效果和指定"-A inet"参数相同。

更多教程:go2coding

### Linux 查看端口占用命令Linux 系统中,`netstat` 和 `lsof` 是两个常用的工具来查看端口占用情况。以下是它们的具体用法: #### 使用 `netstat` 查看端口占用 可以通过以下几种方式使用 `netstat` 来查询端口的相关信息。 - **查看当前所有 TCP 端口** 执行以下命令可以显示所有的监听中的 TCP 端口及其对应的程序名称。 ```bash netstat -ntlp ``` 这里的选项含义如下: - `-n`: 不解析主机名和服务名; - `-t`: 显示 TCP 协议的信息; - `-l`: 只显示正在监听的套接字; - `-p`: 显示与每个连接关联的进程 ID (PID) 和程序名称[^1]。 - **查看特定端口的占用情况** 如果只想查找某个具体端口(例如 8080),可以结合 `grep` 或者正则表达式过滤结果。 ```bash netstat -tunlp | grep '8080' ``` 对于多个端口的情况,则可使用 `egrep` 的多条件匹配功能。 ```bash netstat -tunlp | egrep '(2181|8080)' ``` - **查看处于活动状态下的系统资源信息** 若要了解目前有哪些网络连接以及其详细的状态数据包统计等资料时可用此方法获取更全面的数据集。 ```bash netstat -atunp ``` 如果尚未安装 `net-tools` 软件包而无法运行上述指令的话, 需要先通过 YUM 安装它. ```bash yum -y install net-tools ``` #### 使用 `lsof` 查找端口被哪个进程所占 另一种有效的方法就是利用文件描述符管理器——即所谓的 open files manager ——也就是我们所说的 lsof 工具. - **基本语法结构** 查询某指定端口号是否已被打开并由哪一个应用程序控制着呢? ```bash lsof -i:<port_number> ``` 如需定位到第8080号位子上是否有服务实例存在就输入下面这条语句即可完成操作啦~ ```bash lsof -i:8080 ``` 同样地,在初次尝试之前可能还需要确认一下本机环境里有没有预置好这个实用的小玩意儿哦~如果没有的话也不要着急哈,只需要简单执行一句命令就能搞定咯! ```bash yum -y install lsof ``` 另外还有一种场景比较特殊一点的就是当已知目标进程的名字或者是部分关键字的时候怎么快速找到它的实际工作位置?这时候就可以借助 ps 加 filter 技巧再加上刚才提到过的 netstat 功能模块一起来实现目的了哟! 比如假设我们现在想知道名为 myapp 的那个家伙到底绑定了哪些外部接口地址吧? 那么我们可以按照这样的顺序来进行排查分析过程: 第一步当然是找出符合条件的目标对象列表喽, 第二步再把得到的结果进一步传递给下一个环节做深入挖掘处理就可以了😊 ```bash ps -ef | grep myapp # 获取 PID 后继续下一步... netstat -anp | grep <PID> ``` 以上就是在 Linux 平台上针对不同需求所提供的几类解决方案介绍完毕啦~希望对你有所帮助😄
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go2coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值