在 Linux 系統中開放埠

Liming_Code發表於2024-10-15

在 Linux 系統中,開放埠通常是透過配置防火牆來實現的。不同的 Linux 發行版可能使用不同的防火牆工具。以下是使用 iptables 和 firewalld(在 CentOS 7 及更高版本中使用)以及 UFW(在 Ubuntu 中使用)來開放埠的步驟。

方法 1:使用 iptables 開放埠

iptables 是一個強大的防火牆工具,適用於大多數 Linux 發行版。

  1. 檢查當前規則 :

    sudo iptables -L -n -v
    
  2. 開放特定埠 : 假設你想開放 8080 埠:

    sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
    
  3. 儲存規則 : 規則在重啟後會丟失,因此需要儲存規則:

    sudo iptables-save | sudo tee /etc/iptables/rules.v4
    

    在某些系統上,可能需要使用以下命令:

    sudo service iptables save
    
  4. 重啟 iptables 服務 (如果需要):

    sudo systemctl restart iptables
    

方法 2:使用 firewalld 開放埠

在 CentOS 7 及更高版本中,firewalld 是預設的防火牆管理工具。

  1. 檢查 firewalld 狀態 :

    sudo systemctl status firewalld
    

    如果未執行,可以啟動:

    sudo systemctl start firewalld
    
  2. 開放特定埠 : 假設你想開放 8080 埠:

    sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
    
  3. 重新載入防火牆規則 :

    sudo firewall-cmd --reload
    
  4. 檢查開放的埠 :

    sudo firewall-cmd --list-ports
    

方法 3:使用 UFW 開放埠

UFW 是 Ubuntu 預設的防火牆工具,使用起來相對簡單。

  1. 檢查 UFW 狀態 :

    sudo ufw status
    

    如果未啟用,可以使用以下命令啟用:

    sudo ufw enable
    
  2. 開放特定埠 : 假設你想開放 8080 埠:

    sudo ufw allow 8080/tcp
    
  3. 檢查規則 : 使用以下命令檢視當前的 UFW 規則:

    sudo ufw status verbose
    

注意事項

  • 確認需求 :在開放埠之前,請確保你瞭解該埠的用途以及開放該埠可能帶來的安全風險。
  • SSH 訪問 :如果你透過 SSH 遠端管理伺服器,確保不要阻止 SSH 埠(通常是 22),以免失去遠端訪問許可權。
  • 服務狀態 :確保在開放埠之前,相關服務已經在該埠上執行。

示例

假設你想開放 8080 埠供 Web 服務使用,可以按以下步驟操作:

  1. 使用 UFW 開放埠 :
sudo ufw allow 8080/tcp
  1. 或使用 firewalld 開放埠 :
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
  1. 或使用 iptables 開放埠 :
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4

相關文章