我从来没有使用过iptables,并且在线文档似乎有点不透明。iptables阻止访问端口8000除IP地址
我想阻止我的服务器上的端口8000的所有请求,除了那些来自特定IP地址的端口。我如何使用iptables来做到这一点?
我从来没有使用过iptables,并且在线文档似乎有点不透明。iptables阻止访问端口8000除IP地址
我想阻止我的服务器上的端口8000的所有请求,除了那些来自特定IP地址的端口。我如何使用iptables来做到这一点?
此问题应该在Server Fault。然而,接下来应该做的伎俩,假设你在谈论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
另一种选择是;
sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP
我有类似问题的3桥的虚只需要使用不同的组合访问海誓山盟,所以我测试了这个命令,而且运作良好。
编辑**
据费尔南多评论这link感叹号 (
!
)将被置于前比-s
参数:
sudo iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP
感叹号('!')现在必须放在'-s'参数之前:'sudo iptables -A INPUT -p tcp --dport 8000 -s! 1.2.3.4 -j DROP'。 –
@FernandoSilveira谢谢,我已更新 – HRgiger
您可以随时使用iptables来删除规则。如果您有很多规则,请使用以下命令输出它们。
iptables-save > myfile
vi
从commend行编辑它们。只需使用“dd”删除不再需要的行。
iptables-load < myfile and you're good to go.
记住,如果您不要配置OS保存规则到一个文件,然后加载程序文件的规则将失去在启动过程中。
在Debian上没有iptables-load,但iptables-restore iptables-restore
//,你会如此友善地分享不透明文档的链接吗? –