如果你是在配置一台公网 Ubuntu 服务器,我建议直接按这套来。ufw 是 Ubuntu 默认的防火墙前端,默认一开始是关闭的;它的常见基线策略是入站拒绝、出站允许。

最重要的一条是:如果你现在是通过 SSH 连上这台机器的,一定要先放行 SSH,再启用 ufw。Ubuntu 的官方资料也专门提醒过:在远程机器上启用防火墙前,应先加入 SSH 规则,否则连接可能被中断。

你可以直接这样配:

sudo ufw allow OpenSSH
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
sudo ufw status verbose

这里 allow OpenSSH 用的是应用配置文件;Ubuntu 文档说明了 ufw 支持应用 profile,可以用 ufw app list 查看、ufw app info <name> 看细节,profile 文件通常放在 /etc/ufw/applications.d

如果你的服务器还要跑网站,再继续加规则:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status numbered

Ubuntu 官方文档确认了 ufw allow 22 这类命令的基本用法,也支持 status numbered 查看带编号的规则,方便后续删除。

如果你想把 SSH 再收紧一点,不让全网都能扫你的 22 端口,可以只允许你自己的公网 IP 登录,例如:

sudo ufw allow proto tcp from 你的公网IP to any port 22

官方文档给了同样的按来源地址限制 SSH 的写法;如果你有固定网段,也可以写成 CIDR,比如 x.x.x.0/24

Important

不确定的可以问 LLM