1. 前言
對於許多使用 Ubuntu 的用戶來說,管理埠口(Port)是維護安全性與網路效能的重要環節。特別是在網路通信與服務運行時,確認開放的埠口是防止攻擊的關鍵。此外,檢查埠口還能幫助進行故障排除與最佳化網路配置。
本文將詳細解說如何在 Ubuntu 中檢查埠口,並介紹具體的指令操作步驟,適用於初學者到中級使用者,幫助您更有效率地管理系統網路。
2. 什麼是埠口?
埠口(Port)號碼類似於電腦通訊時的「出入口」,負責將數據傳送至特定的服務或程序。網路通信主要使用兩種協議:TCP 和 UDP。TCP 是一種確保數據正確傳輸的「連線導向協議」,它會先建立連線後再進行數據傳輸。而 UDP 則是一種「無連線協議」,可在不建立連線的情況下快速傳輸數據,適用於即時通信與串流應用。
TCP 與 UDP 的區別
- TCP(傳輸控制協議,Transmission Control Protocol):這是一種可靠的通訊協議,可確保數據正確送達。常用於 Web 伺服器(HTTP/HTTPS)與 SSH 連線等應用。
- UDP(用戶數據報協議,User Datagram Protocol):與 TCP 不同,UDP 不保證數據的完整性,但能夠以低延遲方式傳輸數據,適用於串流媒體、VoIP 及即時通訊應用。
理解埠口的概念對於管理網路安全與效能至關重要。

3. Ubuntu 中用於檢查埠口的指令
在 Ubuntu 中,可以使用多種指令來查看當前開啟的埠口。以下介紹幾種常見的方法。
1. netstat 指令
netstat
是一個功能強大的工具,可用於顯示網路連線、路由表及網路介面資訊。使用以下指令可以查看處於監聽(Listen)狀態的埠口:
sudo netstat -lntu
-l
:僅顯示監聽中的埠口-n
:以數字格式顯示 IP 地址與埠口號碼-t
:顯示 TCP 埠口-u
:顯示 UDP 埠口
2. ss 指令
ss
是 netstat
的替代工具,能夠更高效地顯示監聽中的埠口。使用以下指令:
ss -lntu
ss
在獲取網路 socket 資訊方面比 netstat
更快更高效。
3. lsof 指令
lsof
是一個列出當前打開的檔案與進程的工具,它也能用於檢查使用網路埠口的進程。使用以下指令可查看當前被使用的埠口:
sudo lsof -i
4. nmap 指令
nmap
是一款知名的網路掃描工具,可用於檢查開放的埠口與服務。使用以下指令掃描本機的所有埠口:
sudo nmap -n -PN -sT -sU -p- localhost

4. 開放與關閉埠口
管理埠口的開放與關閉能夠增強 Ubuntu 系統的安全性。Ubuntu 提供了一款簡單的防火牆工具 ufw
(Uncomplicated Firewall),可用於管理埠口。
使用 ufw 開放埠口
例如,若要開放 HTTP(80 號埠口),請執行以下指令:
sudo ufw allow 80
若要開放 SSH(22 號埠口),可執行:
sudo ufw allow 22
使用 ufw 關閉埠口
若要關閉已開放的埠口,可以使用以下指令。例如,關閉 80 號埠口:
sudo ufw delete allow 80
這樣便會取消 80 號埠口的開放狀態。
5. 實際案例:檢查特定埠口的步驟
在這一部分,我們將介紹如何檢查特定埠口是否正在監聽。例如,如果想確認 SSH 服務是否正在監聽 22 號埠口,可以使用 netstat
或 ss
指令:
ss -lnt | grep :22
您也可以使用 lsof
指令來檢查:
sudo lsof -i :22
這將顯示 SSH 服務是否正在使用 22 號埠口進行監聽。

6. 常見問題與解決方案
在檢查或管理埠口時,可能會遇到一些常見問題。以下列出幾種常見問題及對應的解決方案。
埠口無法開啟
如果埠口無法開啟,首先應該檢查防火牆設定是否允許該埠口通過。您可以使用以下指令檢查 ufw
防火牆的狀態:
sudo ufw status
如果防火牆未封鎖該埠口,則應該檢查服務是否正在運行。例如,要確認 SSH 服務是否正常啟動,可以使用以下指令:
sudo systemctl status ssh
埠口開啟但無法連線
如果埠口已開啟但仍無法連線,可能的原因包括:
- 應用程式未正確綁定到埠口(可以使用
netstat
或ss
指令確認)。 - 伺服器的 IP 或防火牆規則限制了外部存取。
- ISP 或雲端服務供應商封鎖了某些埠口(例如 25、80、443)。
如果懷疑是防火牆問題,可以使用以下指令暫時關閉 ufw
來測試是否為防火牆造成的影響(請謹慎使用):
sudo ufw disable
確認問題後,可以重新啟動防火牆:
sudo ufw enable
7. 總結
在本文中,我們介紹了 Ubuntu 中的埠口管理,包括如何檢查開放埠口、使用 ufw
來開啟或關閉埠口,以及解決埠口相關的常見問題。
埠口管理對於網路安全與系統穩定性至關重要,特別是開放給外部存取的監聽埠口。通過本文介紹的技巧,您可以有效掌控您的 Ubuntu 系統,提升安全性並最佳化網路配置。
希望這篇文章能幫助您更好地理解 Ubuntu 埠口管理的關鍵概念與實際操作。如果有任何問題,請隨時在評論區留言!