К содержимому

Прокси в Linux: http_proxy, GNOME, apt и dnf

Как настроить прокси в Linux: переменные http_proxy, https_proxy и no_proxy, как сохранить их после перезагрузки, панель прокси в GNOME и отдельные настройки apt и dnf.

Что понадобится

Подготовьте четыре значения из «Моих активов»: адрес, порт, логин и пароль. Для инструментов Linux при покупке выбирайте протокол HTTP: HTTP у Proxy302 — это порт 2222 (SOCKS5 — порт 3333), а статический IP выдаётся только с одним протоколом. Эта статья только про Linux: переменные окружения, GNOME, apt и dnf. Системные настройки прокси в Windows 11 и macOS и разницу между системным прокси и прокси внутри программы разбирает руководство по настройкам прокси, а параметры curl — руководство по curl.

Быстрый способ: переменные окружения в терминале

Переменная окружения — это значение с именем, которое программа читает при запуске. Консольные программы в Linux ищут прокси в переменных http_proxy, https_proxy и no_proxy. Выполните строки ниже в терминале, подставив свои HOST, PORT, USERNAME и PASSWORD, и все программы, запущенные из этого окна терминала, смогут их использовать. После закрытия окна настройка исчезает, поэтому так удобно сначала проверить прокси.

http_proxy действует для адресов http://, https_proxy — для адресов https://. В переменной записан адрес самого прокси, поэтому у HTTP-прокси в обеих переменных он начинается с http://. По документации curl, если задан ещё и ALL_PROXY, переменная конкретного протокола приоритетнее.

Переменные окружения: пример

export http_proxy="http://USERNAME:PASSWORD@HOST:PORT"
export https_proxy="$http_proxy"
export no_proxy="localhost,127.0.0.1,.example.internal"
export HTTP_PROXY="$http_proxy"
export HTTPS_PROXY="$http_proxy"
export NO_PROXY="$no_proxy"

Замените HOST, PORT, USERNAME и PASSWORD значениями из «Моих активов».

Строчные или заглавные буквы, и no_proxy

В документации curl сказано: все имена переменных прокси, кроме http_proxy, можно писать и заглавными буквами, например HTTPS_PROXY, а http_proxy принимается только строчными из-за протокола CGI (так веб-серверы передают запрос скрипту): заглавный HTTP_PROXY не раз приводил к проблемам с безопасностью. Поэтому опирайтесь на строчные имена; в примере заглавные тоже заданы, потому что некоторые программы читают только их. Как именно читать переменные, решает каждая программа: если какая-то игнорирует ваш прокси, загляните в её документацию.

no_proxy — список имён хостов через запятую, которые идут без прокси. По документации curl, имя с точкой в начале означает весь домен: .example.internal подходит к www.example.internal, а одна звёздочка * — ко всему. Добавьте localhost, 127.0.0.1 и свои внутренние адреса, чтобы локальный трафик не уходил через прокси.

Спецсимволы в логине и пароле

Если в логине или пароле есть спецсимволы, закодируйте их в адресе: @ → %40, : → %3A, / → %2F, # → %23, % → %25. Иначе адрес разберётся неправильно, и прокси ответит ошибкой авторизации. Чтобы не опечататься, копируйте данные из «Моих активов». И помните: пароль в переменной или в конфиге может прочитать любой, кто видит этот файл или историю команд.

Как сделать переменные постоянными

Переменные, заданные в терминале, пропадают при его закрытии. Чтобы они остались, добавьте те же строки в файл запуска вашей оболочки: ~/.bashrc для bash, ~/.zshrc для zsh. Затем откройте новый терминал или выполните source ~/.bashrc.

Для всей системы подойдёт /etc/environment. В руководстве pam_env сказано, что это простые строки КЛЮЧ=значение, слово export игнорируется, а файл читается, только когда приложение открывает PAM-сессию. Обычно это графический и текстовый вход, но руководство их не перечисляет, поэтому после правки выйдите и войдите снова и проверьте способом ниже. Не забудьте потом убрать прокси из /etc/environment: он действует на всех пользователей и все программы.

Как сделать переменные постоянными: пример

