iptables 출력 DNAT가 작동하지 않습니다

iptables 출력 DNAT가 작동하지 않습니다

나는 이 질문과 비슷한 것을 하려고 노력합니다.

https://unix.stackexchange.com/a/85933/20426

따라서 포트 44444로 나가는 모든 트래픽을 1.1.1.1:80으로 리디렉션하고 싶습니다.

iptables -t nat -A OUTPUT -p tcp --dport 44444 -j DNAT --to-destination 1.1.1.1:80
iptables -t nat -A OUTPUT -p tcp --dport 44444 -j LOG --log-prefix

그러나 트래픽은 여전히 ​​대신 원래 IP로 이동합니다.1.1.1.1:80

내 OpenWRT 라우터에서 이것을 설정하려고 하는데 버전은 다음과 같습니다.

MTK OpenWrt SDK V3.4
revision : e7847192
benchmark : APSoC SDK 5.0.1.0
Linux 3.10.14
iptables v1.4.21

내가 뭐 잘못 했어요?

답변1

나를 위해 일하는 것 같습니다 :

# iptables -tnat -A 출력 -p tcp --dport 44444 -j DNAT --대상 $someip:8888
$nc $someotherip44444
# tcpdump -n ...
18:23:54.699942 IP[내 IP 주소].55212 >[일부 IP].8888: 플래그[S], seq 1138760196,...

이 부분을 이해한다면iptables 매뉴얼 페이지맞습니다. OUTPUT호스트 자체에서 시작되는 연결에만 적용됩니다.아니요라우팅 연결. 이 규칙을 추가하지 않으시겠습니까 PREROUTING?

nat:
이 테이블은 새로운 연결을 생성하는 패킷이 발견될 때 참조됩니다. 이는 4가지 기본 제공 기능으로 구성됩니다. ... OUTPUT(라우팅 전에 로컬로 생성된 패킷 변경) 및 POSTROUTING(패킷이 방출되려고 할 때 변경).

관련 정보