釋放 Linux 系統上的 TCP/IP 埠


簡介

TCP/IP 埠用於連線和與網路上的不同裝置和應用程式進行通訊。在 Linux 中,有時特定埠可能正在被特定應用程式或程序使用,從而阻止其他應用程式使用它。在這種情況下,需要透過停止使用它的程序或應用程式來釋放埠。

在本文中,我們將討論如何在 Linux 系統上釋放 TCP/IP 埠。我們還將討論一些常用的工具和命令,這些工具和命令可用於識別使用特定埠的程序或應用程式並終止它。

識別使用埠的程序或應用程式

在釋放埠之前,我們需要識別正在使用它的程序或應用程式。有幾種工具和命令可以用來做到這一點。

netstat 工具

netstat 命令是一個有用的工具,用於顯示網路統計資訊和網路連線的狀態。它可以用來列出所有活動的 TCP/IP 連線,包括它們正在使用的埠。

要列出所有活動的 TCP/IP 連線,請使用以下命令:

$ netstat -atn

這將顯示所有活動 TCP 連線的列表,以及本地和遠端地址、連線狀態以及使用連線的程序的PID(程序 ID)。

要僅列出特定程序正在使用的埠,請使用以下命令:

$ netstat -atn | grep <process name>

例如,要列出Apache Web 伺服器正在使用的埠,請使用以下命令:

$ netstat -atn | grep apache

lsof 工具

lsof 命令(“list open files”的縮寫)是另一個有用的工具,用於識別使用特定埠的程序或應用程式。它可以用來列出系統上的所有開啟的檔案,包括網路套接字和埠。

要列出所有開啟的網路套接字及其關聯的PID,請使用以下命令:

$ lsof -i

要僅列出特定程序正在使用的埠,請使用以下命令:

$ lsof -i | grep <process name>

例如,要列出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 程序的PID1485。要終止該程序,請使用以下命令:

$ 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

此命令將關閉處於ESTABLISHED狀態的所有使用埠80的連線。

結論

在本文中,我們討論瞭如何在 Linux 系統上釋放 TCP/IP 埠。我們還討論了一些常用的工具和命令,這些工具和命令可用於識別使用特定埠的程序或應用程式並終止它。透過遵循這些步驟,您可以輕鬆釋放埠並允許其他應用程式或程序使用它。

更新於:2023年1月4日

5K+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.