本文主要介绍在LINUX下如何检查一个端口是否被占用的方法。通过示例代码进行了非常详细的介绍,对于大家的学习或者工作都有一定的参考价值。有需要的朋友下面跟边肖学习。
之前一直没搞清楚端口是否被占用。问了很多人,终于得到了。现在我总结一下:
1.netstat -anp |grep 端口号
如下,我以3306为例,netstat -anp |grep 3306(这里注意,我是普通用户操作,所以加了sudo。如果我以root用户的身份操作,您可以不用sudo来查看它),如下图1所示:
在图1中,LISTEN的监控状态表明它已经被占用,最后一列显示它被服务mysqld占用。检查具体端口号,如图1所示的线表示被占用。
2.netstat -nultp(此处不用加端口号)
该命令用于查看目前已经使用的所有端口,如图2所示:
从图中可以看出,我的82端口没有被占用。
3.netstat -anp |grep 82查看82端口的使用情况,如图3:
可以看到没有监听线,所以说明没有被占用。这里注意,图中所示的监听并不代表端口被占用,不要和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 @ elk 3 ~]# netstat-tnlp | grep ssh
方法3:使用lsof命令
您也可以使用端口号进行检查。
[root @ elk 3 ~]# netstat-lntp | grep 860
4:使用nmap命令
[root@elk3 ~]# nmap -sV -p 22本地主机
在大多数情况下,上面的输出不会显示进程的实际端口号。此时,建议使用以下journalctl命令检查日志文件中的详细信息。
[root @ elk 3 ~]# journal CTL | grep-I ssh
1 2月1日21: 43: 36 Elk3systemd [1]:正在启动OpenSSH服务器守护进程.
1 2月01日21: 43: 36 Elk3sshd [860]:服务器监听0.0.0.0端口22。
December 01 21:43:36 elk 3 sshd[860]:服务器侦听:port22。
1 2月01日21: 43: 36 Elk3systemd [1]:启动了OpenSSH服务器守护进程。
12月01日21: 44: 19 Elk3sshd [1106]:接受来自192.168.122.1端口49316 SSH2的root密码
December 01 21:44:19 elk 3 sshd[1106]:PAM _ UNIX(sshd:session):由(uid=0)为用户root打开了会话
关于如何在LINUX中检查端口是否被占用的这篇文章到此为止。关于LINUX端口占用的更多信息,请搜索我们以前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。