다음 명령을 사용하여 포트 30에서 포트 1234로 들어오는 트래픽을 전달하고 있습니다. 하지만 작동하지 않습니다. Wireshark에는 포트 1234로 전달된 패킷의 흔적도 없습니다.
sudo iptables -t nat -I PREROUTING --src 0/0 --dst 127.0.0.1 -p tcp --dport 30 -j REDIRECT --to-ports 1234.
답변1
다른 포트에 있는 데이터 패킷의 로컬 전달은 PREROUTING 체인을 통과하지 않습니다. OUTPUT 체인을 따릅니다. 체인을 PREROUTING에서 OUTPUT으로 변경하면 작동합니다.
sudo iptables -t nat -A OUTPUT -p tcp --dport 30 -j REDIRECT --to-port 1234
iptables NAT 필터에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
https://www.karlrupp.net/en/computer/nat_tutorial
답변2
활성화되어 있는지 확인하세요.
sudo iptables -t nat -L
항목이 있으면 다음 명령을 사용하여 삭제합니다.
sudo iptables -F -t nat
src dest 플래그 없이 시도해보세요:
sudo iptables -t nat -A PREROUTING -p tcp --dport 30 -j REDIRECT --to-ports 1234
활성화되어 있는지 다시 확인하세요.
sudo iptables -t nat -L
기본적으로 "OUTPUT" 경로에 대기 중인 연결된 항목을 제거하는 것이 중요합니다.