iptables를 사용하여 localhost로 리디렉션

iptables를 사용하여 localhost로 리디렉션

192.168.0.2:80나가는 트래픽을 에서 (localhost 또는 머신이 게이트웨이이기 때문에 다른 곳에서 ) 로 리디렉션하고 싶습니다 localhost:80.

나는 nat 테이블에 이 규칙을 설정하려고 합니다:

-A PREROUTING -p tcp -d 192.168.0.2 --dport 80 -j DNAT --to-destination 127.0.0.1:80

이것을 입력하면 다음 규칙이 적용됩니다 iptables -t nat -L.

DNAT       tcp  --  anywhere             192.168.0.2          tcp dpt:http to:127.0.0.1:80

그러나 이것은 작동하지 않는 것 같습니다. 내가 뭘 잘못했나요?

답변1

최신 커널에서는 "route_localnet"을 활성화하여 이를 달성할 수 있습니다.

sysctl -w net.ipv4.conf.all.route_localnet=1

답변2

루프백 IP 주소(127.0.0.1)가 연결 가능하도록 설정되어 있는지 다시 한번 확인하세요 localhost. 둘 다 핑하여 둘 다 좋은 응답을 받는지 확인합니다.

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination 
  1. iptables를 확인하세요.

    sudo iptables -L -n

  2. 이 규칙을 추가해 보세요

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

관련 정보