한 포트를 동일한 시스템의 다른 포트에 매핑

한 포트를 동일한 시스템의 다른 포트에 매핑

내 모든 트래픽은 포트 22에서 발생합니다. 나는 모든 트래픽이 라우팅되기를 원하는 임의의 포트 221을 선택했습니다.

이것이 내가 사용하는 규칙이다

iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 221
or  iptables -t nat -A OUTPUT -p tcp --dport 22 -j REDIRECT --to-ports 221

iptable --list
target     prot opt source               destination         
           tcp  --  anywhere             anywhere             tcp dpt:ssh
           tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:221
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http-alt

명령을 사용하여 트래픽을 확인하고 있습니다.

tcpdump -i any port 221

포트 221로 라우팅되는 것은 없습니다. 내가 뭘 잘못했나요?

답변1

수신 인터페이스는 IP 스택보다 먼저 패킷을 확인합니다. 즉, 시스템 외부에서 발생하는 패킷에는 NAT 효과가 나타나지 않습니다. 목적지 포트가 변경되어 볼 수 없습니다 tcpdump. 그러나 체인의 Packjet 카운터를 통해 볼 수 있습니다 filter/INPUT.

이는 로컬에서 생성된 패킷과 다릅니다. 인터페이스에 도달하기 전에 IP 스택에 도착합니다. 따라서 루프백 인터페이스에서 DNAT 효과가 있는 패킷을 볼 수 있습니다.

관련 정보