Binding IPv6 e IPVersion in uscita nel proxy HTTP Indy
Aggiungere binding locali IPv4/IPv6 espliciti prima dell’attivazione; scegliere la famiglia di next-hop necessaria su OutboundClient prima che si connetta.
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;Applicare questo al TIdHTTPProxyServer inattivo esistente, poi usare la sua normale attivazione. Gli indirizzi loopback accettano deliberatamente solo client locali; l’uso remoto richiede indirizzi di interfaccia raggiungibili e controlli di accesso. Verificare il confine di accesso risultante prima di esporre quell’ascoltatore.
I binding in ingresso e il socket in uscita svolgono compiti diversi:
| Socket | Selezione della famiglia |
|---|---|
| Il client raggiunge il proxy | Ogni voce Bindings esplicita |
| Il proxy raggiunge il next hop | L’OutboundClient.IPVersion del contesto |
Un listener IPv6, quindi, non impone IPv6 a ogni destinazione. Se il carico di lavoro richiede una famiglia di next-hop esplicita, impostarla in OnHTTPBeforeCommand prima che quel client si connetta, in base al percorso di destinazione previsto.
Separare il guasto del listener da quello del next hop quando un lato funziona. Affidarsi a binding automatici può altrimenti introdurre nel confronto ipotesi dipendenti dalla piattaforma.