iptables 전달 규칙을 표시하는 방법은 무엇입니까?

iptables 전달 규칙을 표시하는 방법은 무엇입니까?

들어오는 포트 80 트래픽을 포트 8080으로 전달하기 위해 EC2 인스턴스에서 다음 명령을 실행했습니다.

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

아무 것도 출력되지 않지만 전달이 실제로 작동하는 것을 볼 때.

명령줄에서 확인을 시도했지만 방법을 모르겠습니다.

$ iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

에 따르면 iptables --help-A옵션에는 체인 이름이 인수로 필요하므로 제 경우에는 체인 이름이 입니다 PREROUTING.

또한 다음을 기반으로 합니다 iptables --help.

--list-rules -S [chain [rulenum]]
Print the rules in a chain or all chains

하지만 내가 얻는 것은 다음과 같습니다.

$ iptables -S PREROUTING
iptables: No chain/target/match by that name.
iptables -S REDIRECT
iptables: No chain/target/match by that name.

내가 만든 전달 규칙을 실제로 어떻게 인쇄합니까?

답변1

체인 PREROUTING은 NAT 테이블( iptables -t nat)에 있으므로 테이블을 나열해야 볼 수 있습니다.

iptables -t nat -nvL

이를 4개 테이블 모두에 일반화할 수 있습니다.

for table in filter mangle nat raw
do
    echo
    echo "Rules for table $table"
    echo
    iptables -t "$table" --line-numbers -nvL
done

관련 정보