iptable 错误的参数 `ACCEPT'

问题描述 投票:0回答:2

我正在尝试以下..

#!/bin/bash

NOIPHOST=example.noip.me
LOGFILE=iptables_update.log

Current_IP=$(host $NOIPHOST | cut -f4 -d' ')

if [ $LOGFILE = "" ] ; then
  /sbin/iptables -I INPUT -m tcp -p tcp -s $Current_IP -j ACCEPT
  echo $Current_IP > $LOGFILE
else

  Last_IP=$(cat $LOGFILE)

  if [ "$Current_IP" = "$Last_IP" ] ; then
    echo IP address has not changed
  else
    /sbin/iptables -D INPUT -m tcp -p tcp -s $Last_IP -j ACCEPT
    /sbin/iptables -I INPUT -m tcp -p tcp -s $Current_IP -j ACCEPT
    iptables-persistent save
    echo $Current_IP > $LOGFILE
    echo iptables have been updated
  fi
fi

我收到此错误..

错误的论点

ACCEPT' Try
iptables -h' 或 'iptables --help' 了解更多 信息。 iptables 已更新

我也尝试过使用这些..

iptables -D INPUT -m tcp -p tcp -s $Last_IP -j ACCEPT
iptables -I INPUT -m tcp -p tcp -s $Current_IP -j ACCEPT

但仍然是同样的错误。

有办法解决这个问题吗?

bash shell sh
2个回答
2
投票

您确定您的

$Last_IP
变量中没有任何换行符吗? 您可以尝试在
iptables -D...
行之前添加以下内容吗?

Last_IP=$(echo $Last_IP|tr -d '\n')

0
投票

$Last_IP
$Current_IP
为空时,可能会发生这种情况。

© www.soinside.com 2019 - 2024. All rights reserved.