「Linux查看本机端口:一步到位」

1. 简介

任何一台计算机在进行网络通信的过程中,都会开放一些端口(port)以便于与其他计算机进行数据交互。在Linux系统中,我们可以使用一些命令来查看本机开放的端口和端口的状态,本文将为大家介绍如何使用这些命令来查看本机端口的情况。

2. netstat命令

netstat 命令是Linux中一个常用的网络命令,可以用来查看网络状态,包括网络连接、路由表、网络接口、网络协议等信息。其中,使用以下命令可以查看本机开放的端口。

2.1 netstat -an

使用 netstat -an 命令可以列出所有的网络连接和监听端口,其中被监听的端口标注为 "LISTEN"状态。 例如:

$ netstat -an

Proto Recv-Q Send-Q Local Address Foreign Address State

tcp6 0 0 ::1:631 :::* LISTEN

tcp6 0 0 :::22 :::* LISTEN

tcp6 0 0 ::1:5432 :::* LISTEN

上述示例中,第一列表示协议类型(tcp6表示IPv6协议的TCP连接),第二和第三列分别表示接收和发送缓存队列,第四列 Local Address 列出了本地服务器的IP地址和端口号(::1:631),第五列 Foreign Address 显示连接到本地服务器的远程服务器地址和端口号(*:*),最后一列 State 显示连接状态。

我们可以通过 grep LISTEN 命令来筛选出本机正在监听的端口。例如:

$ netstat -an | grep LISTEN

tcp6 0 0 ::1:631 :::* LISTEN

tcp6 0 0 :::22 :::* LISTEN

tcp6 0 0 ::1:5432 :::* LISTEN

此时显示的结果只包含 LISTEN 状态的端口。

2.2 netstat -tunlp

使用 netstat -tunlp 命令可以列出所有TCP和UDP网络连接以及它们所对应的进程名。其中,t表示只显示TCP连接,u表示只显示UDP连接,n表示用IP地址和端口号来显示连接信息,l表示只显示处于监听状态的连接,p表示显示连接所对应的进程名。例如:

$ netstat -tunlp

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:22 0.0.0.0:* LISTEN 997/sshd

tcp6 0 0 :::22 :::* LISTEN 997/sshd

udp 0 0 0.0.0.0:68 0.0.0.0:* 520/dhclient

udp 0 0 0.0.0.0:5353 0.0.0.0:* 608/avahi-daemon: r

udp 0 0 0.0.0.0:631 0.0.0.0:* 1083/cupsd

udp6 0 0 :::5353 :::* 608/avahi-daemon: r

上述示例中,第五列 PID/Program name 显示了连接对应的进程名。例如,第一行所对应的进程名为 sshd。

3. lsof命令

lsof 命令也是一个常用的Linux命令,可以查看文件和网络连接等信息,我们可以使用它来查看本机正在使用的端口。其中,使用以下命令可以查看所有正在使用的套接字信息:

3.1 lsof -i

使用 lsof -i 命令可以列出目前正在使用的网络连接,包括所使用的协议、本地地址、远程地址和状态等信息。例如:

$ lsof -i

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

dnsmasq 1180 root 5u IPv4 27705 0t0 UDP 127.0.0.1:53

dnsmasq 1180 root 6u IPv4 27706 0t0 TCP 127.0.0.1:53 (LISTEN)

上述示例中,第一列为进程名,第二列为进程ID,第三列为进程的用户,第四列为文件描述符,第五列为套接字类型,第六列为设备号,第七列为使用协议,第八列为本地地址,第九列为本地端口,第十列为远程地址,第十一列为远程端口,最后一列为连接状态。

我们可以通过 grep LISTEN 命令来筛选出正在监听的端口,例如:

$ lsof -i | grep LISTEN

dnsmasq 1180 root 6u IPv4 27706 0t0 TCP 127.0.0.1:53 (LISTEN)

此时输出的结果只包含处于 LISTEN 状态的端口。

4. 总结

本文介绍了两个Linux命令(netstat和lsof)来查看本机开放的端口的方法。其中, netstat 命令简单易用,通过具体的选项可以查看不同状态的连接和进程信息;而 lsof 命令更加强大,可以查看进程使用的文件、端口和网络信息,以及进程与进程之间的文件和网络使用关系等,并且可以根据多种选项来搜索、过滤结果。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

操作系统标签