我正在尝试添加一条iptables
规则,以便丢弃除来自特定 IP 的数据包之外的所有传入数据包。按照手册,我尝试运行它:
> iptables -t filter -I INPUT -s !12.34.56.78 -p tcp -j DROP
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
iptables v1.4.12.1: host/network `!12.34.56.78' not found
Run Code Online (Sandbox Code Playgroud)
手册页说 for-s / --src / --source
参数... A "!" argument before the address specification inverts the sense of the address. ...
。
我对这个感叹号遇到的第一个问题是 shell 将其扩展为历史命令。该解决方案set +H
已应用,似乎不再是问题了。
为什么不接受感叹号来指定手册中所说的倒置地址?
PS:当然,我尝试过在 和 IP 之间使用空格!
,但不被接受。
编辑
在接受答案之前,也许任何人都可以帮助回答:为什么参数的顺序应该而不是! -s {IP}
像-s !{IP}
手册所说的那样?只是一个新版本iptables
改变了这个语法,同时保留了旧的手册页?或者它是否可以以某种方式配置?
!
和 IP 地址之间需要有一个空格
iptables -t filter -I INPUT -s ! 12.34.56.78 -p tcp -j DROP
Run Code Online (Sandbox Code Playgroud)
Using intrapositioned negation (
如果您收到类似--option !的消息 这) is deprecated in favor of extrapositioned (
!--选项这个).
然后放置 ! 在“-s”选项之前,如 -
iptables -t filter -I INPUT ! -s 12.34.56.78 -p tcp -j DROP
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9094 次 |
最近记录: |