As informações de ajuda não parecem ser muito informativas:
--list -L [chain [rulenum]]
List the rules in a chain or all chains
--list-rules -S [chain [rulenum]]
Print the rules in a chain or all chains
A única diferença está na escolha da palavra: "list" vs. "print".
O manual é um pouco mais detalhado, mas ainda não ajuda:
-L, --list [chain]
List all rules in the selected chain. If no chain is selected, all chains are listed. Like every other iptables command, it applies to the specified table (filter is the default), so NAT
rules get listed by
iptables -t nat -n -L
Please note that it is often used with the -n option, in order to avoid long reverse DNS lookups. It is legal to specify the -Z (zero) option as well, in which case the chain(s) will be atom‐
ically listed and zeroed. The exact output is affected by the other arguments given. The exact rules are suppressed until you use
iptables -L -v
-S, --list-rules [chain]
Print all rules in the selected chain. If no chain is selected, all chains are printed like iptables-save. Like every other iptables command, it applies to the specified table (filter is the
default).
Parece-me que -S
é realmente mais detalhado e imprimi as portas exatas que permiti com um --dports
argumento. Mas por que é assim? Eu não acho que a palavra "imprimir" sugere automaticamente um nível mais alto de detalhes do que "lista"?
A diferença é o formato de saída. A
-S
opção produz no estilo deiptables-save
. E isso pode ser reutilizado comiptables-apply
,iptables-restore
. (Verifique asman
entradas de suas páginas para obter detalhes.) Então você pode pensar na diferença como:-L
é para referência, para ter uma ideia do que está lá-S
é para saída reutilizável, que é para análise de máquinaSe você acha que a
-S
opção fornece mais detalhes, deve aprender outrosiptables
parâmetros que fornecem mais detalhes em combinação com-L
.