我是一个初学者系统pipe理员,并想知道一些基本的东西。 我正在尝试为我的服务器设置CloudFlare。 有一些IP列入白名单,CloudFlarebuild议在terminal上使用以下命令来执行此操作:
iptables -I INPUT -p tcp -m multiport --dports http,https -s "$ip" -j ACCEPT
列入白名单的IP将被replace为$ ip。 我的问题是句法。 如果命令是
iptables -I INPUT -p tcp -m multiport --dports http,https -s "103.21.244.0/22" -j ACCEPT
还是应该省略" " ,即:
iptables -I INPUT -p tcp -m multiport --dports http,https -s 103.21.244.0/22 -j ACCEPT
还是不重要?
我最近在做iptables的时候做了一些修改,给人的印象是" "不需要,所以混乱。 对不起noob问题。
如果您正在扩展像$ip这样的shellvariables,则非常希望使用引号来避免错误和shell转义安全性问题。 如果是显示的string,那么这是可选的。
引号本身不是发送给iptables的参数的一部分; 在linux上,它们被shell使用,以避免在空白处分割参数(这在args不是string向量的窗口中不起作用)。
如果你的IP列表(白名单或黑名单)非常长,可以考虑使用ipset,这比加载,卸载和执行要快得多。