Вопрос или проблема
Когда apt настроен на использование прокси, есть возможность обойти прокси для определенных IP-адресов, используя ключевое слово “DIRECT”.
Например:
Acquire::http::Proxy::"10.10.10.1" "DIRECT";
Есть ли способ сделать это для диапазона подсетей?
Просто использование CIDR, как это, похоже, не работает:
Acquire::http::Proxy::"10.10.10.0/24" "DIRECT";
Это не прямой ответ, но это также решает вашу проблему. Я написал скрипт для обнаружения и обработки apt-proxy.
Он проверяет прокси, и если он не работает для определенной цели, он просто осуществляет прямое подключение, так что больше не нужно вручную настраивать такого рода параметры.
Если вам интересно, посмотрите его на github.
Ответ или решение
Для настройки apt
на использование прокси-сервера с возможностью исключения целых подсетей, это действительно проблематично, так как стандартный механизм конфигурации apt
не поддерживает использование CIDR для исключений из прокси. Однако, существует несколько решений этой задачи.
1. Использование нескольких правил для исключений
Вместо попытки указать подсеть в одном правиле, вы можете указать конкретные IP-адреса, которые находятся в подсети. Например, для подсети 10.10.10.0/24
, можно прописать следующее:
Acquire::http::Proxy::"10.10.10.1" "DIRECT";
Acquire::http::Proxy::"10.10.10.2" "DIRECT";
Acquire::http::Proxy::"10.10.10.3" "DIRECT";
# и так далее для всех IP в подсети
Этот метод может быть трудоемким, но он работает.
2. Использование скрипта для обработки прокси
Согласно вашему сообщению, вы упомянули о наличии скрипта, который проверяет доступность прокси и автоматически выбирает режим подключения. Это действительно эффективное решение проблемы. Запуск такого скрипта позволит вам исключить необходимость в сложной ручной настройке.
Вы можете использовать скрипт из репозитория на GitHub, который вы указали:
Данный скрипт будет автоматически проверять, работает ли прокси для целевого адреса. Если прокси не отвечает, он переключится на прямое соединение, таким образом исключая ручную настройку.
3. Использовать другие инструменты
Если вам нужно больше гибкости и контроль за соединениями, вы также можете рассмотреть использование iptables
или proxychains
, которые могут переопределять соединения на основании заданных вами условий.
Заключение
К сожалению, возможности apt
для исключения подсетей в прокси ограничены, и вам все равно придется прибегнуть к обходным решениям, либо через ручную настройку на основе IP-адресов, либо с помощью написанного скрипта. Использование автоматического подхода с помощью вашего скрипта будет наиболее эффективным и менее трудозатратным способом решения данной проблемы.