除IP地址外,iptables阻止对端口8000的访问

我从来没有使用iptables,在线文档似乎有点不透明。

我想阻止所有请求到我的服务器端口8000,除了那些来自特定的IP地址。 我如何使用iptables做到这一点?

这个问题应该在服务器故障 。 尽pipe如此,下面应该做的伎俩,假设你在谈论TCP和你想要允许的IP是1.2.3.4:

iptables -A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT iptables -A INPUT -p tcp --dport 8000 -j DROP 

另一种select是;

 sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP 

我有类似的问题,3桥式虚拟机只需要访问不同组合的海誓山盟,所以我testing了这个命令,它运作良好。

编辑**

根据费尔南多评论和这个链接感叹号( ! )将被放置之前比-s参数:

 sudo iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP 

你总是可以使用iptables来删除规则。 如果您有很多规则,请使用以下命令输出它们。

 iptables-save > myfile 

vi从标记行编辑它们。 只需使用“dd”删除不再需要的行。

 iptables-load < myfile and you're good to go. 

请记住,如果您没有configuration您的操作系统来保存规则到一个文件,然后加载文件,在您的规则将失去的文件。