공용 IP에서 클라이언트로 Ubuntu의 포트 전달

공용 IP에서 클라이언트로 Ubuntu의 포트 전달

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

관련 정보