Linux iptables被拒绝 – 如何启用它?

所以我的网络中的客户端通过我的计算机与arpspoof连接到路由器.当我知道要停止数据包转发时,我执行:
iptables -A FORWARD -j REJECT

这是我的预期工作.但当我尝试做类似的事情时:

iptables -A FORWARD -j ACCEPT

我无法像开始那样让数据包通过.

我做错了什么或者我还应该使用与“接受”不同的任何其他论点吗?

解决方法

IPtables有一个规则列表,对于每个数据包,它按顺序检查规则列表.一旦找到匹配数据包的规则并指定策略(ACCEPT,REJECT,DROP),就确定匹配数据包的命运;没有更多的规则被审查.

这意味着您运行命令的顺序非常重要.当您使用iptables -A时,您将规则添加到规则列表的末尾,因此最终会得到如下所示的规则列表:

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited
ACCEPT     all  --  anywhere             anywhere

由于REJECT规则在ACCEPT规则之前,它首先被触发,因此不会发生转发.

因此,您需要删除REJECTrule而不是添加ACCEPT规则.要删除REJECT规则,请运行

iptables -D FORWARD -j REJECT

有关更多信息,请阅读iptables联机帮助页.

相关文章

insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...