Indy HTTP 프록시의 IPv6 바인딩과 아웃바운드 IPVersion
활성화 전에 명시적인 로컬 IPv4/IPv6 바인딩을 추가하십시오. 연결하기 전에 OutboundClient에서 필요한 다음 홉 패밀리를 선택하십시오.
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;이 내용을 비활성 상태의 기존 TIdHTTPProxyServer 에 적용한 뒤 평소의 활성화를 사용하십시오. loopback 주소는 의도적으로 로컬 클라이언트만 받습니다. 원격 사용에는 접근 가능한 인터페이스 주소와 접근 제어가 필요합니다. 그 결과로 생기는 접근 경계를 확인하십시오 해당 리스너를 노출하기 전에.
인바운드 바인딩과 아웃바운드 소켓은 서로 다른 일을 합니다.
| 소켓 | 패밀리 선택 |
|---|---|
| 클라이언트가 프록시에 도달 | 각각의 명시적 Bindings 항목 |
| 프록시가 다음 홉에 도달 | 컨텍스트의 OutboundClient.IPVersion |
따라서 IPv6 리스너가 모든 목적지를 IPv6로 강제하지는 않습니다. 워크로드가 명시적인 다음 홉 패밀리를 요구하면 해당 클라이언트가 연결하기 전에 OnHTTPBeforeCommand 에서 설정하여 의도한 목적지 경로와 맞추십시오.
한쪽만 동작할 때는 리스너 장애와 다음 홉 장애를 분리하십시오. 자동 바인딩에 의존하면 플랫폼 의존적인 가정이 비교에 들어올 수 있습니다.