Todos os produtos
Search
Central de documentação

Server Load Balancer:Obter endereços IP do cliente por meio de uma instância NLB

Última atualização: Jul 03, 2026

Os listeners de camada 4 do Network Load Balancer (NLB) permitem que os servidores de backend obtenham o endereço IP do cliente. Na maioria dos casos, basta ativar a preservação de IP do cliente em um grupo de servidores. No entanto, ative o Proxy Protocol no listener do NLB e nos servidores de backend quando um cliente IPv6 acessar um serviço IPv4, a instância NLB utilizar um listener TCPSSL ou a instância NLB estiver associada a um grupo de servidores do tipo IP.

Métodos para obter endereços IP do cliente

获取客户端真实IP

Usar preservação de IP do cliente

Ao criar um grupo de servidores para uma instância NLB, ative a Client IP Preservation. Com esse recurso ativado, o servidor de backend recebe o endereço IP real do cliente como endereço IP de origem.

Em alguns cenários, a preservação de IP do cliente não está disponível e é necessário usar o Proxy Protocol. Para mais informações, consulte Usar Proxy Protocol.

Usar Proxy Protocol

O Proxy Protocol transmite as informações originais de conexão do cliente de um servidor proxy para um servidor de backend.

Sem o Proxy Protocol, o servidor proxy substitui o endereço IP de origem e a porta do cliente pelos seus próprios no cabeçalho da requisição. Isso impede que o servidor de backend visualize os detalhes originais da conexão.

Com o Proxy Protocol, o servidor proxy adiciona as informações originais de conexão em um cabeçalho dedicado. O servidor de backend analisa esse cabeçalho para recuperar o endereço IP de origem, a porta de origem e o protocolo de transporte do cliente.

Esse mecanismo possibilita logs precisos, controle de acesso e monitoramento de tráfego nos servidores de backend.

Importante
  • Importante: Tanto o servidor proxy (neste caso, o listener do NLB) quanto o servidor de backend devem oferecer suporte ao Proxy Protocol. Se você ativar esse recurso e o servidor de backend não conseguir analisar o cabeçalho do Proxy Protocol, a análise da requisição poderá falhar e afetar a disponibilidade do serviço.

  • Os listeners do NLB usam o Proxy Protocol para adicionar informações originais de conexão, como endereço IP de origem, endereço IP de destino, porta de origem e porta de destino, ao cabeçalho de dados TCP ou UDP. Esse processo não descarta nem sobrescreve dados existentes.

  • O NLB oferece suporte apenas ao Proxy Protocol v2. Essa versão suporta vários protocolos de transporte, como TCP e UDP. Para mais informações, consulte The PROXY protocol.

Ative o Proxy Protocol no listener do NLB e nos servidores de backend nos seguintes cenários:

  • Um cliente IPv6 acessa um serviço IPv4 em um servidor de backend

  • A instância NLB usa um listener TCPSSL (um listener TCPSSL não pode ser associado a um grupo de servidores com preservação de IP do cliente ativada).

  • A instância NLB está associada a um grupo de servidores do tipo IP (grupos de servidores do tipo IP não oferecem suporte à preservação de IP do cliente).

Procedimento

Preservação de IP do cliente

Pré-requisitos

  • Crie um grupo de servidores NLB e adicione servidores de backend a ele. Este tópico usa um grupo de servidores do tipo ECS como exemplo. O protocolo de backend é TCP, instâncias ECS são usadas como servidores de backend e a aplicação nos servidores de backend utiliza a porta 80. Para mais informações, consulte Grupos de servidores NLB.

Etapa 1: Verificar a preservação de IP do cliente

  1. Faça login no console do Network Load Balancer.

  2. Na barra de navegação superior, selecione a região onde a instância está implantada.

  3. Na página Server Groups, localize o grupo de servidores desejado e clique em seu ID.

  4. Na página de detalhes do grupo de servidores, verifique se o campo Client IP Preservation está definido como Enabled. Caso esteja como Disabled, clique em Modify Basic Information e ative o recurso.

Etapa 2: Validar a obtenção do IP do cliente

Se o NGINX for usado como servidor de backend, verifique os logs do NGINX para confirmar a obtenção do endereço IP do cliente.

O exemplo a seguir mostra a configuração padrão de campos de log no NGINX:

http {
  # Default configuration
  log_format  main  '$remote_addr- $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
	#...
}

O caminho padrão do arquivo de log do NGINX é /var/log/nginx/access.log.

