iptables: 공용 프록시를 통해 패킷을 example.com으로 라우팅합니다.

iptables: 공용 프록시를 통해 패킷을 example.com으로 라우팅합니다.

공용 프록시를 통해 일부 웹사이트에 액세스하고 싶지만 iptables를 사용하여 해당 웹사이트에 올바르게 액세스할 수 없는 것 같습니다. 5.6.7.8:8080의 공용 프록시를 통해 IP 주소 1.2.3.4로 example.com에 액세스한다고 가정해 보겠습니다. 내가 한 일은 다음과 같습니다.

iptables -t nat -A PREROUTING --dst 1.2.3.0/24 -p tcp --dport 80 -j DNAT --to-destination 5.6.7.8:8080
iptables -t nat -A POSTROUTING --dst 5.6.7.8 -p tcp --dport 8080 -j SNAT --to-source 1.2.3.4:80
iptables -t nat -A OUTPUT --dst 1.2.3.0/24 -p tcp --dport 80 -j DNAT --to-destination 5.6.7.8:8080

그런데 웹 페이지를 전혀 로드할 수 없습니다(프록시에 액세스할 수 없는 것처럼 보이지만 라우팅 규칙을 설정하지 않고 브라우저의 프록시 설정에서 설정하여 테스트했기 때문에 그렇습니다). 내가 뭘 잘못했나요?

답변1

첫 번째는 다음 명령을 사용하여 IP 전달을 활성화하는 것입니다.

echo "1" > /proc/sys/net/ipv4/ip_forward

그런 다음 다음을 사용하여 사전 라우팅 규칙을 추가합니다. (1.2.3.0/24 네트워크 전체를 언급할 필요는 없을 것 같습니다.)

iptables -t nat -A PREROUTING --dst 1.2.3.4 -p tcp --dport 80 -j DNAT --to-destination 5.6.7.8:8080

다음 명령을 사용하여 포스트 라우팅 규칙을 추가합니다.

iptables -t nat -A POSTROUTING -j MASQUERADE

관련 정보