1. Linux上查看端口信息的常用命令
在Linux系统上,我们经常需要查看当前正在监听的端口,以及端口与进程之间的关联关系。下面我将介绍几个常用的命令来实现这个目标。
1.1. netstat命令
netstat命令可以显示网络连接、路由表以及网络接口信息。我们可以使用netstat命令查看当前监听的端口。
以下是netstat命令的常用选项:
-t: 显示TCP连接
-u: 显示UDP连接
-l: 仅显示监听状态的连接
-p: 显示与端口关联的进程
netstat -tuln
这个命令将显示所有TCP和UDP连接的监听状态,以及与其关联的进程。
以下是示例输出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
上面的输出显示了当前正在监听的端口,以及它们所关联的进程。例如,在本例中,TCP端口22与sshd进程关联,TCP端口5432与postgres进程关联。
需要注意的是,netstat命令有很多其他选项可以用来过滤显示的结果,具体可以使用man netstat
命令查看netstat的帮助文档。
1.2. ss命令
ss命令是netstat命令的现代替代品,并提供了更多功能和更快的速度。ss命令可以显示Socket统计信息,包括所有套接字(sockets)的状态,可以显示所有的端口信息。
ss -tuln
以上命令与之前的netstat命令相同,显示所有TCP和UDP连接的监听状态以及与其关联的进程。
以下是示例输出:
Listn
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
上面的输出显示了正在监听的TCP端口,以及与它们关联的进程。
ss命令的优点是速度快,并且可以根据各种标准过滤结果。可以使用man ss
命令查看ss的帮助文档了解更多选项。
1.3. lsof命令
lsof命令是“list open files”的缩写,可以列出在Linux系统上打开的文件以及与之关联的进程信息。
lsof -i :端口号
以上命令将显示使用指定端口的进程信息。
以下是示例输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 108 root 3u IPv4 5612 0t0 TCP *:22 (LISTEN)
上面的输出显示了使用端口22的进程信息。
lsof命令的优点是可以显示打开的文件和网络连接的相关信息,但速度相对较慢。可以使用man lsof
命令查看lsof的帮助文档了解更多选项。
2. 总结
在Linux系统上,我们可以使用netstat、ss和lsof等命令来查看端口信息和与之关联的进程。
netstat是最常用的命令,但已经被ss命令取代。ss命令提供了更多的功能和更快的速度。lsof命令则适用于查看打开的文件和网络连接的详细信息。
通过了解这些命令的使用,我们可以更方便地查看Linux系统上的端口信息,快速定位与端口相关的问题。