특정 포트 전달

특정 포트 전달

Linux 시스템의 특정 ip:port를 특정 ip:port로 전달해 보았습니다. 다음 명령으로 iptables를 사용했습니다.

iptables -t nat -A OUTPUT -p tcp -d 10.0.2.5 --dport 80 -j DNAT --to-destination 69.31.21.42:80

10.0.2.5는 명령이 작동하는지 확인하기 위해 선택한 임의의 주소이고, 69.31.21.42는 공개 웹 사이트의 주소입니다. 그런 다음 전달이 작동하는지 확인했습니다. 실행하여 nmap -p 80 10.0.2.5긍정적인 결과를 얻었습니다. 지금까지는 아주 좋았습니다. 그러나 나는 running 을 시도했고 nmap -p 81 10.0.2.5또한 긍정적인 결과를 얻었습니다. 포트 80만 전달되기를 원했기 때문에 이는 내가 예상한 것이 아닙니다. 실행 iptables -t nat -L해 보니 실제로 전체 10.0.2.5 호스트가 69.31.21.42:80에 매핑되어 있는 것으로 나타났습니다.

Chain OUTPUT (policy ACCEPT)
target     prot opt source     destination
DNAT       tcp  --  anywhere   ip-10-0-2-5.ec2.internal  tcp dpt:http to:69.31.21.42:80

내 iptables 명령에 무엇이 빠졌나요? 왜 --dport작동하지 않습니까?

답변1

POSTROUTING원하는 작업을 수행하려면 체인을 사용해야 합니다 .

iptables -t nat -A POSTROUTING -p tcp -d 10.0.2.5 --dport 80 -j SNAT --to 69.31.21.42:80

남자 iptables

and POSTROUTING (for altering packets as they  are  about  to  go
                  out)

답변2

우선 TCP IP:포트를 다른 IP:포트로 전달할 수 없다는 점을 알아두십시오. 이는 UDP에서만 가능하며 이를 위한 별도의 Perl 스크립트가 있습니다.

예, 특정 포트가 아닌 다른 컴퓨터로 IP를 직접 전달할 수 있습니다.

관련 정보