iptables - o significado de “ERRO: Nenhum subcomando válido fornecido”?

0

Eu instalei o iptables em um dispositivo embutido com linux. Eu acredito que a instalação foi bem sucedida porque todos os outros aplicativos estão funcionando bem (busybox etc.).

Eu tento executá-los, mas recebo o seguinte erro:

root@AlphaEdge:~ iptables -L
ERROR: No valid subcommand given.
Valid subcommands:
 * iptables-xml
 * xml

A única coisa que encontrei por googleing foi esse código-fonte aqui , que estou tentando descobrir simultaneamente enquanto aguardo a resposta.

    
por TheMeaningfulEngineer 23.01.2014 / 16:17

1 resposta

4

No meu sistema (Ubuntu 13.04), iptables é um link simbólico para xtables-multi :

martin ~ # ll /sbin/iptables
lrwxrwxrwx 1 root root 13 Feb 20  2013 /sbin/iptables -> xtables-multi*

Todos os outros comandos iptables também são links simbólicos:

martin ~ # ll /sbin|grep xtables
lrwxrwxrwx 1 root root      13 Feb 20  2013 ip6tables -> xtables-multi*
lrwxrwxrwx 1 root root      13 Feb 20  2013 ip6tables-restore -> xtables-multi*
lrwxrwxrwx 1 root root      13 Feb 20  2013 ip6tables-save -> xtables-multi*
lrwxrwxrwx 1 root root      13 Feb 20  2013 iptables -> xtables-multi*
lrwxrwxrwx 1 root root      13 Feb 20  2013 iptables-restore -> xtables-multi*
lrwxrwxrwx 1 root root      13 Feb 20  2013 iptables-save -> xtables-multi*
-rwxr-xr-x 1 root root     86K Feb 20  2013 xtables-multi*

Quando você chama um desses comandos, xtables-multi usa o nome com o qual foi executado para descobrir qual comando você deseja usar. Chamar xtables-multi diretamente (ou chamá-lo com um nome que não conhece) produz a seguinte saída no meu sistema:

martin ~ # xtables-multi 
ERROR: No valid subcommand given.
Valid subcommands:
 * iptables
 * main4
 * iptables-save
 * save4
 * iptables-restore
 * restore4
 * iptables-xml
 * xml
 * ip6tables
 * main6
 * ip6tables-save
 * save6
 * ip6tables-restore
 * restore6

A explicação, portanto, deve ser que o seu binário xtables-multi não tenha sido compilado com todos os subcomandos disponíveis e, portanto, ele não sabe o que fazer quando você o chama como iptables . Você provavelmente terá que recompilá-lo com as opções corretas para obter o comando iptables funcionando.

    
por 23.01.2014 / 19:05

Tags