通过netstat命令查看Linux的端口占用

news2024/11/25 5:34:18

一、netstat

完整写作network statistics,简写为netstat ,常用的几个参数为lntup

-l : 仅展示监听状态下的程序(state 为LISTEN)。
-n :会使用ip+端口的方式,来进行地址的描述。不使用-n就会变成服务器的名称+端口号 或者ip地址+协议。
-t与-u: 查看tcp协议和udp协议。
-p : 会把程序占用的进程名称和PID(program id,进程ID)。

netstat -lntup | head:查看当前几个端口使用情况。
netstat -lntup或者netstat -tlunp、也就是说参数-tlunp的顺序改变效果相同:查看启动的线程。

netstat -lntup | grep nginx :查看启动的线程中是否有名称中带有nginx的。
来自我这篇文章:Windows11与CentOS7.9 2009下安装配置nginx后启动整个项目中2.1 下载与安装配置

//6、查看nginx的进程
yum install net-tools -y
netstat -lntup | grep nginx

//查看启动的nginx进程
ps -ef | grep nginx

yum install lsof  
lsof -i :80

netstat -lntup | grep nginx 截图
在这里插入图片描述
netstat -lntup | grep docker:查看启动的线程中是否有名称中带有docker的。

(Java相关)
netstat -tlunp | grep java:查看启动的进程中是否有名称中带有java的,会显示其PID值(进程ID)
ps -p PID值 -f:例如ps -p 18391 -f,就是显示哪个程序使用了java,一般为java -jar命令,例如java -jar testdemo-0\.0\.1-SNAP.jar
ps -p PID值 -ef:显示的更加详细。
find . -name "testdemo-0\.0\.1-SNAP*" :查询"testdemo-0.0.1-SNAP*"文件的位置,*为通配符;
\.表示转义为.,所以,find . -name "demo-0\.0\.1-SNAP*"就是find . -name "demo-0.0.1-SNAP*"
相关:CentOS: $‘\r‘: command not found
Windows11与CentOS7下配置与检测JDK与Maven环境变量-中安装jdk-8u371-linux-x64.tar.gz

netstat -tlnp :查看当前所有的tcp端口。
netstat -lntup |grep 80 :查看所有80端口使用情况。

netstat tlnp | grep 端口号:查看此端口号的程序是否启动,例如netstat tlnp | grep 80

//netstat -ano | findstr "端口号"
netstat -ano | findstr "81"netstat -ano | findstr 81

[root@localhost ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:1521            0.0.0.0:*               LISTEN      2324/docker-proxy   
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      868/beam.smp        
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      868/beam.smp        
tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN      1566/epmd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      869/sshd: /usr/sbin 
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      867/cupsd           
tcp6       0      0 :::5672                 :::*                    LISTEN      868/beam.smp        
tcp6       0      0 :::1521                 :::*                    LISTEN      2329/docker-proxy   
tcp6       0      0 :::4369                 :::*                    LISTEN      1566/epmd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      867/cupsd           
tcp6       0      0 :::22                   :::*                    LISTEN      869/sshd: /usr/sbin 
udp        0      0 0.0.0.0:41722           0.0.0.0:*                           763/avahi-daemon: r 
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           763/avahi-daemon: r 
udp        0      0 127.0.0.1:323           0.0.0.0:*                           793/chronyd         
udp6       0      0 :::5353                 :::*                                763/avahi-daemon: r 
udp6       0      0 :::59094                :::*                                763/avahi-daemon: r 
udp6       0      0 ::1:323                 :::*                                793/chronyd         
[root@localhost ~]# netstat -tlunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:1521            0.0.0.0:*               LISTEN      2324/docker-proxy   
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      868/beam.smp        
tcp        0      0 0.0.0.0:25672           0.0.0.0:*               LISTEN      868/beam.smp        
tcp        0      0 0.0.0.0:4369            0.0.0.0:*               LISTEN      1566/epmd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      869/sshd: /usr/sbin 
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      867/cupsd           
tcp6       0      0 :::5672                 :::*                    LISTEN      868/beam.smp        
tcp6       0      0 :::1521                 :::*                    LISTEN      2329/docker-proxy   
tcp6       0      0 :::4369                 :::*                    LISTEN      1566/epmd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      867/cupsd           
tcp6       0      0 :::22                   :::*                    LISTEN      869/sshd: /usr/sbin 
udp        0      0 0.0.0.0:41722           0.0.0.0:*                           763/avahi-daemon: r 
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           763/avahi-daemon: r 
udp        0      0 127.0.0.1:323           0.0.0.0:*                           793/chronyd         
udp6       0      0 :::5353                 :::*                                763/avahi-daemon: r 
udp6       0      0 :::59094                :::*                                763/avahi-daemon: r 
udp6       0      0 ::1:323                 :::*                                793/chronyd         
[root@localhost ~]# netstat -lntup | grep nginx   //查看启动的线程中是否有名称中带有nginx的
[root@localhost ~]# netstat -lntup | grep docker  //查看启动的线程中是否有名称中带有docker的
tcp        0      0 0.0.0.0:1521            0.0.0.0:*               LISTEN      2324/docker-proxy   
tcp6       0      0 :::1521                 :::*                    LISTEN      2329/docker-proxy   
[root@localhost ~]# 

说明
0.0.0.0:代表本机上所有可用的任意地址, 0 0.0.0.0:1521 表示本机上所有地址的1521端口0 0.0.0.0:15672 表示表示本机上所有地址的15672端口
tcp 0 0 0.0.0.0:1521 :表示监听所有地址的TCP1521端口。

state参数含义

LISTEN:(Listening for a connection.)侦听来自远方的TCP端口的连接请求
SYN-SENT:(Active; sent SYN. Waiting for a matching connection request after having sent a connection request.)再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:(Sent and received SYN. Waiting for a confirming connection request acknowledgment after having both received and sent connection requests.)再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED:(Connection established.)代表一个打开的连接
FIN-WAIT-1:(Closed; sent FIN.)等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:(Closed; FIN is acknowledged; awaiting FIN.)从远程TCP等待连接中断请求
CLOSE-WAIT:(Received FIN; waiting to receive CLOSE.)等待从本地用户发来的连接中断请求
CLOSING:(Closed; exchanged FIN; waiting for FIN.)等待远程TCP对连接中断的确认
LAST-ACK:(Received FIN and CLOSE; waiting for FIN ACK.)等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:(In 2 MSL (twice the maximum segment length) quiet wait after close. )等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:(Connection is closed.)没有任何连接状态

二、其他排查命令

2.1 命令相关文章

来自我这篇文章:查看CentOS版本及系统位数与设置CentOS 7.9 2009 防火墙配置放开端口的命令与过程中的2.1 命令汇总

//其他排查命令
//查看启动的nginx进程
ps -ef | grep nginx

//查看端口占用信息
//1、安装lsof
//执行lsof -i:8083命令时报错-bash: lsof: command not found,就需要安装lsof
yum install lsof

//2、查看端口占用信息
lsof -i:端口
//例如将nginx默认的80端口修改为8083端口前,查看8083端口有无被占用
lsof -i:8083

losf(list open files 列出操作系统的打开的文件)的其他组合命令:
//显示此文件名的进程。
lsof  文件名

//显示该进程值对应的进程打开的文件。
lsof -p PID(进程ID)

来自我这篇文章:Windows11与CentOS7.9 2009下安装配置nginx后启动整个项目中1.2.1 方法1-直接修改nginx的默认端口值(推荐)

//1.2.1 方法1-直接修改nginx的默认端口值(推荐)
//1-进入nginx解压目录
d:
cd  D:\develop\nginx-1.24.0\

//2-启动nginx
start nginx

//3-查看nginx进程  如果显示 信息:没有运行的任务匹配指定标准  执行第4步
tasklist /fi "imagename eq nginx.exe"


//4-查看端口占用,根据端口号81,获取PID(进程ID)
netstat -ano | findstr "端口号"
netstat -ano | findstr "81"或netstat -ano | findstr 81

//5-查看PID对应的进程
tasklist | findstr "进程ID"



//1.2.2 方法2-结束占用80端口的进程
//结束占用80端口的进程:

/1-进入nginx解压目录
d:
cd  D:\develop\nginx-1.24.0\

//2-启动nginx
start nginx

//3-查看nginx进程  如果显示 信息:没有运行的任务匹配指定标准  执行第4步
tasklist /fi "imagename eq nginx.exe"


//4-查看端口占用,根据端口号80,获取PID(进程ID)
netstat -ano | findstr "端口号"
netstat -ano | findstr "80"或netstat -ano | findstr 80

//5-根据PID结束进程
taskkill /F /PID PID值
或者
taskkill -f -pid PID值
或者(可能会直接结束该程序,相当于任务管理器中结束)
taskkill  /f /t /im PID值

2.2 常用命令

ps -ef | grep nginx

// 从根目录开始找nginx.conf
find / -name nginx.conf

[root@freedomdjc local]# find / -name nginx.conf
/var/lib/docker/overlay2/70c0652799a9d95fb4ee7e52e35e0f3b2ea2e786264bbbf29fbfedc16ac3acb2/diff/etc/nginx/nginx.conf
/usr/local/nginx-1.24.0/conf/nginx.conf
/usr/local/nginx1.24.0/conf/nginx.conf
/opt/docker-compose/ruoyicloudplus/docker/nginx/conf/nginx.conf
/docker/nginx/conf/nginx.conf
[root@freedomdjc local]#

//新建目录/data,并且进入/data目录,编辑uwsgi.ini文件
mkdir /data&&cd /data &&vim uwsgi.ini

//移动 /root/20231029/GetServerInfo.py 文件到/data目录中。(/root/20231029/GetServerInfo.py已经不存在了,若是cp命令复制,GetServerInfo.py就会存在
mv /root/20231029/GetServerInfo.py /data

//查看系统默认安装的python的位置
whereis python

//查看系统默认安装的python的位置
[root@iZbp1fnrewknornmqkhqpiZ ~]# whereis python
python: /usr/bin/python3.6m-x86_64-config /usr/bin/python3.6-config /usr/bin/python3.6m /usr/bin/python /usr/bin/python3.6m-config /usr/bin/python2.7 /usr/bin/python3.6 /usr/lib/python2.7 /usr/lib/python3.6 /usr/lib64/python2.7 /usr/lib64/python3.6 /etc/python /usr/local/lib/python3.6 /usr/include/python3.6m /usr/include/python2.7 /usr/share/man/man1/python.1.gz
[root@iZbp1fnrewknornmqkhqpiZ ~]# 

//查看python在/usr/bin目录中的内容
cd /usr/bin
ll python*

//查看python在/usr/bin目录中的内容
[root@iZbp1fnrewknornmqkhqpiZ bin]# cd /usr/bin
[root@iZbp1fnrewknornmqkhqpiZ bin]# ll python*
lrwxrwxrwx 1 root root     7 Jul 18 17:31 python -> python2
lrwxrwxrwx 1 root root     9 Jul 18 17:31 python2 -> python2.7
-rwxr-xr-x 1 root root  7144 Jun 20 19:37 python2.7
lrwxrwxrwx 1 root root     9 Jul 18 17:29 python3 -> python3.6
-rwxr-xr-x 2 root root 11336 Jun 20 19:55 python3.6
lrwxrwxrwx 1 root root    17 Jul 18 17:29 python3.6-config -> python3.6m-config
-rwxr-xr-x 2 root root 11336 Jun 20 19:55 python3.6m
-rwxr-xr-x 1 root root   173 Jun 20 19:54 python3.6m-config
-rwxr-xr-x 1 root root  3403 Jun 20 19:39 python3.6m-x86_64-config
lrwxrwxrwx 1 root root    16 Jul 18 17:29 python3-config -> python3.6-config
[root@iZbp1fnrewknornmqkhqpiZ bin]# 

python指向的是python2,python2指向的是python2.7,因此我们可以装个python3,然后将python指向python3,然后python2指向python2.7,那么两个版本的python就能共存了。
过程可参考:Centos7安装并配置Python3环境

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1161521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySql优化经验分享

一条sql的具体执行过程 连接 我们怎么查看MySQL当前有多少个连接? 可以用show status命令,模糊匹配Thread, Show global status like "Thread%" show global variables like wait timeout;—非交互式超时时间,如JDBC…

HDFS集群环境部署(超级详细!!)

一、部署Hadoop的关键点 1.上传,解压到/export/server,配置软链接 2.修改4个配置文件,workers,hadoop.env.sh,core-stie.xml,hdfs-site.xml 3.SCP分发到root2,root3,并设置环境变量 4.创建数据目录,并修改文…

基于springboot实现游戏分享网站系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现游戏分享网站演示 摘要 网络的广泛应用给生活带来了十分的便利。所以把游戏分享管理与现在网络相结合,利用java技术建设游戏分享网站,实现游戏分享的信息化。则对于进一步提高游戏分享管理发展,丰富游戏分享管理经验能起到…

PHP短网址短链接生成源码/长链接在线缩短源码/支持黑夜模式

源码简介: PHP短网址短链接生成源码,长链接在线缩短源码,它支持黑夜模式,反应灵敏的设计,优雅简洁的界面,大方简约。PHP源码,强大的短网址生成源码。 简洁、优雅、反应灵敏的设计。创建URL、创…

分库分表分区

分库分表分区 数据库分库、分表和分区是水平切分数据库的策略,有助于提高数据库性能、可伸缩性和负载均衡。 概念 **分库:**将一个库的数据拆分到多个相同的库中,访问的时候访问一个库。**分表:**把一个表的数据放到多个表中&a…

【数智化案例展】拜耳虫虫拜拜——全渠道倾听客户声音,持续指引产品改善与服务升级...

‍ 光速斑马案例 本项目案例由光速斑马投递并参与数据猿与上海大数据联盟联合推出的《2023中国数智化转型升级创新服务企业》榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 虫虫拜拜是拜耳集团成立的上门除虫服务品牌,创立初衷是通过专业科学的…

MySQL Binlog实战应用之一

一、前言 开发业务系统尤其是与财务相关的系统,需要记录每一笔变更操作的日志,这一般有两种实现方案。 1、代码中通过AOP实现,提供注解跟踪记录日志,这种方案能够比较清晰地以业务角度记录操作日志,但记录变更前的旧…

uniapp黑马优购

配置tabbar 使用 npm install escook/request-miniprogram 进行http请求 挂载到 uni.$http 上 uniapp小程序分包 访问的时候 携带分包目录 /subpkg/goods_detail/goods_detail git分支使用 # 创建并使用分支 git checkout -b home git commit # 推送到远程的home分支…

“2024中国电子信息展会“百年历史展会,4月深圳,7月成都,11月上海

2024年中国电子信息博览会,将如一位游历全国的使者,跨越千山万水,让人们见证中国电子信息产业的辉煌成就。它的足迹将遍布全国多个地区,4月走进繁花似锦的深圳,7月拥抱历史悠久的成都,11月则落脚国际化的上…

什么是NPM(Node Package Manager)?它的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

IBM LSF 作业负载管理

了解 LSF 作业生命周期。 使用 bsub 将作业提交到队列,并指定作业提交选项以修改默认作业行为。 提交的作业在队列中等待,直到将它们调度并分配到主机上来执行。 在作业分发时,LSF 会检查哪些主机有资格运行该作业。 一、作业生命周期 LSF …

5.5 TCP报文段的首部格式

思维导图: 5.5 TCP报文段的首部格式 基本概念 TCP报文段:包含首部和数据两部分,首部至少20字节。作用:首部字段定义了TCP的功能和行为。长度:首部长度可变,基础首部20字节,可添加选项。 首部…

初学编程教程视频教程,初学编程入门知识

初学编程教程视频教程,初学编程入门知识 给大家分享一款中文编程工具,零基础轻松学编程,不需英语基础,编程工具可下载。 这款工具不但可以连接部分硬件,而且可以开发大型的软件,向如图这个实例就是用这个…

零信任网络:一种全新的网络安全架构

随着网络技术的不断发展,网络安全问题日益凸显。传统的网络安全策略往往基于信任和验证,但这种信任策略存在一定的局限性。为了解决这一问题,零信任网络作为一种全新的网络安全架构,逐渐受到人们的关注。本文将对零信任网络的概念…

富士康“吃饭砸碗”,3年时间推动印度制造的iPhone翻倍增长

近期富士康备受关注,业界人士查找了富士康、印度制造的数据发现富士康为印度制造iPhone做出了“卓越”贡献,3年时间推动印度制造的iPhone翻倍增长,为印度制造立下了汗马功劳。 这几年苹果力推富士康、纬创、和硕等赴印设厂生产iPhone&#xf…

SpringCloud 微服务全栈体系(十一)

第十章 RabbitMQ 三、SpringAMQP SpringAMQP 是基于 RabbitMQ 封装的一套模板,并且还利用 SpringBoot 对其实现了自动装配,使用起来非常方便。 SpringAmqp 的官方地址:https://spring.io/projects/spring-amqp SpringAMQP 提供了三个功能&…

【protobuf】protobuf自定义数据格式,CMake编译C++文件读写自定义数据

protobuf自定义数据格式,CMake编译文件读写自定义数据 1.protobuf安装2.定义.proto文件3.编写main.cpp4.编写CMAkeLists配置文件5.运行 1.protobuf安装 protobuf库链接 2.定义.proto文件 新建一个Person.proto文件和一个Animal.proto文件,内容如下&…

在Node.js中,什么是模块(module)?如何导入和导出模块?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

Oracle JDK 和OpenJDK两者有什么异同点

Oracle JDK 和 OpenJDK 是两种不同版本的 Java Development Kit(Java 开发工具包),它们都提供了用于开发 Java 程序的一系列工具和库。以下是它们之间的一些主要异同点: 相同点: 功能:在大多数情况下&…

VS2022 开发方式

使用 C# 在VS 2022 上开发时,发现有多种项目类型可以创建。这些类型放一起容易搞混,于是记录一下各种类型的区别。 这里主要介绍windows控制台程序、MFC程序、WPF程序、WinForm程序的特点。 创建哪种应用? 创建控制台应用 Windows控制台程序…