Глобальные переменные окружения
В Linux-системах большинство консольных утилит и сервисов считывают параметры прокси из переменных окружения. Это самый быстрый способ направить трафик через прокси без редактирования глубоких системных файлов. Существует два способа установки переменных: временный (для текущей сессии терминала) и постоянный (сохраняется после перезагрузки).
Временная настройка в Bash/Zsh
Для активации прокси в рамках одной сессии используйте команду export. Это полезно, если вам нужно разово выполнить команду через GProxy, не меняя настройки всей системы. Синтаксис выглядит следующим образом:
export http_proxy="http://username:password@proxy_ip:port"
export https_proxy="http://username:password@proxy_ip:port"
export ftp_proxy="http://username:password@proxy_ip:port"
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
Если в пароле содержатся специальные символы (например, @, :, $), их необходимо закодировать в формате Percent-encoding (URL-encoding). Например, символ @ заменяется на %40. Это критично для стабильной аутентификации.
Постоянная настройка через /etc/environment
Для того чтобы прокси работал глобально для всех пользователей и после перезагрузки, параметры вносятся в файл /etc/environment. Этот файл не является скриптом, поэтому команда export здесь не используется.
- Откройте файл с правами суперпользователя:
sudo nano /etc/environment. - Добавьте строки с параметрами вашего прокси-сервера.
- Сохраните изменения и выйдите из редактора.
http_proxy="http://user:pass@1.2.3.4:8080/"
https_proxy="http://user:pass@1.2.3.4:8080/"
no_proxy="localhost,127.0.0.1"
Изменения вступят в силу после повторного входа в систему. Для мгновенного применения в текущем терминале выполните source /etc/environment.

Настройка пакетных менеджеров (APT, DNF, Pacman)
Пакетные менеджеры часто игнорируют глобальные переменные окружения в целях безопасности или из-за специфики работы под sudo. Чтобы обновления системы и установка софта проходили через выделенные IP GProxy, необходимо прописать настройки в их персональные конфиги.
APT (Debian, Ubuntu, Linux Mint)
В дистрибутивах на базе Debian настройки хранятся в директории /etc/apt/apt.conf.d/. Рекомендуется создать отдельный файл 95proxies, чтобы не загромождать основной конфиг.
# Создаем файл
sudo nano /etc/apt/apt.conf.d/95proxies
# Добавляем содержимое
Acquire::http::Proxy "http://user:pass@proxy_ip:port/";
Acquire::https::Proxy "http://user:pass@proxy_ip:port/";
DNF и YUM (Fedora, RHEL, CentOS)
Для систем семейства Red Hat настройки вносятся непосредственно в главный конфигурационный файл пакетного менеджера.
# Для DNF (современные системы)
sudo nano /etc/dnf/dnf.conf
# Добавьте в конец файла:
proxy=http://proxy_ip:port
proxy_username=user
proxy_password=pass
Pacman (Arch Linux, Manjaro)
Pacman использует внешние утилиты для загрузки (по умолчанию curl). Поэтому в Arch Linux достаточно настроить переменные окружения, как было описано выше. Однако, если требуется жесткая привязка, отредактируйте /etc/pacman.conf, раскомментировав или добавив строку XferCommand с флагами прокси для curl.
XferCommand = /usr/bin/curl -x http://user:pass@proxy_ip:port -L -C - %u > %o
Использование Proxychains для приложений без поддержки прокси
Некоторые консольные утилиты и старые приложения не умеют работать с прокси напрямую. В таких случаях используется proxychains4 — инструмент, который перехватывает сетевые вызовы приложения и принудительно направляет их через цепочку прокси (или один сервер).
Установка в Ubuntu/Debian: sudo apt install proxychains4.
Конфигурация выполняется в файле /etc/proxychains4.conf. В конец файла в секцию [ProxyList] добавьте данные вашего сервера GProxy:
# Тип прокси | IP | Порт | Пользователь | Пароль
socks5 1.2.3.4 1080 user1 pass123
После этого любую команду можно запустить через прокси, просто добавив префикс: proxychains4 curl https://ifconfig.me. Это идеальное решение для работы с SOCKS5, когда нужно обеспечить максимальную анонимность трафика.

Сравнение методов настройки прокси в Linux
Выбор метода зависит от ваших задач: нужно ли проксировать всю систему, только браузер или конкретный скрипт для парсинга данных.
| Метод | Сфера применения | Сложность | Поддержка SOCKS5 |
|---|---|---|---|
| Переменные окружения | Большинство консольных утилит (curl, wget) | Низкая | Частично |
| /etc/environment | Глобально для всей системы | Средняя | Зависит от приложения |
| Proxychains | Любые TCP-приложения | Средняя | Полная |
| Настройки GUI (Gnome/KDE) | Браузеры, системные обновления в GUI | Низкая | Да |
Настройка прокси в Docker
Работа с Docker-контейнерами требует отдельного внимания, так как контейнеры изолированы от переменных окружения хостовой системы. Если вам нужно, чтобы docker build или запущенный контейнер использовали GProxy, необходимо настроить Docker-демон или Dockerfile.
Настройка демона (для скачивания образов)
Создайте директорию для конфигурации сервиса: sudo mkdir -p /etc/systemd/system/docker.service.d. Создайте файл http-proxy.conf:
[Service]
Environment="HTTP_PROXY=http://user:pass@proxy_ip:port/"
Environment="HTTPS_PROXY=http://user:pass@proxy_ip:port/"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
После этого перезагрузите конфигурацию и сервис Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
Проверка работоспособности и отладка
После настройки необходимо убедиться, что трафик действительно идет через прокси-сервер. Самый надежный способ — запрос к внешнему API, возвращающему ваш текущий IP-адрес.
# Проверка через curl (использует переменные окружения)
curl https://api.ipify.org
# Проверка с явным указанием прокси (игнорирует переменные)
curl -x http://user:pass@proxy_ip:port https://ifconfig.me
Если вы разрабатываете софт на Python и хотите проверить доступность прокси программно, используйте библиотеку requests. Это стандарт де-факто для работы с HTTP-запросами.
import requests
proxies = {
'http': 'http://user:pass@proxy_ip:port',
'https': 'http://user:pass@proxy_ip:port',
}
try:
response = requests.get('https://api.ipify.org', proxies=proxies, timeout=10)
print(f"Ваш IP через прокси: {response.text}")
except Exception as e:
print(f"Ошибка подключения: {e}")
Если запрос возвращает ошибку 407 (Proxy Authentication Required), проверьте правильность логина и пароля, а также наличие разрешенного IP в панели управления GProxy (если используется привязка по IP).
Выводы
Настройка прокси в Linux не является унифицированным процессом — она распределена между системными переменными и специфическими конфигами приложений. Вы узнали, как прописать прокси глобально через /etc/environment, как настроить пакетные менеджеры для безопасного обновления и как использовать Proxychains для принудительного туннелирования трафика.
Практические советы:
- Всегда используйте SOCKS5 для задач, требующих высокой анонимности и работы с UDP-трафиком, так как протокол HTTP передает меньше метаданных.
- Для автоматизации работы в разных сетях используйте алиасы в
.bashrc, чтобы быстро включать и выключать прокси одной командой (например,alias proxy_on='export http_proxy=...'). - При работе с высоконагруженными скриптами на Python или Go через GProxy, используйте пул IP-адресов, чтобы избежать блокировок со стороны целевых ресурсов.
Читайте также
Как выбрать прокси-провайдера: продвинутые критерии и сравнение
