Ubuntu 서버 20.04 및 OpenVPN이 설치된 VPS에서는 vps 공용 IP의 특정 포트에서 나오는 모든 트래픽을 VPN 클라이언트의 동일한 포트로 전달해야 합니다.
VPS IP:
vps public ip: 1.1.1.1
vps vpn ip: 10.8.0.1
클라이언트 IP:
vpn client ip: 10.8.0.2
포트 587에 대한 포트 전달:
1.1.1.1:587 >> 10.8.0.2:587
VPS(1.1.1.1)에서 명령을 실행하려고 했습니다.
sudo iptables -t nat -A PREROUTING -p tcp --dport 587 -j DNAT --to-destination 10.8.0.2:587
sudo iptables -t nat -A POSTROUTING -p tcp -d 10.8.0.2 --dport 587 -j SNAT --to-source 1.1.1.1
그러나 패킷은 IP 10.8.0.2로 전달되지 않습니다.
올바른 포트 전달을 위해 iptables를 어떻게 구성해야 하는지 아시나요?
답변1
예상대로 작동하는 이 솔루션을 찾았습니다.
sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -p tcp --dport 587 -j DNAT --to-destination 10.8.0.2:587
#exclude "lo" interface, otherwise dns service stop working
sudo iptables -t nat -A POSTROUTING ! -o lo -j MASQUERADE