# ~/.bashrc (or ~/.zshrc): applies to every new terminal of your user
export http_proxy="http://USERNAME:PASSWORD@HOST:PORT"
export https_proxy="$http_proxy"
export no_proxy="localhost,127.0.0.1"

# /etc/environment: for the whole system, plain KEY=value lines
http_proxy=http://USERNAME:PASSWORD@HOST:PORT
https_proxy=http://USERNAME:PASSWORD@HOST:PORT
no_proxy=localhost,127.0.0.1

Первая часть — для одного пользователя, вторая — для всей системы; выберите одну из них, не обе.

GNOME: Сеть > Сетевой прокси

  1. Откройте раздел прокси

    Откройте «Обзор», начните вводить «Сеть», зайдите в неё и выберите в списке слева «Сетевой прокси». Этот путь описан в справке GNOME; в разных версиях названия могут отличаться.

  2. Выберите «Вручную»

    Варианты: «Нет» (программы подключаются напрямую), «Вручную» и «Автоматически» (ссылка на файл настроек). Выберите «Вручную».

  3. Укажите адрес и порт

    Для каждого протокола, который нужно пустить через прокси, введите адрес и порт: HTTP, HTTPS, FTP или SOCKS. Для HTTP-прокси заполните HTTP и HTTPS одним и тем же адресом и портом.

Ограничения этой панели

В справке GNOME сказано, что приложения, использующие сетевое подключение, применят эти настройки, но не сказано, какие программы их читают, и нет ни слова о логине и пароле. Браузеры и графические приложения обычно им следуют, а консольные инструменты и apt — как правило, нет: настройте их способами из других разделов. Для прокси с логином и паролем используйте переменные, а не эту панель.

apt (Debian, Ubuntu, Mint)

apt скачивает пакеты по своим настройкам, и sudo может не передать ему переменные вашего терминала: в руководстве sudoers сказано, что по умолчанию команда запускается в новом минимальном окружении (env_reset). Поэтому apt нужен свой файл. Создайте /etc/apt/apt.conf.d/95proxy с двумя строками ниже. В руководстве apt-transport-http описан параметр Acquire::http::Proxy и форма адреса scheme://[[user[:pass]@]host[:port]/], а значение DIRECT означает «без прокси». Там же сказано, что логин и пароль можно держать в apt_auth.conf, а не в адресе.

Параметр Acquire::https::Proxy на прочитанной нами официальной странице отдельно не описан: в apt.conf сказано лишь, что область https описана в руководстве apt-transport-https, которое мы не читали. Во многих системах для https пишут так же, поэтому оставьте вторую строку и проверьте командой sudo apt update.

apt: пример

# /etc/apt/apt.conf.d/95proxy
Acquire::http::Proxy "http://USERNAME:PASSWORD@HOST:PORT/";
Acquire::https::Proxy "http://USERNAME:PASSWORD@HOST:PORT/";

Создайте файл через sudo, например sudo nano /etc/apt/apt.conf.d/95proxy.

dnf (Fedora, RHEL, Rocky, Alma)

У dnf свои настройки в /etc/dnf/dnf.conf. В справочнике DNF для секции [main] перечислены proxy, proxy_username и proxy_password, и сказано: если proxy не задан, dnf берёт переменные curl вроде http_proxy. Логин и пароль можно записать в отдельные параметры, тогда кодировать спецсимволы не нужно.

dnf: пример

# /etc/dnf/dnf.conf
[main]
proxy=http://HOST:PORT
proxy_username=USERNAME
proxy_password=PASSWORD

Добавьте три строки под существующий заголовок [main].

А SOCKS5 в Linux

С curl можно использовать SOCKS5: ALL_PROXY=socks5h://USERNAME:PASSWORD@HOST:3333. В документации curl при socks5 имя сайта разрешает ваш компьютер, а при socks5h — прокси, поэтому socks5h не даёт DNS-запросам идти мимо прокси. Не рассчитывайте, что другие программы поймут такую переменную. В руководстве apt-transport-http среди схем адреса для apt указан socks5h, но на прочитанной странице dnf про SOCKS5 ничего нет; чтобы настройки совпадали, для менеджеров пакетов берите HTTP-прокси.

Docker и контейнеры

