Código de retorno 4 de Iptables?

1

Eu tenho um servidor e vários VPS's nele, então eu uso o iptables para redirecionar as portas, eu estou fazendo isso automaticamente via script.

São cerca de 500 comandos iptables para inserir regras após a reinicialização do servidor, mas às vezes há apenas alguns comandos executados e o restante falha e os comandos iptables retornam o valor de saída 4, não encontrei nenhum lugar. ?

Estou inserindo 500 regras dentro de cada ciclo, então, basicamente, ao mesmo tempo em que estou inserindo muitas regras, esse poderia ser o problema?

    
por Welite 04.05.2017 / 16:01

1 resposta

1

De spelunking the source em include/xtables.h , encontramos

enum xtables_exittype {
        OTHER_PROBLEM = 1,
        PARAMETER_PROBLEM,
        VERSION_PROBLEM,
        RESOURCE_PROBLEM,   // number 4 because that's how enum count

Com algumas hipóteses extravagantes sobre o ramo de código que está sendo seguido (se não houver erros impressos pelo seu iptables ?), iptables/iptables.c pode exit(RESOURCE_PROBLEM) devido ao que parece ser um problema de bloqueio. Isso se encaixa com a sua descrição de um laço apertado dos comandos iptables (embora deva haver algum erro no erro padrão, o seu imprime isso?); talvez, em vez disso, use iptables-restore para inserir atomicamente todas as alterações necessárias de uma só vez, ou diminuir a velocidade do loop (e confirme se esse código é o caminho de erro que está sendo acionado).

    
por 04.05.2017 / 16:20