문제

iptables를 사용하여 UDP 패킷의 대상 포트를 변경할 수 있습니까?

SNMP 에이전트가 162 대신 1620에 트랩을 보내도록하려고 노력하고 있습니다. 불행히도 지금까지는 소스 포트 만 변경했습니다.

iptables -t nat -a postrouting -p udp --dport 162 -j snat- -to : 1620

도움이 되었습니까?

해결책

이 사용법은 분명히 지원되지 않습니다. 가져 왔습니다 http://www.netfilter.org/documentation/howto/nat-howto.txt:

6.3.7. 로컬로 생성 된 연결 대상 변경

NAT 코드를 사용하면 출력 체인에 DNAT 규칙을 삽입 할 수 있지만
이것은 2.4에서 완전히 지원되지 않습니다 (가능하지만 새로운 것이 필요합니다.
구성 옵션, 약간의 테스트 및 코딩이 공정한 코딩이므로 누군가 Rusty가 작성하여 작성하지 않으면 곧 기대하지 않을 것입니다).

현재 제한 사항은 대상 만 변경할 수 있다는 것입니다.
로컬 머신 (예 :`j dnat -to 127.0.0.1 ')은 다른 기계가 아닌 경우 답변이 올바르게 번역되지 않습니다.

다른 팁

어떤 기계를 보내는 지 알고 있다고 가정합니다.

iptables -t nat -A OUTPUT -p udp --dport 162 -j DNAT --to-destination <dest-ip>:1620

162 ~ 1620을 리디렉션 할 수 있습니다

iptables -t nat -A PREROUTING -p UDP --dport 162 -j REDIRECT --to-port 1620

@piedpiper가 옳았습니다. DNAT를 사용하면 IP 주소를 지정해야하지만 포트 리디렉션 만 수행하려면이 경우 -j 리디렉션이 작동 할 수 있습니다.

보다 http://www.netfilter.org/documentation/howto//nat-howto-6.html#ss6.2

Snat을 만드는 대신 DNAT를 사용해보십시오. SNAT는 Sourcenat를 의미하기 때문에 소스 포트가 변경되므로 DNAT는 귀하에게 작동합니다.

전환 규칙을 설정 한 다음 수정 된 포트로 패킷을 다시 주입 할 수 있습니다.

나는 Mac OS X에서 잠시 되돌아 왔지만 Linux에서도 같은 원칙입니다.http://blog.dv8.ro/2006/08/using-divert-sockets-on-mac-os-x.html

기본적으로 매우 간단한 투명 프록시를 만들어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top