在Debian系统中,iptables是一个用于配置Linux内核防火墙(netfilter)规则的用户空间实用程序。它允许系统管理员定义表(tables)、链(chains)和规则(rules),以控制网络数据包的流向和处理。
以下是一些基本的iptables命令行用法:
查看规则:
sudo iptables -Lsudo iptables -L INPUT(查看INPUT链的规则)sudo iptables -L --line-numbers清空规则:
sudo iptables -Fsudo iptables -F INPUT添加规则:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT(允许TCP端口80的流量)sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT删除规则:
sudo iptables -D INPUT 3(删除INPUT链中的第3条规则)sudo iptables -D INPUT -p tcp --dport 80 -j ACCEPT修改规则:
保存规则:
iptables-persistent包来保存和恢复iptables规则。sudo netfilter-persistent savesudo netfilter-persistent reload设置默认策略:
sudo iptables -P INPUT DROP(将INPUT链的默认策略设置为DROP)允许或拒绝流量:
sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPTsudo iptables -A INPUT -s 192.168.1.100 -j DROP端口转发:
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.10:80在使用iptables时,请确保你有足够的权限(通常需要root权限),并且谨慎操作,因为错误的规则可能导致网络连接中断。
如果你是初次使用iptables,建议先在测试环境中练习,以避免不小心锁定自己于服务器之外。此外,对于复杂的防火墙配置,可以考虑使用更高级的工具,如ufw(Uncomplicated Firewall),它提供了一个更简单的界面来管理iptables规则。