![포트를 원격 서버로 전달하시겠습니까?](https://linux55.com/image/188181/%ED%8F%AC%ED%8A%B8%EB%A5%BC%20%EC%9B%90%EA%B2%A9%20%EC%84%9C%EB%B2%84%EB%A1%9C%20%EC%A0%84%EB%8B%AC%ED%95%98%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
로컬 포트를 원격 호스트/포트로 전달하는 방법은 무엇입니까?
나는 다음을 사용해 보았습니다.
sudo iptables -t nat -A PREROUTING -p tcp --dport <PORT> -j DNAT --to-destination <DESTINATION_SERVER>:<DESTINATION_PORT>
답변1
포트 포워딩에는 중요한 주의 사항이 있습니다 DNAT
.
트래픽 전달외부 소스에서원격 포트의 경우 iptables 규칙은 지정한 대로 정확하게 체인
DNAT
에 있어야 합니다 .PREROUTING
하지만 전달해현지 출신
OUTPUT
트래픽이 원격 포트로 이동할 때 테이블 체인에서 유사한 규칙을 사용해야 합니다nat
.
따라서 특정 로컬 포트로 이동하는 모든 트래픽(로컬에서 생성 및 수신)을 원격 서버로 전달하려면 다음 두 가지 규칙이 필요합니다.
iptables -t nat -A PREROUTING -p tcp --dport <PORT> -j DNAT --to-destination <DESTINATION_SERVER>:<DESTINATION_PORT>
iptables -t nat -A OUTPUT -p tcp --dport <PORT> -j DNAT --to-destination <DESTINATION_SERVER>:<DESTINATION_PORT>