Basicamente o que eu quero é usar o IP público do google cloud vm para acessar meu servidor web local. Não tenho nenhum IP público no meu lado local.
Quando eu colocogcloud_public_ip:80na barra de URL do meu navegador, quero obter acesso à porta web do meu servidor local em vez da web da nuvem VM.
Configurei o wireguard com sucesso. As interfaces wg0 no gcloud vm e no servidor local estão instaladas e funcionando. Não há bloqueio de porta ou filtragem de IP no meu roteador local. Também abri as portas da web 80/443 de entrada udp/tcp no firewall do Google Cloud + algumas outras portas para o túnel wireguard.
Eu li que preciso usar o comando iptables na nuvem vm para redirecionar o tráfego de entrada da Internet para a porta web 80/443 do meu servidor local, que está do outro lado do túnel wireguard. Não estou muito familiarizado com isso, mas pelo que aprendi, preciso emitir dois comandos; um para PREROUTING e outro para POSTROUTING .
Estes são os comandos que emiti, mas não estão funcionando ou pelo menos acho que ainda está faltando alguma coisa.
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 é a interface interna de um google cloud vm que possui ip público mapeado para ele.
10.0.3.2 é o IP do túnel lateral do servidor local.
10.140.0.2 é o ip do ens4 que possui ip público mapeado para ele.
Responder1
Você configurou regras em seu servidor VPS, para que ele possa lidar com o tráfego de/para seu servidor web de maneira adequada.
No entanto, você precisa configurar regras em seu servidor web que encaminhem todo o tráfego através do túnel Wireguard.
Você precisa configurar uma rota padrão através do túnel Wireguard em seu servidor web. É necessário que haja uma rota de host para o VPS por meio da conexão de Internet real que você está usando.
Todos os detalhes dependem dos detalhes mais detalhados da configuração da sua rede.