firewall-cmd 命令構建器
產生用於設定 firewalld 區域、服務及端口的 firewall-cmd 指令(RHEL/CentOS/Fedora)。
開始使用 firewall-cmd
## 什麼是 firewall-cmd?
`firewall-cmd` 是用於 `firewalld` 的命令行客戶端,而 `firewalld` 是 RHEL、CentOS、Fedora 以及其他 Red Hat 系列作業系統所使用的動態防火牆管理工具。它會將規則分類到不同的**區域**中(例如 `public`、`home`、`dmz`),並可立即(運行時)或透過 `--permanent` 使變更永久生效。
## 使用方式
1. **選擇操作**:`add-service`、`add-port`、`remove-service`、`remove-port`、`list-all`、`reload` 或 `permanent-query`。 2. **設定值**:對於服務/連接埠相關的操作,請填入 `service`(例如 `http`)或 `port`(例如 `80/tcp`)欄位。 3. **選擇區域**(可選):預設會使用預設區域(通常為 `public`)。 4. **設為永久生效**:勾選 `--permanent` 以確保重啟後設定仍保留,然後執行 `reload`。 5. **複製並執行**:在指令前加上 `sudo`。
常見動作與選項
### `--add-service=NAME` / `--remove-service=NAME` 開啟或關閉在`/usr/lib/firewalld/services`中定義的名稱化服務(例如`http`、`https`、`ssh`)。該服務會自動識別其使用的協定與連接埠。
### `--add-port=PORT/PROTO` / `--remove-port=PORT/PROTO` 開啟或關閉任意的連接埠,例如`8080/tcp`。當沒有服務定義時可使用此功能。
### `--list-all` 列印某個區域內所有正在運作的項目:服務、連接埠、來源、介面以及預設目標。
### `--reload` 將永久性設定重新載入執行環境——在`--permanent`作出變更後執行此指令,即可立即讓變更生效。
### `--zone=NAME` 指定特定的區域(`public`、`home`、`internal`、`dmz`、`block`、`trusted`)。若未指定,firewalld將使用預設區域。
### `--permanent` 將變更內容寫入磁碟,如此在重新開機後仍能保留。若未使用`--permanent`,則變更僅存在於執行環境中,於重新載入或重新啟動時會遺失。最佳做法是:先使用`--permanent`套用規則,再一次不使用該指令套用,或先使用`--permanent`再使用`--reload`。
▶firewalld 與 iptables 和 nftables 有什麼關係?
▶為何我的 --permanent 條件規則沒有立即生效?
▶如何在公開區域永久開啟 HTTP 與 HTTPS?
如果这个工具对你有帮助,请考虑请我喝杯咖啡。
請幫我買杯咖啡吧。