로컬 포트를 원격 포트(8041)로 원격 컴퓨터(10.0.0.42)의 포트(8042)로 전달하고 싶습니다. 나는 이것을 할 수 있습니다
ssh -L 10.0.0.41:8041:10.0.0.42:8042 user@localhost
어디에 10.0.0.41
있어야 합니까 eth0
?
이제 모든 사용자 공간과 암호화 오버헤드 없이 이 작업을 수행하고 싶습니다.
내 추측은
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 10.0.0.41 --dport 8041 -j DNAT --to 10.0.0.42:8042
IP 전달을 활성화했지만 작동하지 않습니다.
답변1
SNAT 규칙도 추가해야 합니다.
이제 다음이 있습니다.
Client ---> NAT box ---> Server
/|\ |
| /
\_____________________/
클라이언트는 NAT에 대해 모르기 때문에 서버에서 직접 응답이 오면 혼란스러워집니다. 따라서 서버가 NAT 상자를 소스로 인식하도록 해야 하며, 이는 SNAT 규칙을 추가하여 수행할 수 있습니다.
Client <---> NAT box <---> Server