ProxyServer.Bindings.Clear;
with ProxyServer.Bindings.Add do
begin
  IPVersion := Id_IPv4;
  IP := '127.0.0.1';
  Port := 8080;
end;
with ProxyServer.Bindings.Add do
begin
  IPVersion := Id_IPv6;
  IP := '::1';
  Port := 8080;
end;

Aplique isto ao TIdHTTPProxyServer existente e inativo e depois use a sua ativação normal. Os endereços loopback aceitam deliberadamente apenas clientes locais; o uso remoto exige endereços de interface alcançáveis e controlos de acesso. Verifique a fronteira de acesso resultante antes de expor esse ouvinte.

As ligações de entrada e o socket de saída desempenham tarefas diferentes:

SocketSeleção de família
O cliente chega ao proxyCada entrada explícita de Bindings
O proxy chega ao próximo saltoO OutboundClient.IPVersion do contexto

Um ouvinte IPv6, portanto, não força cada destino a IPv6. Se a carga de trabalho exigir uma família de próximo salto explícita, defina-a em OnHTTPBeforeCommand antes de esse cliente se conectar, de acordo com o caminho de destino pretendido.

Separe a falha do ouvinte da falha do próximo salto quando um lado funciona. Confiar em ligações automáticas pode, de outra forma, introduzir pressupostos dependentes da plataforma na comparação.

Artigos relacionados