클라우드의 Wireguard 서버를 매체로 사용하여 인터넷에서 로컬 서버에 액세스하시겠습니까?

클라우드의 Wireguard 서버를 매체로 사용하여 인터넷에서 로컬 서버에 액세스하시겠습니까?

기본적으로 내가 원하는 것은 Google Cloud VM의 공개 IP를 사용하여 로컬 웹 서버에 액세스하고 싶다는 것입니다. 내 로컬 측에는 공개 IP가 없습니다.

내가 넣었을 때gcloud_public_ip:80내 브라우저 URL 표시줄에서 클라우드 VM의 웹 대신 로컬 서버의 웹 포트에 액세스하고 싶습니다.

Wireguard를 성공적으로 구성했습니다. gcloud vm과 로컬 서버 모두의 wg0 인터페이스가 실행 중입니다. 내 로컬 라우터에는 포트 차단이나 IP 필터링이 없습니다. 또한 Google 클라우드 방화벽에서 웹 포트 80/443 udp/tcp 수신 + wireguard 터널용 다른 포트를 열었습니다.

인터넷에서 들어오는 트래픽을 Wireguard 터널의 반대편에 있는 로컬 서버의 웹 포트 80/443으로 리디렉션하려면 클라우드 VM에서 iptables 명령을 사용해야 한다는 내용을 읽었습니다. 나는 그것에 대해 잘 알지 못하지만 내가 배운 한 두 가지 명령을 실행해야 합니다. 하나는 PREROUTING용이고 다른 하나는 POSTROUTING용입니다.

이것은 내가 내린 명령이지만 작동하지 않거나 적어도 뭔가 빠진 것 같습니다.

sudo iptables -t nat -A PREROUTING -i ens4 -p tcp --dports 80,443 -j DNAT --to-destination 10.0.3.2
sudo iptables -t nat -A POSTROUTING -p tcp -d 10.0.3.2 --dports 80,443 -j SNAT --to-source 10.140.0.2
  • ens4는 공개 IP가 매핑된 Google Cloud VM의 내부 인터페이스입니다.

  • 10.0.3.2는 로컬 서버의 측 터널 IP입니다.

  • 10.140.0.2는 공개 IP가 매핑된 ens4의 IP입니다.

답변1

VPS 서버에 규칙을 설정하여 웹 서버와의 트래픽을 적절하게 처리할 수 있습니다.

그러나 Wireguard 터널을 통해 모든 트래픽을 전달하는 웹 서버에 규칙을 설정해야 합니다.

웹 서버의 Wireguard 터널을 통해 기본 경로를 설정해야 합니다. 사용 중인 실제 인터넷 연결을 통해 VPS에 대한 호스트 경로가 있어야 합니다.

모든 세부 사항은 네트워크 설정의 세부 사항에 따라 달라집니다.

관련 정보