使用步骤
- 选择模板,例如「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 命令。
隐私说明
本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。