我正在编写 iptables Bash 脚本,但我不知道为什么会出现以下错误:
变量
iptables=/sbin/iptables
internet_int=ens33
lan_int=ens37
lan_addr=172.16.30.0/24
规则
#lan -> internet HTTP (80/tcp)
$iptables -A FORWARD -p TCP -i $lan_int -s $lan_addr --sport 1024:65535 -o $internet_int -m multiport --dports 80,443 -m state --state NEW -j ACCEPT
问题
Bad argument `172.16.30.0/24'
答案1
我自己的 iptables-cmd 也遇到了同样的问题。我将变量放在括号中,解决了这个问题。也许它也适用于你的命令:
"$iptables" -A FORWARD -p TCP -i "$lan_int" -s "$lan_addr" --sport 1024:65535 -o "$internet_int" -m multiport --dports 80,443 -m state --state NEW -j ACCEPT
还没有测试过你的命令。我假设只需要参数前的括号-s
。也许可以试一试。