IPTables는 포트를 다른 IP:포트로 전달하지만 원래 소스 IP는 유지합니다.

IPTables는 포트를 다른 IP:포트로 전달하지만 원래 소스 IP는 유지합니다.

게이트웨이 시스템(192.168.0.1)에 다음과 같은 iptables 규칙이 있습니다. 포트 192.168.0.1:80을 192.168.0.2:8080으로 전달하고 싶습니다. 하지만 원본 서버가 클라이언트 IP를 얻을 수 있도록 원본 소스 IP를 유지해야 합니다. 다음 규칙이 있지만 클라이언트의 소스 IP가 변경됩니다.

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2:8080
iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.2 --dport 8080 -j SNAT --to-source 192.168.0.1

이 시나리오에 사용할 다른 규칙이 있습니까?

답변1

SNAT 규칙이 포함된 두 번째 줄을 제거해 보세요. 그 규칙은 필요하지 않습니다.

그리고 네트워크 카드는 몇 개나 갖고 있나요? 두 시스템 192.168.0.2 및 192.168.0.1이 동일한 네트워크에 있습니까? 그렇다면 시스템 192.168.0.2는 TCP 포트 8080에서 수신한 패킷을 전달하기 위해 어떤 경로를 사용합니까? 이 패킷을 어떻게 라우팅할까요?

관련 정보