Eu tenho lutado com a pergunta acima por inúmeras horas e não consegui encontrar uma explicação para o comportamento neste site ou em qualquer outro site para esse assunto. Pode ser que eu esteja usando as consultas erradas. Esta é minha primeira pergunta sobre estouro de pilha, então seja gentil ;)
A configuração que estou usando:
Eu tenho um servidor atrás do meu roteador (que tem IP interno 192.168.2.254) e uso o encaminhamento de porta para encaminhar as portas públicas 80 e 443 para o meu servidor (ubuntu). Eu posso acessar esse servidor digitando seu IP público (digamos 80.81.82.83) ou indo para um domínio (digamos example.org) cujos registros A contêm o mesmo IP público ou digitando seu IP interno (digamos 192.168.2.1 ) quando na mesma rede. Eu uso o NGINX nesse servidor como um proxy reverso para delegar a solicitação aos aplicativos (web) apropriados no mesmo servidor. O roteador é o roteador padrão que recebi do meu provedor de internet.
Eu tenho dois clientes se conectando a esse servidor, o cliente A está na mesma rede que o servidor (digamos 192.168.2.2), enquanto o cliente B não está na mesma rede, mas em qualquer outro lugar do mundo (digamos 90.91.92.93).
Quando me conecto com o cliente B (ou seja, não na mesma rede) ao meu servidor (usando o IP público ou o nome de domínio) e verifico os logs de acesso NGINX para o IP do cliente (ou seja, $remote_addr) o endereço IP correto/esperado é mostrado: 90.91.92.93.
Agora a parte que não entendi:
Quando eu conecto com o cliente A (mesma rede do servidor) ao servidor usando o IP interno do servidor (192.168.2.1) os logs de acesso mostram o endereço IP correto/esperado do cliente: 192.168.2.2. Mas quando eu me conecto do mesmo cliente ao servidor usando o endereço IP público ou o nome de domínio, os logs de acesso NGINX mostram o endereço IP do roteador: 192.168.2.254.
Por que isso acontece? Dessa forma, não consigo logar (e agir) em quais clientes internos se conectam ao servidor.
Isso acontece porque quando você se conecta ao endereço IP público (ou nome de domínio público que usa o endereço IP público), a conexão vai do seu cliente (192.168.2.2), para o roteador (192.168.2.254), então o roteador NATs o endereço de origem da conexão para sua própria interface, ou seja, para o endereço IP da interface mais próxima do destino .