Переменные выше сами в контейнеры Docker не попадают, а у демона Docker свои настройки. Это разобрано в отдельном руководстве.

Как проверить, что всё работает

  1. Проверьте IP выхода

    Выполните первую команду ниже. Она покажет IP, страну и сеть, которые видят сайты. Как читать поля ip, country, city и org, объясняет руководство по проверке IP прокси.

  2. Проверьте менеджер пакетов

    Выполните sudo apt update или sudo dnf makecache. Если пакеты скачиваются без ошибок, файл работает. Если соединение обрывается по таймауту, прокси не используется или недоступен.

  3. Сравните с прокси и без

    Запустите curl в терминале с переменными, затем в другом терминале, где их нет. IP-адреса в ответах должны отличаться.

Как проверить, что всё работает: пример

curl https://ipinfo.io/json
sudo apt update          # Debian, Ubuntu
sudo dnf makecache       # Fedora, RHEL and relatives

Первую строку выполняйте в терминале, где заданы переменные.

Как отключить прокси

В терминале выполните команду unset ниже. Удалите добавленные строки из ~/.bashrc или /etc/environment, файл /etc/apt/apt.conf.d/95proxy и строки прокси из dnf.conf, а в панели GNOME верните значение «Нет». Затем снова выполните проверку curl и убедитесь, что виден ваш обычный адрес.

Как отключить прокси: пример

unset http_proxy https_proxy no_proxy HTTP_PROXY HTTPS_PROXY NO_PROXY ALL_PROXY

Это действует только на текущий терминал, файлы правятся отдельно.

Частые ошибки

407 Proxy Authentication Required

Проверьте Неверный логин или пароль либо не закодирован спецсимвол.

Решение Заново скопируйте данные из «Моих активов» и закодируйте спецсимволы.

curl идёт через прокси, а apt — нет

Проверьте sudo может запускать apt с чистым окружением.

Решение Создайте /etc/apt/apt.conf.d/95proxy, как показано выше.

В GNOME прокси задан, а терминал показывает прежний IP

Проверьте Программы в терминале читают свои переменные.

Решение Задайте http_proxy и https_proxy, как показано выше.

Заглавный HTTP_PROXY не действует

Проверьте curl принимает только строчный http_proxy.

Решение Запишите http_proxy строчными буквами.

Таймауты

Проверьте Прокси не отвечает на этом порту или срок аренды IP закончился.

Решение Проверьте дату окончания в «Моих активах» и выполните проверку curl.

Как сделать с Proxy302

Статический ISP-прокси подходит, если серверу или рабочему компьютеру нужен один постоянный адрес: IP фиксирован на весь срок аренды и не меняется. При покупке выберите HTTP: менеджеры пакетов и большинство консольных инструментов в Linux работают с HTTP-прокси. Если важен трафик, есть ротируемые резидентные прокси с оплатой за ГБ: HTTP на порту 2222, SOCKS5 на порту 3333 адреса proxy.proxy302.com. Подробности — на странице статических резидентных прокси.

Как сделать с Proxy302: шаги

  1. Шаг 1

    Откройте страницу статического ISP, выберите страну, поставьте «Протокол» — HTTP, выберите срок и количество, затем проверьте стоимость и создайте.

  2. Шаг 2

    Откройте «Мои активы» и скопируйте HOST, PORT, USERNAME и PASSWORD. На странице «Подключение» есть готовый пример с вашими данными. HTTP — порт 2222.

  3. Шаг 3

    Подставьте значения в http_proxy и https_proxy (а при использовании apt и dnf — и в их файлы).

  4. Шаг 4

    Проверьте выход командой curl https://ipinfo.io/json.

  5. Шаг 5

    Из материкового Китая сначала запустите вспомогательную программу со страницы «Подключение» и держите её открытой, пока пользуетесь прокси.

Цены и ограничения

Статический ISP-IP стоит $0,50 за один день и $7,99 за 30 дней, около $0,27 в день, в любой стране одинаково. Наличие по странам меняется каждый день и показано на странице заказа. Бесплатного пробного периода нет, минимальная покупка — один IP на один день.

Частые вопросы

Какой протокол выбрать для Linux, HTTP или SOCKS5?

