나는 이 질문에 대한 답을 찾고 있었고 몇 가지 IPtable 규칙을 만들었지만 정확히 내가 원하는 것을 찾지 못했습니다.
클라이언트가 연결하는 서비스를 호스팅하지만 한 클라이언트의 복잡성으로 인해 동일한 공용 IP 주소에서 두 번 연결해야 하므로 문제가 발생합니다. 따라서 다른 공용 IP 주소에서 가져와야 합니다. 일반적으로 다음과 같습니다(세부 사항 변경됨).
50.10.10.1의 클라이언트는 TCP 1234를 통해 서버 60.60.10.1에 연결됩니다.
클라이언트가 두 번 연결할 수 있도록 하기 위해 클라이언트가 연결하는 EC2 인스턴스를 시작할 수 있다고 생각했습니다. 그러면 소스 IP 주소가 인스턴스의 IP 주소로 바뀌어 클라이언트가 다른 곳에서 오는 것처럼 보입니다. 그것은 다음과 같습니다;
50.10.10.1의 클라이언트는 TCP 1234를 통해 30.20.10.1의 인스턴스에 연결됩니다. 그런 다음 인스턴스는 소스 IP 주소를 30.20.10.1로 바꾸고 패킷을 60.60.10.1 TCP 1234로 전달합니다.
내부 프록시 서버(예: 오징어 또는 방화벽 규칙)를 사용하여 이 작업을 수행하는 방법을 찾을 수 있지만 인터넷에 있는 EC2 인스턴스에서 IPTables를 사용하여 이 작업을 수행하는 방법을 모르겠습니다. 누구든지 어떤 제안이 있습니까? 이 규칙에 대한 제안을 찾았지만 작동하지 않습니다.
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 30.20.10.1 --dport 1234 -s 50.10.10.1 -j DNAT --to-destination 60.60.10.1:1234