使用步驟
- 選擇模板,例如「Web 伺服器(SSH、HTTP、HTTPS)」,或者直接編輯規則。
- 每條規則填寫埠、協議、來源地址(留空表示任意)和放行或拒絕。
- 填寫 SSH 埠,並決定是否拒絕其他所有入站連線。
- 選擇防火牆型別,把命令複製到伺服器的 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 命令。
隱私說明
本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。