O primeiro endereço IP em cada entrada de log corresponde ao endereço IP do cliente.

140.205.1xxx -- [xxx] xxx xxx xxx xxx xxx xxx
xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx
140.205.xx.29 -- [27/xxx] xxx xxx xxx xxx xxx xxx 527 xxx
xxx xxx xxx xxx xxx xxx xxx xxx xxx
140.205.xx.29 -- [2xxx] xxx xxx 304 xxx xxx xxx xxx xxx

Proxy Protocol

Pré-requisitos

  • Crie um grupo de servidores NLB e adicione servidores de backend a ele. Este tópico usa um grupo de servidores do tipo ECS como exemplo. O protocolo de backend é TCP, instâncias ECS são usadas como servidores de backend e a aplicação nos servidores de backend utiliza a porta 80. Para mais informações, consulte Grupos de servidores NLB.

  • Crie uma instância NLB e adicione um listener a ela. Este tópico usa um listener TCP na porta 80 como exemplo. Para mais informações, consulte Criar e gerenciar instâncias NLB.

    Nota
    • Antes de ativar o Proxy Protocol, certifique-se de que seus servidores de backend ofereçam suporte ao Proxy Protocol v2. Caso contrário, novas conexões falharão.

    • Se vários listeners de uma instância estiverem associados ao mesmo grupo de servidores, ative o Proxy Protocol para todos eles.

    • O NGINX Plus R16 ou posterior e o NGINX open source 1.13.11 ou posterior oferecem suporte ao Proxy Protocol v2.

Etapa 1: Ativar o Proxy Protocol no listener

  1. Faça login no console do Network Load Balancer.

  2. Na barra de navegação superior, selecione a região onde a instância está implantada.

  3. Na página Instances, localize a instância desejada e clique em seu ID.

  4. Na página Instance Details, clique na aba Listener, localize o listener desejado e clique no ID do listener.

  5. Na página Listener Details, verifique se o campo Enable Proxy Protocol está definido como Enabled. Se não estiver ativado, clique em Modify Listener e ative o recurso.

Etapa 2: Ativar o Proxy Protocol no servidor de backend

Esta seção utiliza CentOS 7.9 e NGINX 1.20.1 como exemplo. Sua configuração pode variar.

  1. Faça login no servidor de backend e execute o comando nginx -t para localizar o caminho do arquivo de configuração. O caminho padrão geralmente é /etc/nginx/nginx.conf, mas o caminho real pode variar.

  2. Modifique e salve o arquivo de configuração para ativar o Proxy Protocol, conforme o exemplo a seguir.

    http {
      # Make sure to set $proxy_protocol_addr. This variable is used to record the client IP address.
      log_format  main  '$proxy_protocol_addr - $remote_addr- $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
      # For a listener on port 80, add the proxy_protocol parameter.
      server {
        listen 80   proxy_protocol;
        #...
      }
    }
                
  3. Execute o comando sudo nginx -s reload para recarregar o arquivo de configuração do NGINX.

Etapa 3: Validar a obtenção do IP do cliente

Se o NGINX for usado como servidor de backend, verifique os logs do NGINX para confirmar a obtenção do endereço IP do cliente.

O caminho padrão do arquivo de log do NGINX é /var/log/nginx/access.log.

Em cada entrada de log, o endereço IP correspondente à variável $proxy_protocol_addr é o endereço IP do cliente.

140.205.1xxx -- [xxx]
xxx
140.205.xx.29 -- [27/xxx] xxx xxx xxx
xxx
140.205.xx.29 -- [2xxx] 304 xxx xxx xxx
xxx

Referência do cabeçalho Proxy Protocol v2

Caso não utilize o NGINX, consulte a estrutura do cabeçalho Proxy Protocol v2 abaixo e The PROXY protocol para implementar uma análise personalizada. Consulte a documentação oficial do seu servidor para obter detalhes.

  • A figura a seguir mostra o formato binário do cabeçalho Proxy Protocol v2 ao transportar um endereço de cliente IPv4:IPv4

  • A figura a seguir mostra o formato binário do cabeçalho Proxy Protocol v2 ao transportar um endereço de cliente IPv6:IPv6

Perguntas frequentes

Obtenção de IPs de cliente em um ambiente ACK

Em um cluster Container Service for Kubernetes (ACK), o método é o mesmo, mas alguns detalhes operacionais diferem. Consulte Perguntas frequentes sobre gerenciamento de rede.

Documentos relacionados

O método para obter o endereço IP do cliente varia conforme o tipo de balanceador de carga: