linux怎么查看端口是否被占用?

之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下:
1.netstat -anp |grep 端口号如下,我以3306为例,netstat -anp |grep 3306(此处备注下,我是以普通用户操作,故加上了sudo,如果是以root用户操作,不用加sudo即可查看)
如下图1:
在这里插入图片描述
图1中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysqld占用,查看具体端口号,只要有如图这一行就表示被占用了。
2.netstat -nultp(此处不用加端口号)该命令是查看当前所有已经使用的端口情况,如图2:
在这里插入图片描述
图中可以看出我的82端口没有被占用
3.netstat -anp |grep 82查看82端口的使用情况,如图3:
在这里插入图片描述

可以看出并没有LISTEN那一行,所以就表示没有被占用。此处注意,图中显示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,查看具体端口时候,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了
在linux中查看进程占用的端口号在Linux 上的 /etc/services 文件可以查看到更多关于保留端口的信息。可以使用以下六种方法查看端口信息。
ss:可以用于转储套接字统计信息。
netstat:可以显示打开的套接字列表。
lsof:可以列出打开的文件。
nmap:是网络检测工具和端口扫描程序。systemctl:是systemd 系统的控制管理器和服务管理器。以下我们将找出sshd 守护进程所使用的端口号。
方法1:使用 ss 命令
[root@elk3 ~]# ss -tlnp | grep sshd
方法2:使用 netstat 命令
[root@elk3 ~]# netstat -tnlp | grep ssh
方法3:使用 lsof 命令也可以使用端口号来检查。
[root@elk3 ~]# netstat -lntp | grep 860
方法4:
使用 nmap 命令
[root@elk3 ~]# nmap -sV -p 22 localhost
大部分情况下,以上的输出不会显示进程的实际端口号。这时更建议使用以下这个journalctl 命令检查日志文件中的详细信息。
[root@elk3 ~]# journalctl | grep -i ssh
12月 01 21:43:36 elk3 systemd[1]: Starting OpenSSH server daemon…
12月 01 21:43:36 elk3 sshd[860]: Server listening on 0.0.0.0 port 22.
12月 01 21:43:36 elk3 sshd[860]: Server listening on :: port 22.
12月 01 21:43:36 elk3 systemd[1]: Started OpenSSH server daemon.
12月 01 21:44:19 elk3 sshd[1106]: Accepted password for root from 192.168.122.1 port 49316 ssh212月 01 21:44:19 elk3 sshd[1106]: pam_unix(sshd:session): session opened for user root by (uid=0)
到此这篇关于LINUX中如何查看某个端口是否被占用的方法的文章就介绍到这了

### 回答1: 可以使用以下命令来查看Linux系统中哪些端口号被占用: 1. netstat命令:使用netstat命令可以查看当前系统中所有的网络连接情况,包括协议、本地地址、外部地址、状态等信息。可以通过以下命令查看端口号被占用情况: ``` netstat -tlnp ``` -t:表示TCP协议; -l:表示监听状态; -n:表示以数字形式显示地址和端口号; -p:表示显示进程信息。 2. lsof命令:使用lsof命令可以查看当前系统中所有打开的文件和进程情况,包括文件名、文件描述符、进程ID等信息。可以通过以下命令查看端口号被占用情况: ``` lsof -i :端口号 ``` :端口号:表示要查看的端口号。 以上两种方法都可以用来查看Linux系统中哪些端口号被占用,具体使用哪种方法取决于个人习惯和需求。 ### 回答2: 在Linux系统中,我们可以使用命令行工具来查看端口号被占用的情况。以下是几种常用方法: 方法一:使用netstat命令 首先需要打开终端,然后输入以下命令: ``` sudo netstat -tlnp ``` 该命令可以列出当前系统所有监听TCP和UDP端口的进程名和ID。其中-t选项表示只列出TCP端口,-l选项表示只列出处于监听状态的端口,-n选项表示以端口号而非服务名称的形式列出结果,-p选项表示同时列出进程的PID和名称。 查看结果后,可以通过进程的PID来确定哪一个进程占用了该端口号。 方法二:使用lsof命令 lsof是一款强大的系统资源监控工具,可以查看系统中正在被哪些进程使用的文件和网络连接。要查看端口号被占用的情况,可以在终端中输入以下命令: ``` sudo lsof -i :端口号 ``` 该命令可以列出当前占用指定端口号的进程的详细信息,包括进程的PID、名称、用户、状态等。此外,还可以通过加入-g和-u选项来分别列出该端口号被哪个组和哪个用户占用。 方法三:使用ss命令 ss是Linux系统自带的一款工具,可以用于网络套接字的统计。可以在终端中输入以下命令: ``` sudo ss -ltnp ``` 该命令可以列出当前所有TCP监听端口和进程的信息。其中-l选项表示只列出处于监听状态的套接字,-t选项表示只列出TCP套接字,-n选项表示不解析地址和端口,-p选项表示同时列出进程的PID和名称。 通过以上三种方法,可以查看Linux系统中端口号的占用情况,进而采取必要的措施,例如关闭对应的进程或修改端口号等。 ### 回答3: 在Linux中,有多种方法可以查看端口号被占用情况。以下是几种常用的方法: 1. 使用netstat命令 使用netstat命令可以查看当前系统中开放的所有端口以及端口状态。通过以下命令可以查看系统中被占用端口: ``` netstat -anp | grep LISTEN ``` 其中,-a选项表示显示所有的开放的网络连接状态,-n选项表示以数字形式显示端口号,-p选项表示显示与该端口相关联的进程信息,grep LISTEN则是用来过滤处于LISTEN状态的端口。 2. 使用lsof命令 lsof是一个用来查看系统打开文件的工具,它也可以查看系统中被占用端口。通过以下命令可以查看系统中被占用端口: ``` lsof -i :端口号 ``` 其中,-i选项表示查看网络连接信息,冒号后面跟着的是端口号。 3. 使用ss命令 ss是一个比netstat更快、更可靠的工具,它可以查看系统中的网络连接状态和进程信息。通过以下命令可以查看系统中被占用端口: ``` ss -lnt | grep 端口号 ``` 其中,-l选项表示显示监听状态的端口,-n选项表示以数字形式显示端口号,-t选项表示只显示TCP相关的连接状态,grep 端口号则是用来过滤指定端口号的结果。 以上是常用的几种查看端口号被占用情况的方法,用户可以根据需求自行选择使用哪种方法。在进行端口号查看时,建议用户使用超级用户权限或者sudo命令来执行命令,以便获取更全面的网络连接和进程信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

偷拨网线的william

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

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

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

打赏作者

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

抵扣说明:

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

余额充值