HTTP. На прочитанной странице dnf описан только адрес прокси без упоминания SOCKS5, поэтому для менеджеров пакетов надёжнее HTTP. С curl SOCKS5 работает хорошо.

Почему sudo не видит мои переменные прокси?

По умолчанию sudo запускает команду в новом минимальном окружении (env_reset в руководстве sudoers). Задайте прокси в собственных файлах настроек apt и dnf.

Нужны ли и строчные, и заглавные переменные?

Для curl надёжны строчные. Задать обе формы ничего не стоит и подойдёт программам, которые читают только заглавные.

Если прокси задан в GNOME, пойдёт ли через него терминал?

Нет. Программы в терминале читают переменные окружения.

Ссылки и источники

9
  1. curl: Everything curl, переменные окружения для прокси

    Официальная документация · Проверено:

    Прочитано 2 ноября 2026: переменные [схема]_proxy, ALL_PROXY, приоритет конкретной переменной, верхний регистр допустим для всех имён, кроме http_proxy, NO_PROXY как список через запятую, точка в начале означает весь домен.

    В примере только http://, правил записи схемы адреса прокси страница не даёт.

  2. curl: Everything curl, SOCKS-прокси

    Официальная документация · Проверено:

    Прочитано 2 ноября 2026: при socks5 имя хоста разрешает сам curl, при socks5h — прокси.

  3. Руководство Ubuntu: apt.conf(5)

    Официальная документация · Проверено:

    Прочитано 2 ноября 2026: фрагменты настроек лежат в /etc/apt/apt.conf.d/ и читаются в алфавитно-цифровом порядке; области http и https описаны в руководствах apt-transport-http и apt-transport-https.

    Параметр Acquire::https::Proxy на странице сам не описан, примера с HTTP-прокси нет.

  4. Руководство Ubuntu: apt-transport-http(1)

    Официальная документация · Проверено:

    Прочитано 2 ноября 2026: Acquire::http::Proxy, переменная http_proxy для общесистемной настройки, значение DIRECT — без прокси, формат адреса scheme://[[user[:pass]@]host[:port]/], а логин и пароль можно вынести в apt_auth.conf(5).

    Страница описывает только область http, руководство apt-transport-https не читалось. Также в ней перечислены схемы socks5h, http и https.

  5. Справочник по настройке DNF

    Официальная документация · Проверено:

    Прочитано 2 ноября 2026: proxy, proxy_username, proxy_password и proxy_auth_method в секции main, файл по умолчанию /etc/dnf/dnf.conf. Если proxy не задан, используются переменные curl вроде http_proxy.

  6. Справка GNOME: настройка прокси

    Официальная документация · Проверено:

    Прочитано 2 ноября 2026: Обзор, Сеть, Сетевой прокси; варианты «Нет», «Вручную» и «Автоматически»; вручную задаются адрес и порт для HTTP, HTTPS, FTP и SOCKS.

    Про логин и пароль для прокси страница не говорит и не перечисляет, какие программы читают эти настройки.

  7. Руководство Linux: pam_env(8)

    Официальная документация · Проверено:

    Прочитано 2 ноября 2026: /etc/environment — простые строки КЛЮЧ=значение, слово export игнорируется, модуль срабатывает, только когда приложение открывает PAM-сессию.

    Какие способы входа открывают такую сессию, страница не перечисляет.

  8. Руководство sudo: sudoers(5)

    Официальная документация · Проверено:

    Прочитано 2 ноября 2026: env_reset включён по умолчанию, команда запускается в новом минимальном окружении; ключ -E отключает это только если разрешён SETENV.

    http_proxy на странице не упоминается.

  9. Факты о продуктах Proxy302 и прайс-лист

    Наблюдение за продуктом · Проверено:

    Файл фактов сайта (сверен с консолью, бэкендом и таблицей цен 18–19 октября 2026): протоколы и порты, цены в долларах (1 PTC = $1), сроки аренды, бесплатного пробного периода нет.

Готовы попробовать?

Создайте аккаунт, пополните баланс и выберите ротируемый резидентный, статический ISP или дата-центр IP — настроить его в браузере можно за несколько минут.