在 Linux 上释放 TCP/IP 端口
简介
TCP/IP 端口用于连接和与网络上的不同设备和应用程序进行通信。在 Linux 中,有时某个特定端口可能被某个应用程序或进程占用,从而阻止其他应用程序使用该端口。在这种情况下,需要通过停止正在使用该端口的进程或应用程序来释放该端口。
在本文中,我们将讨论如何在 Linux 系统上释放 TCP/IP 端口。我们还将讨论一些常用工具和命令,用于识别并终止正在使用特定端口的进程或应用程序。
识别正在使用端口的进程或应用程序
在释放端口之前,我们需要识别正在使用它的进程或应用程序。有多种工具和命令可用于执行此操作。
netstat 工具
netstat 命令是显示网络统计信息和网络连接状态的实用工具。它可用于列出所有活动的 TCP/IP 连接,包括它们正在使用的端口。
要列出所有活动的 TCP/IP 连接,请使用以下命令 -
$ netstat -atn
这将显示所有活动的 TCP 连接的列表,以及本地和远程地址、连接状态以及使用该连接的进程的 PID(进程 ID)。
要仅列出特定进程正在使用的端口,请使用以下命令 -
$ netstat -atn | grep <进程名称>
例如,要列出 Apache Web 服务器正在使用的端口,请使用以下命令
$ netstat -atn | grep apache
lsof 工具
lsof 命令("list open files"的缩写)是另一个用于识别使用特定端口的进程或应用程序的有用工具。它可用于列出系统上所有打开的文件,包括网络套接字和端口。
要列出所有打开的网络套接字及其关联的PID,请使用以下命令 -
$ lsof -i
要仅列出特定进程正在使用的端口,请使用以下命令 -
$ lsof -i | grep <进程名称>
例如,要列出 Apache Web 服务器正在使用的端口,请使用以下命令
$ lsof -i | grep apache
释放端口
一旦我们确定了正在使用特定端口的进程或应用程序,我们就可以停止它以释放端口。根据进程或应用程序的不同,有几种方法可以执行此操作。
终止进程
如果正在使用端口的进程或应用程序是独立进程,我们可以直接终止它以释放端口。为此,我们需要找到正在使用端口的进程的 PID,然后使用 kill 命令终止它。
例如,如果 Apache Web 服务器正在使用端口 80,我们可以使用 netstat 命令查找其 PID
$ netstat -atn | grep apache tcp 0 0 :::80 :::* LISTEN 1785/httpd
在本例中,Apache 进程的 PID 为 1485。要终止该进程,请使用以下命令
$ kill 1485
停止服务
如果使用该端口的进程或应用程序是服务,我们可以停止该服务以释放端口。为此,我们可以使用 systemctl 命令。
例如,要停止 Apache Web 服务器服务,请使用以下命令
$ systemctl stop httpd
关闭连接
在某些情况下,使用该端口的进程或应用程序可能是网络连接,而不是独立的进程或服务。在这种情况下,我们可以使用 netstat 命令关闭连接并释放端口。例如,要关闭使用端口 80 的连接,请使用以下命令
例如,要关闭使用端口 80 的连接,请使用以下命令 -
$ netstat -atn | grep :80 tcp 0 0 192.168.0.43:80 192.168.0.44:56632 ESTABLISHED 1485/httpd
在本例中,该连接正由 Apache Web 服务器 (PID 1485) 使用。要关闭连接,请使用以下命令
$ netstat -atn -f inet -w 1 | grep :80 | grep ESTABLISHED | awk '{print $7}' |
awk -F '/' '{print $1}' | xargs kill -9
此命令将关闭所有使用 80 端口且处于 ESTABLISHED 状态的连接。
结论
在本文中,我们讨论了如何在 Linux 系统上释放 TCP/IP 端口。我们还讨论了一些常用工具和命令,可用于识别使用特定端口的进程或应用程序并将其终止。按照以下步骤操作,您可以轻松释放端口并允许其他应用程序或进程使用它。
相关文章
有用资源
linux 参考教程 - 该教程包含有关 linux 的更多信息:https://www.cainiaomax.com/linux/

