📅  最后修改于: 2023-12-03 15:22:25.775000             🧑  作者: Mango
在 Linux 中,网络连接的应用程序使用端口与其他应用程序通信。如果您的网络连接存在问题,您可以使用命令行工具来检查端口和正在使用它的应用程序。
以下是使用 Shell/Bash 在 Linux 中检查端口和应用程序的方法:
您可以使用 netstat
命令来检查正在使用的端口。该命令列出了当前网络连接的详细信息,包括本地地址、外部地址和正在使用的端口。
sudo 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
udp 0 0 0.0.0.0:68 0.0.0.0:*
udp 0 0 0.0.0.0:5353 0.0.0.0:*
udp6 0 0 :::546 :::*
udp6 0 0 :::5353 :::*
您可以使用 lsof
命令指定端口号并查看正在运行的应用程序。命令将返回使用该端口的应用程序的详细信息。
sudo lsof -i :<port_number>
在上面的命令中,将 <port_number>
替换为要检查的端口号。
以下是输出的例子:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 57663 root 3u IPv4 36076 0t0 TCP *:22 (LISTEN)
sshd 57663 root 4u IPv6 36079 0t0 TCP *:22 (LISTEN)
sshd 57697 user1 3u IPv4 36076 0t0 TCP *:22 (LISTEN)
sshd 57697 user1 4u IPv6 36079 0t0 TCP *:22 (LISTEN)
输出显示了使用端口 <port_number>
的所有应用程序。
要获取更多有关使用端口的详细信息,您可以使用 sockstat
命令。该命令列出了有关连接的更多详细信息,例如 UID、PID、用户名和连接状态等。
sudo sockstat -l -p <port_number>
再次将 <port_number>
替换为要检查的端口号。
以下是输出的例子:
USER IP PORT PID CMD
root * 22 57663 sshd: [priv]
root * 22 57697 sshd: [priv]
user1 * 22 57697 sshd: user1@pts/1 (sshd)
这些命令可以帮助您找出正在使用某个端口的应用程序。如果您需要排除网络连接问题或查找出现问题的服务,使用这些命令将非常有用。