Перейти к содержимому

Настройка прокси в Linux (Ubuntu/Debian): системные и консольные методы

Гайды
Настройка прокси в Linux (Ubuntu/Debian): системные и консольные методы

Настройка прокси-сервера в дистрибутивах на базе Linux (Ubuntu, Debian) реализуется через определение переменных окружения, конфигурацию конфигурационных файлов пакетного менеджера APT и индивидуальные параметры прикладного ПО. В отличие от Windows, в Linux не существует единого глобального переключателя, поэтому для полной проксификации системы требуется комбинированный подход, включающий работу с терминалом и системными директориями.

Настройка прокси в Linux (Ubuntu/Debian): системные и консольные методы

Системные переменные окружения: Базовый метод

Использование переменных окружения — это основной способ сообщить консольным утилитам и многим графическим приложениям (например, браузерам Chromium или Firefox) о необходимости перенаправления трафика. В Linux принято использовать как строчные, так и прописные варианты написания имен переменных, так как разные программы могут отдавать приоритет разным регистрам. Для временной настройки в рамках текущей сессии терминала используются следующие команды:
export http_proxy="http://user:password@proxy_ip:port"
export https_proxy="http://user:password@proxy_ip:port"
export ftp_proxy="http://user:password@proxy_ip:port"
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
Если ваш пароль содержит спецсимволы (например, @, :, $), их необходимо предварительно преобразовать в URL-encoded формат. Например, символ @ заменяется на %40. При использовании качественных прокси от GProxy с авторизацией по IP, ввод логина и пароля в строке подключения можно опустить, что упрощает синтаксис и повышает безопасность скриптов.

Перманентная настройка через /etc/environment

Чтобы настройки сохранялись после перезагрузки системы и применялись ко всем пользователям, необходимо отредактировать файл /etc/environment. Этот файл считывается системой при загрузке и инициализации PAM-сессий.
  1. Откройте файл с правами суперпользователя: sudo nano /etc/environment.
  2. Добавьте строки с параметрами вашего прокси:
http_proxy="http://proxy_ip:port/"
https_proxy="http://proxy_ip:port/"
ftp_proxy="http://proxy_ip:port/"
no_proxy="localhost,127.0.0.1"
HTTP_PROXY="http://proxy_ip:port/"
HTTPS_PROXY="http://proxy_ip:port/"
После сохранения файла изменения вступят в силу после следующего входа в систему. Для немедленного применения в текущей сессии выполните source /etc/environment.

Настройка прокси для пакетного менеджера APT

Настройка переменных окружения часто игнорируется менеджером пакетов APT (Advanced Package Tool) в целях безопасности. Это означает, что команды apt update и apt upgrade могут не работать за прокси-сервером, даже если переменные http_proxy установлены. Для корректной работы APT необходимо создать отдельный конфигурационный файл в директории /etc/apt/apt.conf.d/. Рекомендуется использовать отдельный файл, например 99proxy, чтобы не загромождать основной конфиг.
sudo nano /etc/apt/apt.conf.d/99proxy
Вставьте в него следующие строки:
Acquire::http::Proxy "http://user:password@proxy_ip:port/";
Acquire::https::Proxy "http://user:password@proxy_ip:port/";
Если вы используете SOCKS5 прокси, APT поддерживает их через префикс socks5h://, что позволяет резолвить DNS-имена на стороне прокси-сервера, предотвращая утечки DNS.

Настройка через графический интерфейс (GNOME/Ubuntu Desktop)

Для пользователей десктопных версий Ubuntu настройка через GUI является наиболее быстрым способом для работы браузеров и системных обновлений.
  1. Перейдите в "Settings" (Настройки) -> "Network" (Сеть).
  2. Найдите раздел "Network Proxy" и нажмите на иконку шестеренки.
  3. Выберите режим "Manual" (Ручной).
  4. Введите IP-адрес и порт для HTTP, HTTPS и FTP протоколов.
  5. Если требуется аутентификация, GNOME запросит её при первой попытке выхода в сеть.
Стоит учитывать, что настройки GNOME сохраняются в базе данных dconf. Их можно изменять программно с помощью утилиты gsettings, что полезно для автоматизации настройки рабочих станций:
gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http host 'proxy_ip'
gsettings set org.gnome.system.proxy.http port 8080
Настройка прокси в Linux (Ubuntu/Debian): системные и консольные методы

