iptables
是 Linux 系统中的一个命令行工具,用于配置内核防火墙(netfilter)规则。在 CentOS 中,你可以使用 iptables
来管理网络数据包的过滤、转发和地址转换等操作。
以下是一些基本的 iptables
命令和用法:
查看当前规则
sudo iptables -L
这个命令会列出所有的 iptables
规则。
清空所有规则
sudo iptables -F
这个命令会清空所有的 iptables
规则。
允许特定 IP 访问
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
这个命令会允许来自 IP 地址 192.168.1.100
的所有流量通过。
允许特定端口访问
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
这个命令会允许所有到 TCP 端口 80(通常是 HTTP)的流量通过。
阻止特定 IP 访问
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
这个命令会阻止来自 IP 地址 192.168.1.100
的所有流量。
阻止特定端口访问
sudo iptables -A INPUT -p tcp --dport 80 -j DROP
这个命令会阻止所有到 TCP 端口 80 的流量。
保存规则
在 CentOS 中,iptables
规则在重启后不会自动保存。你可以使用 service iptables save
命令来保存当前的规则:
sudo service iptables save
恢复默认规则
如果你不小心清空了所有规则,可以使用以下命令恢复默认规则:
sudo iptables-restore < /etc/sysconfig/iptables
其他有用的命令
- 查看特定链的规则:
sudo iptables -L INPUT
- 删除特定规则:
sudo iptables -D INPUT -s 192.168.1.100 -j ACCEPT
- 清空特定链的规则:
sudo iptables -F INPUT
请注意,使用 iptables
需要 root 权限,因此大多数命令都需要在命令前加上 sudo
。
在使用 iptables
时,请务必小心,因为错误的规则可能会导致网络连接中断或其他问题。在生产环境中,建议在修改规则之前备份当前的规则集。