舉例: 當有一個Nginx Keepalived的設定需求,我需要開放http和https服務,並且開放vrrp的通訊協定。
會需要完成 Keepalived 與防火牆配置:
確定 VRRP 協定與防火牆規則均已放行:
sudo firewall-cmd --permanent --add-service=http --add-service=https
sudo firewall-cmd --permanent --add-protocol=vrrp
sudo firewall-cmd --reload====================
要在 Rocky Linux 9-10上檢查 firewalld(firewall-cmd)當前已套用及永久保存的設定,最直接且完整的方法是使用 --list-all 指令。
以下為常見且實用的檢查方式:
1. 檢查當前生效中的設定 (Runtime)
查看目前區域(預設為 public)已載入並運作中的防火牆規則:
輸出範例重點:
services: 應會包含
http httpsprotocols: 應會包含
vrrp
提示: 如果你想檢查特定區域(Zone),可以加上
--zone參數,例如:
sudo firewall-cmd --zone=public --list-all
2. 檢查永久保存的設定 (Permanent)
因為你先前設定時都有加上 --permanent,這代表設定已寫入設定檔,重開機後依然有效。要確認永久設定檔內容,請加上 --permanent:
3. 只針對服務 (Services) 與協定 (Protocols) 做快速過濾
如果你只想單純確認 http、https 或 vrrp 是否存在,可以使用過濾指令:
檢查已放行的服務:
sudo firewall-cmd --list-services(預期輸出:
cockpit dhcpv6-client http https等)檢查已放行的協定:
sudo firewall-cmd --list-protocols(預期輸出:
vrrp)
4. 檢查實際寫入的 XML 設定檔(進階)
firewall-cmd --permanent 所做的修改,背後會直接儲存在 /etc/firewalld/zones/ 目錄下的 XML 檔中。你也可以直接檢視該檔案:
你會看到類似以下的 XML 結構,明確列出你剛剛新增的項目:
<short>Public</short>
<description>For use in public areas...</description>
<service name="http"/>
<service name="https"/>
<protocol value="vrrp"/>
</zone>
沒有留言:
張貼留言