iptables
是 Linux 系统中的一个命令行工具,用于配置内核的网络包过滤规则。它允许系统管理员根据数据包的源地址、目的地址、传输协议等条件来允许或拒绝数据包的通过。
filter
、nat
、mangle
和 raw
。每个表都有特定的用途。INPUT
、OUTPUT
和 FORWARD
。ACCEPT
、DROP
、REJECT
等。要查看当前的 iptables 规则,可以使用以下命令:
sudo iptables -L -v -n
-L
列出所有规则。-v
显示详细信息。-n
以数字形式显示地址和端口,而不是尝试解析为域名或服务名。Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
100 7000 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
50 4000 DROP all -- * * 192.168.1.100 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
原因:可能是 iptables 规则阻止了出站流量。
解决方法:
检查 OUTPUT
链的规则:
sudo iptables -L OUTPUT
如果发现有阻止所有出站流量的规则,可以临时删除或修改它:
sudo iptables -D OUTPUT <rule_number>
或者添加允许所有出站流量的规则:
sudo iptables -A OUTPUT -j ACCEPT
原因:可能是 INPUT
链的规则阻止了入站流量。
解决方法:
检查 INPUT
链的规则:
sudo iptables -L INPUT
确保有允许 SSH(或其他服务)的规则。如果没有,可以添加:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables-save
和 iptables-restore
命令,或者使用特定于发行版的工具如 iptables-persistent
。通过以上信息,你应该能够理解 iptables 的基本概念、如何查看规则以及常见问题的解决方法。
领取专属 10元无门槛券
手把手带您无忧上云