跳到正文
马克工具箱

防火墙规则生成器

给服务器开放需要的端口、关掉其他端口,不用再分别查三种防火墙的写法。选一个模板,列出端口、协议和来源地址,就能复制 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 命令。

隐私说明

本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。

相关工具