端口状态有open、filtered、closed或unfiltered。Open端口是指当前服务器上应用程序正在侦听该端口上连接/数据包。下面华纳云为大家解释四种用于检查开放端口的方法,找出当前Linux中哪个应用程序正在监听哪个端口。
Netstat命令是一种广泛使用工具,看要查询有关于Linux网络子系统的信息。因此可以用来找出全部开放端口:
$ sudo netstat -ltup
其中,该标志-l告诉 netstat 打印所有监听套接字,-t显示所有 TCP 连接,-u显示所有 UDP 连接并-p启用打印在端口上监听的应用程序/程序名称。要打印数字值而不是服务名称,请添加-n标志。
还可以使用grep来找哪个应用程序正在监听特定端口:
$ sudo netstat -lntup | sudo netstat -lntup grep “nginx”
或者,您可以指定端口并找到绑定到的应用程序,如:
$ sudo netstat -lntup | sudo netstat -lntup grep ":80"
ss命令是另外一种显示套接字信息的有效工具,输出和netstat输出相似,可以用数值形式展示TCP和UDP连接的监听端口:
$ sudo ss -lntu
使用Nmap命令,Nmap属于一款强大且流行的网络探索工具和端口扫描器。在系统中安装nmap,可以使用默认包管理器:
$ sudo apt install nmap [在 Debian/Ubuntu 上]
$ sudo yum install nmap [在 CentOS/RHEL 上]
$ sudo dnf install nmap [在 Fedora 22+ 上]
扫描Linux系统中全部开放/监听端口,运行以下命令(运行时间比较长):
$ sudo nmap -n -PN -sT -sU -p- 本地主机
Lsof命令也可以用于列出Linux中打开的文件。因为unix/linux中全部都是文件,所以打开的文件可能是流或者网络文件。使用-i选项,列出全部网络文件。还会显示出服务器名称和数字端口:
$ sudo lsof -i
查询具体哪个应用程序正在监听特定端口:
$ sudo lsof -i :80
以上,就是关于Linux系统中查询开放端口的四种方法。还有关于检查哪些进程绑定在特定端口数,如果您还有存在其他疑惑,可以继续联系华纳云帮您解答!