連接埠並非獨立存在,而是由進程開啟/關閉動態綁定。進程啟動 → 連接埠開放;進程結束 → 連接埠釋放。因此「關閉連接埠」本質上是「終止持有該連接埠的進程」或「以防火牆規則封鎖存取」。
netstat -anp
-a:顯示所有連線與監聽埠-n:以數值顯示 IP/埠號(不解析服務名)-p:顯示 PID 與程式名稱(需 root 權限)提示:可開啟兩個終端機,一個跑 netstat -an,另一個跑 netstat -anp,對照埠號與服務名。
lsof -i :$PORT
直接列出佔用指定埠號的進程詳細資訊。
sudo nmap -sT -O localhost
可發現 netstat 可能漏掉的隱藏埠口。
查閱標準埠號與服務名稱對照表。
# 封鎖 TCP 進入方向
sudo iptables -A INPUT -p tcp --dport $PORT -j DROP
# 封鎖 TCP 輸出方向
sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP
搭配 iptables-save 或 firewall-cmd --permanent 使規則重開機生效。
# 1. 找出 PID
netstat -anp | grep ssh
# 輸出範例:tcp 0 0 127.0.0.1:2121 0.0.0.0:* LISTEN 7546/ssh
# 2. 強制終止
kill -9 7546
若該埠口由系統服務開啟(如 sshd、httpd),應使用服務管理工具永久停用:
systemctl stop sshd
systemctl disable sshd # 開機不自動啟動
或透過 chkconfig(舊版系統)查看/管理各執行等級的服務啟動狀態。
lsof -i :PORT 或 ss -ltnp(現代替代 netstat)定位進程。kill 進程。MySQL Socket 連線失敗:/var/lib/mysql/mysql.sock 與 /tmp/mysql.sock 路徑衝突完整解決方案
Linux Shell 序列與陣列高效生成技巧:brace expansion、seq、mapfile 實戰對比
Ubuntu 安裝 Google Earth 兩步走圖文教學
Linux 軟體安裝與移除基礎教學:RPM、原始碼、二進制套件
sudo cd 與 sudo ll 指令失效原因分析與解決方案
Linux 安裝配置 Fcitx 五筆/拼音輸入法全指南:環境變量、自啟動、Ubuntu/CentOS/Arch 多發行版實戰