因为腾讯云轻量应用服务器的防火墙是在 Linux 系统之外运行的。所以当你在 Linux 服务器上部署了一个服务之后,假如端口是 8082,你就只能去 console.cloud.tencent.com web 上添加 8082 tcp 的相应规则。如果我不想登录腾讯云的 web 管理页面呢?我就想通过 ssh 直接管理我的防火墙。

有方法的。把自带的防火墙全都放行,然后你的 Linux distro 安装防火墙软件即可。

创建一条新的防火墙规则,应用类型选择 ALL,策略当然选择 允许,然后点击确定即可。

20220707145534

这样其实是变相实现了「关闭自带防火墙」,因为每次创建了新的服务都要打开 web 登录然后操作很麻烦,对于习惯了命令行的用户来说,但这样会损失一些安全性,还是要用户自行甄别和选择该怎样做。

我用的 debian 11,我使用 ufw 来管理防火墙。

Debian 11 安装 ufw

# 查询是否已安装 ufw
$ sudo dpkg -s ufw

# 查询所有已安装包
$ sudo dpkg --get-selections

# 通过 grep 过滤查询已安装的包
$ sudo dpkg --get-selections |grep ufw

# 通过 -L 参数查看安装好的包在系统中的各个文件的位置
$ sudo dpkg -L ufw

# 搜索源中的 ufw 包
$ sudo apt-get search ufw

# 安装 ufw
$ sudo apt-get install -y ufw

通过 ufw 管理 debian 11 的防火墙

# 查看 ufw 状态 如果返回 Status: inactive 说明服务尚未启动
$ sudo ufw status verbose

# 启动 ufw
$ sudo ufw enable
$ sudo systemctl enable ufw
$ sudo systemctl restart ufw

# 添加基于 port 和 protocol 的规则
$ sudo ufw allow PORT/PROTOCOL comment "your comment"

# 比如开启 tcp 443 端口
$ sudo ufw allow 443/tcp comment "Web服务HTTPS(443),如 Apache、Nginx"

# 后面根据需要打开相应的端口,建议添加 comment 防止忘记这个端口是干嘛用的