在 TencentOS Server 3.1(基于 CentOS Stream 或 RHEL 的操作系统)中,iptables 通常已经被 nftables 取代作为默认的防火墙管理工具。不过,你仍然可以使用 iptables 命令,它们实际上是通过 nftables 后端实现的。
一、确认系统是否安装了 iptables
rpm -q iptables
如果没有安装:
sudo yum install iptables
如果你想使用 iptables-service(传统方式管理 iptables 规则):
sudo yum install iptables-services
二、启动并启用 iptables 服务(可选)
如果你安装了 iptables-services,可以按如下操作启用服务:
# 启动服务
sudo systemctl start iptables
# 开机自启
sudo systemctl enable iptables
三、常用 iptables 命令示例
查看当前规则:
sudo iptables -L -n -v
清除所有规则(慎用):
sudo iptables -F
允许本地回环接口:
sudo iptables -A INPUT -i lo -j ACCEPT
允许 SSH 连接(默认端口 22):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
允许 HTTP 和 HTTPS:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
拒绝其他所有入站连接:
sudo iptables -A INPUT -j DROP
四、保存和恢复规则
如果你使用的是 iptables-services,可以使用以下命令保存规则:
sudo service iptables save
或者:
sudo /usr/libexec/iptables/iptables.init save
保存后规则会写入 /etc/sysconfig/iptables 文件。
五、使用 nftables 替代方案(推荐)
由于 nftables 是 iptables 的现代替代品,建议学习使用它:
查看当前规则:
sudo nft list ruleset
清空规则:
sudo nft flush ruleset
添加允许 SSH 规则示例:
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0 ; }
sudo nft add rule inet filter input tcp dport 22 accept
六、注意事项
- 如果你使用了更高层的防火墙工具(如
firewalld),应优先使用firewall-cmd管理。 - 腾讯云服务器本身也有安全组功能,可以与系统防火墙配合使用。
总结
| 功能 | 命令 |
|---|---|
| 安装 iptables | yum install iptables |
| 安装 iptables 服务 | yum install iptables-services |
| 启动 iptables 服务 | systemctl start iptables |
| 查看规则 | iptables -L -n -v |
| 保存规则 | service iptables save |
如需我帮你配置一个完整的 iptables 示例脚本,请告诉我你的需求(比如开放哪些端口、限制哪些 IP 等)。
CLOUD技术博