跳到正文
馬克工具箱

防火牆規則產生器

給伺服器開放需要的埠、關掉其他埠,不用再分別查三種防火牆的寫法。選一個模板,列出埠、協議和來源地址,就能複製 ufw(Ubuntu、Debian)、firewalld(RHEL、Rocky、AlmaLinux、CentOS)或 iptables 的命令。拒絕規則會自動排在放行規則前面;如果規則會讓你連不上 SSH,也會提前警告。

在瀏覽器本地執行,輸入的內容和檔案都不會上傳

從模板開始:

入站規則

以 root 執行。ufw enable 會要求確認;用 ufw status numbered 檢視規則。

拒絕規則會排在放行規則前面,因為三種防火牆都是按順序匹配、先匹配先生效。雲伺服器通常還有控制台裡的「安全組」,埠要在那邊也放行。

使用步驟

  1. 選擇模板,例如「Web 伺服器(SSH、HTTP、HTTPS)」,或者直接編輯規則。
  2. 每條規則填寫埠、協議、來源地址(留空表示任意)和放行或拒絕。
  3. 填寫 SSH 埠,並決定是否拒絕其他所有入站連線。
  4. 選擇防火牆型別,把命令複製到伺服器的 root 終端裡執行。

引數說明

埠
單個埠(22)、多個埠(80,443)或埠範圍(8000-8100)。
來源
IPv4 或 IPv6 地址或網段,例如 203.0.113.0/24。IPv6 來源會生成 ip6tables 命令。
拒絕其他所有入站連線
把入站預設策略設為拒絕,出站仍然放行。

輸出示例

三條規則,SSH 埠為 22,預設策略設為拒絕:只允許 203.0.113.5 登入 SSH,允許任意來源訪問 TCP 80 和 443 埠,並封禁 198.51.100.0/24 訪問 25 埠。封禁規則寫在最前面,因為命中的第一條規則生效。

# ufw
ufw default deny incoming
ufw default allow outgoing
ufw deny from 198.51.100.0/24 to any port 25 proto tcp
ufw allow from 203.0.113.5 to any port 22 proto tcp
ufw allow 80,443/tcp
ufw enable

# iptables
iptables -A INPUT -p tcp -s 198.51.100.0/24 --dport 25 -j DROP
iptables -A INPUT -p tcp -s 203.0.113.5 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -P INPUT DROP

對 firewalld 來說,向所有人開放的埠用 --add-port,帶來源地址或要封禁的規則則用 rich rule。由於唯一的 SSH 規則帶有來源地址,firewalld 命令還會把區域裡預設的 ssh 服務移除。如果不做這一步,該區域仍然會讓所有人通過 22 埠進入。

常見問題

怎樣避免把自己鎖在伺服器外面?

一定保留放行 SSH 埠的規則;如果只允許指定 IP 登入,先確認自己當前的 IP。執行前開啟雲伺服器控制台的遠端終端,萬一斷開還能從那裡進去。

埠已經放行了,為什麼還是連不上?

雲伺服器通常還有控制台裡的「安全組」或網路防火牆,埠要在那邊也放行。另外確認服務確實在監聽,例如用 ss -tlnp 檢視。

我的伺服器用的是哪種防火牆?

Ubuntu、Debian 一般用 ufw;RHEL、Rocky、AlmaLinux、CentOS 用 firewalld。它們都是核心防火牆的前端,選其中一種管理,不要再混用 iptables 命令。

隱私說明

本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。

相關工具