在 Linux 系統中,開放埠通常是透過配置防火牆來實現的。不同的 Linux 發行版可能使用不同的防火牆工具。以下是使用 iptables 和 firewalld(在 CentOS 7 及更高版本中使用)以及 UFW(在 Ubuntu 中使用)來開放埠的步驟。
方法 1:使用 iptables
開放埠
iptables
是一個強大的防火牆工具,適用於大多數 Linux 發行版。
-
檢查當前規則 :
sudo iptables -L -n -v
-
開放特定埠 : 假設你想開放 8080 埠:
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
-
儲存規則 : 規則在重啟後會丟失,因此需要儲存規則:
sudo iptables-save | sudo tee /etc/iptables/rules.v4
在某些系統上,可能需要使用以下命令:
sudo service iptables save
-
重啟
iptables
服務 (如果需要):sudo systemctl restart iptables
方法 2:使用 firewalld
開放埠
在 CentOS 7 及更高版本中,firewalld
是預設的防火牆管理工具。
-
檢查
firewalld
狀態 :sudo systemctl status firewalld
如果未執行,可以啟動:
sudo systemctl start firewalld
-
開放特定埠 : 假設你想開放 8080 埠:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
-
重新載入防火牆規則 :
sudo firewall-cmd --reload
-
檢查開放的埠 :
sudo firewall-cmd --list-ports
方法 3:使用 UFW
開放埠
UFW
是 Ubuntu 預設的防火牆工具,使用起來相對簡單。
-
檢查 UFW 狀態 :
sudo ufw status
如果未啟用,可以使用以下命令啟用:
sudo ufw enable
-
開放特定埠 : 假設你想開放 8080 埠:
sudo ufw allow 8080/tcp
-
檢查規則 : 使用以下命令檢視當前的 UFW 規則:
sudo ufw status verbose
注意事項
- 確認需求 :在開放埠之前,請確保你瞭解該埠的用途以及開放該埠可能帶來的安全風險。
- SSH 訪問 :如果你透過 SSH 遠端管理伺服器,確保不要阻止 SSH 埠(通常是 22),以免失去遠端訪問許可權。
- 服務狀態 :確保在開放埠之前,相關服務已經在該埠上執行。
示例
假設你想開放 8080 埠供 Web 服務使用,可以按以下步驟操作:
- 使用 UFW 開放埠 :
sudo ufw allow 8080/tcp
- 或使用 firewalld 開放埠 :
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
- 或使用 iptables 開放埠 :
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4