Como tornar um servidor doméstico privado conectado a um servidor wireguard em nuvem vpn acessível ao público?

Como tornar um servidor doméstico privado conectado a um servidor wireguard em nuvem vpn acessível ao público?

Basicamente, o que eu quero fazer é tornar um servidor doméstico local acessível publicamente na Internet. Infelizmente meu ISP está usando CGNAT e para obter um IP público, preciso pagar a mais (cerca de US$ 50). Achei que seria mais barato usar VPS.

Portanto, configurei um servidor Wireguard no Google Cloud por meio da VM do Compute Engine executando o Ubuntu 20.04. Também configurei um cliente Wireguard para meu servidor local em casa e conectei-o ao servidor Wirequard no Google Cloud. Por fim configurei outro cliente Wireguard no meu telefone Android, conectei-o ao servidor e tudo funcionou bem. Quando estou conectado ao meu telefone Android, posso ver meu servidor local de fora (usando dados móveis para fins de teste).

Agora quero disponibilizar o servidor local em casa ao público. Eu tenho um domínio e configurei os registros necessários. Quando faço ping, ele retorna o ip público da VM GCE, o que acredito significa que está funcionando bem. Em seguida, instalei o Nginx em minha VM GCE. Tudo está funcionando bem. Consegui acessar a página padrão do Nginx por meio do domínio e do endereço IP público. Em seguida, modifiquei a configuração padrão usando o seguinte e reiniciei o Nginx depois.

server {
    listen 80;
    listen [::]:80;

    server_name sub.domain.org; #sample only

    location / {
            proxy_redirect http://10.200.200.2 http://sub.domain.org;
    }
}

Meu Wireguard está na faixa de IP 10.200.200.x (não tenho certeza se este é o termo correto) e 10.200.200.2 é o endereço IP do wireguard do meu servidor doméstico local.

Posso não ter entendido como o Nginx funciona, mas esperava que, através do Nginx, pudesse acessar meu servidor doméstico local publicamente navegandohttp://sub.domain.org. Infelizmente não consegui acessá-lo publicamente. Só é acessível quando me conecto ao wireguard.

Há mais alguma coisa que eu preciso fazer?

Agradeço qualquer feedback.

Responder1

Você deve ler os documentos de ngx_http_proxy_moduleemhttp://nginx.org/en/docs/http/ngx_http_proxy_module.html.

Documentos para proxy_redirectestados:

Define o texto que deve ser alterado nos campos de cabeçalho “Local” e “Atualizar” de uma resposta do servidor proxy.

Portanto, atualmente você apenas aconselhou o nginx a alterar algum texto em alguns cabeçalhos, mas não a passar nenhum tráfego para o destino (servidor doméstico).

Você precisa, pelo menos, de umproxy_passdiretivapara fazer isso funcionar.

Tenha em mente que o nginx não substitui o conteúdo dos seus sites! Portanto, se o seu site em seu servidor doméstico atende caminhos absolutos, você precisa consertar isso.

informação relacionada