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 до подключения этого клиента, в соответствии с предполагаемым путём к назначению.

Отделяйте сбой прослушивателя от сбоя следующего перехода, когда одна сторона работает. Опора на автоматические привязки иначе может внести в сравнение предположения, зависящие от платформы.

Похожие статьи