
LAN 내부에 서버(S1)가 있고 라우터는 제어할 수 없습니다. 서버에 openvpn이 설치되어 있고 SSH를 사용하여 로그인할 수 있습니다. LAN에 다른 서버(S2)가 있는데 S2의 포트를 S1 포트로 전달하고 싶습니다.
만약 내가한다면
sudo iptables -t nat -A PREROUTING -p tcp -m tcp -d S1 --dport 8001 -j DNAT --to-destination S2:80
그런 다음 S1의 LAN 인터페이스에 있는 내 컴퓨터에서 S1:8001에 연결해 보십시오.
IP **my_vpn_ip**.48174 > S2.80: Flags [S], seq 4243753453, win 14600, options [mss 1368,sackOK,TS val 89266048 ecr 0,nop,wscale 7], length 0
분명히 S2는 내 컴퓨터에 대한 경로가 없고 응답을 보낼 수 없기 때문에 작동하지 않습니다. S1의 소스를 스푸핑하여 패킷을 다시 가져온 다음 NAT를 수행할 수 있습니까?
S2는 기능이 매우 제한된 IP 카메라이므로 경로를 변경할 수 없습니다.
답변1
연결하려는 호스트에서 SNAT/Masquerading을 설정합니다. 그러면 소스 주소가 NAT 상자에서 오는 프록시로 표시되도록 수정됩니다.
이렇게 간단한 규칙을 사용하면 원하는 대로 작동할 수 있습니다.
iptables -t nat -A POSTROUTING --destination S2 -j MASQ