Конфигурация популярных CLI-инструментов

Многие консольные инструменты имеют собственные файлы конфигурации, которые имеют приоритет над системными переменными.

Настройка cURL

Для постоянной работы cURL через прокси создайте файл ~/.curlrc:
proxy = "http://user:password@proxy_ip:port"

Настройка Wget

Для Wget конфигурация правится в файле /etc/wgetrc (глобально) или ~/.wgetrc (локально):
use_proxy = on
http_proxy = http://proxy_ip:port/
https_proxy = http://proxy_ip:port/
proxy_user = user
proxy_password = password

Настройка Git

Git часто требует настройки прокси для клонирования репозиториев из внешних источников (GitHub, GitLab):
git config --global http.proxy http://user:password@proxy_ip:port
git config --global https.proxy http://user:password@proxy_ip:port

Программная реализация: Использование прокси в Python на Linux

При разработке скриптов автоматизации на Ubuntu/Debian часто возникает необходимость программного управления прокси. Библиотека requests является стандартом де-факто для этих задач.
import requests

# Настройка словаря с прокси
proxies = {
    'http': 'http://user:password@proxy_ip:port',
    'https': 'http://user:password@proxy_ip:port',
}

try:
    # Запрос через прокси GProxy
    response = requests.get('https://api.ipify.org?format=json', proxies=proxies, timeout=10)
    print(f"Ваш текущий IP через прокси: {response.json()['ip']}")
except Exception as e:
    print(f"Ошибка соединения: {e}")
При использовании GProxy в высоконагруженных скриптах рекомендуется использовать сессии (requests.Session()), чтобы избежать лишних оверхедов на установку TCP-соединения при каждом запросе.

Сравнение методов настройки прокси в Linux

Метод Область действия Сложность Постоянство
Переменные окружения (export) Текущий терминал Низкая До закрытия терминала
/etc/environment Вся система (все пользователи) Средняя Постоянно
/etc/apt/apt.conf.d/ Только менеджер пакетов APT Средняя Постоянно
Настройки GUI (GNOME) Графические приложения Низкая Постоянно
Конфиги приложений (.curlrc, .gitconfig) Конкретная утилита Низкая Постоянно

Нюансы работы с SOCKS5

SOCKS5 является более универсальным протоколом по сравнению с HTTP/HTTPS, так как он работает на транспортном уровне и может пропускать любой трафик (TCP/UDP). Однако не все стандартные утилиты Linux поддерживают его "из коробки" через переменные окружения. Для полной проксификации приложений, не поддерживающих прокси, в Linux используется утилита proxychains. Она перехватывает системные вызовы динамически связанных программ и перенаправляет их через цепочку прокси.
  1. Установите утилиту: sudo apt install proxychains4.
  2. Отредактируйте конфиг /etc/proxychains4.conf, добавив в конец параметры вашего прокси (например, от GProxy).
  3. Запускайте любую команду через префикс: proxychains4 curl https://google.com.

Безопасность и хранение учетных данных

Хранение паролей в открытом виде в файлах вроде /etc/environment или .bashrc является риском безопасности. Если систему используют несколько человек, любой пользователь сможет прочитать ваши учетные данные прокси. Рекомендация: Используйте авторизацию по IP-адресу, которую предоставляет GProxy. Это позволяет избавиться от хранения логинов и паролей в конфигурационных файлах. Если же использование пароля неизбежно, ограничьте права доступа к конфигурационным файлам: chmod 600 ~/.curlrc.

Выводы

Настройка прокси в Linux требует понимания того, на каком уровне работает целевое приложение. Для системного администрирования и автоматизации достаточно настройки /etc/environment и конфигов APT. Для специфических задач парсинга или обхода ограничений лучше использовать индивидуальные настройки инструментов или proxychains. Практические советы:
  • Всегда проверяйте работоспособность прокси после настройки командой curl -I https://google.com. Если возвращается HTTP 200, настройка верна.
  • Используйте no_proxy для локальных ресурсов, чтобы избежать задержек при обращении к внутренним сервисам или Docker-контейнерам.
  • Для стабильной работы в Linux-серверах выбирайте резидентные или серверные прокси от GProxy, которые обеспечивают аптайм 99.9% и высокую скорость отклика, критичную для консольных утилит.
support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.