설명된 것과 동일한 문제가 발생했습니다.포트 전달을 위해 VPN 클라이언트 사용, 그러나 성공하지 못했습니다.
OpenVPN 액세스 서버 버전 2.5와 사이트 간 라우팅으로 구성된 클라이언트가 있습니다. 클라이언트와 서버 모두 개인 IP 주소를 사용하여 서로 통신할 수 있습니다. 클라이언트 측에는 포트 8081을 수신하는 Apache 서버가 있습니다.
목표는 OpenVPN 서버의 공용 IP에 연결하고 사용자가 뒤에 있는 Apache 서버에 액세스할 수 있도록 연결을 클라이언트에 전달하도록 하는 것입니다.
내 현재 설정은 다음과 같습니다
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -d 50.xxx.xxx.xxx -p tcp --dport 8081 -j DNAT --to-dest 192.168.2.86:8081
iptables -t nat -A POSTROUTING -d 192.168.2.86 -p tcp --dport 8081 -j SNAT --to-source 10.0.2.42
내가 잘못하고 있는 간단한 일이 있나요? 감사해요.
답변1
문제는 iptables 규칙과 관련이 있습니다. 다음 규칙을 추가하면 모든 것이 예상대로 작동합니다.
iptables -t nat -I PREROUTING 1 -d {SERVER_LOCAL_IP_ADDRESS} -p tcp --dport {CLIENT_PORT} -j DNAT --to-dest {CLIENT_LOCAL_IP_ADDRESS}:{CLIENT_PORT}
iptables -t nat -I POSTROUTING 1 -d {CLIENT_LOCAL_IP_ADDRESS} -p tcp --dport {CLIENT_PORT} -j SNAT --to-source {VPN_GATEWAY_IP}
iptables -I FORWARD 1 -d {CLIENT_LOCAL_IP_ADDRESS} -p tcp --dport {CLIENT_PORT} -j ACCEPT
답변2
SNAT는 다른 포트 번호 DNAT 및 차트와 일치하므로 이 설정은 OpenVPN 클라이언트가 OpenVPN 서버를 통해 인터넷으로 다시 라우터 역할을 하는 경우에만 작동합니다.
32400을 8081로 바꿔야 할 것 같습니다.