Как настроить прокси на Ubuntu — полное руководство
Оглавление
- Что такое прокси и как они работают
- Настройка прокси на Ubuntu через GUI
- Настройка прокси через терминал (временная и постоянная)
- Конфигурация прокси для APT
- Прокси для Git, wget и других инструментов
- Дополнительные способы (SSH, SOCKS, VPN, Tor)
- Когда прокси не работает — типичные причины и решения
- Безопасность и приватность: что учитывать
- Рольовые чек-листы и пошаговый SOP
- Критерии приёмки и тесты
- Итоги и рекомендации
Что такое прокси и как они работают
Прокси — это промежуточные серверы, которые принимают запросы от вашего устройства и пересылают их целевым сервисам. Простая модель:
- Ваше приложение отправляет запрос на прокси;
- Прокси делает запрос к целевому серверу от своего имени;
- Ответ возвращается к прокси, который пересылает его вам.
Ключевые эффекты:
- Маскировка вашего реального IP-адреса для целевого сайта;
- Возможность скрыть или изменить заголовки запросов;
- Кэширование часто запрашиваемого контента для ускорения выдачи;
- Контроль и фильтрация трафика (например, блокировка ненужных доменов).
Типы прокси (кратко):
- HTTP/HTTPS — работают на уровне веб-трафика, подходят для браузеров и приложений, понимающих HTTP;
- SOCKS5 — универсальный протокол уровня TCP, подходит для любых TCP/UDP приложений (например, SSH, P2P);
- FTP-прокси — для FTP-трафика;
- Прозрачные прокси — перехватывают трафик без явной настройки на клиенте (обычно на границе сети).
Определение: прокси — сервер-посредник, который управляет и перенаправляет сетевые запросы от клиента к серверу.
Настройка прокси на Ubuntu через GUI
Если вы используете рабочий стол Ubuntu (GNOME), самый простой способ — через настройки сети.

- Откройте обзор Activities и запустите Settings (Настройки) или выберите значок «Настройки» на боковой панели.

- В разделе «Сеть» выберите пункт «Прокси».

- Включите «Сетевой прокси» и выберите «Вручную» или «Автоматически».
- При выборе «Вручную» заполните поля IP-адреса и порт для HTTP, HTTPS, FTP или SOCKS5.
- При выборе «Автоматически» укажите URL файла автоконфигурации (PAC).

В поле «Игнорируемые хосты» добавьте адреса локальных ресурсов, для которых прокси использоваться не должен (например, localhost, 192.168.0.0/16).

После сохранения настройка применяется ко многим графическим приложениям, использующим системные прокси через GNOME.
Важно: не все консольные программы автоматически используют настройки GUI — для них дополнительно настраивают переменные окружения или конфигурационные файлы.
Настройка прокси через терминал (временная и постоянная)
Работа в терминале даёт гибкость: вы можете задать прокси только на текущую сессию (временно) или навсегда для пользователя или всей системы.
Временная настройка через переменные окружения
В терминале экспортируйте переменные окружения. Обратите внимание на регистр: некоторые программы читают переменные в нижнем регистре, другие — в верхнем.
Пример с авторизацией (HTTP):
export http_proxy="http://username:password@proxy.example.com:8080"
export https_proxy="http://username:password@proxy.example.com:8080"
export ftp_proxy="http://username:password@proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,::1,10.0.0.0/8"Если прокси не требует аутентификации, можно указывать только адрес и порт:
export http_proxy="134.209.29.120:8080"
export https_proxy="134.209.29.120:8080"Проверка переменной:
echo $http_proxyЕсли значение отображается, приложение, которое использует системные переменные, будет направлять трафик через прокси в текущей сессии.
Примечание: некоторые утилиты требуют верхний регистр (HTTP_PROXY), поэтому для совместимости часто задают обе формы:
export HTTP_PROXY="$http_proxy"
export HTTPS_PROXY="$https_proxy"Постоянная настройка для пользователя
Добавьте переменные в файл конфигурации оболочки:
- Для Bash: ~/.bashrc или ~/.bash_profile
- Для Zsh: ~/.zshrc
Откройте файл и добавьте строки:
# Прокси для рабочего окружения
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,::1"Примените изменения командой:
source ~/.bashrcПостоянная системная настройка
Чтобы задать прокси для всех пользователей и системных сервисов, добавьте переменные в /etc/environment (требуются права root):
sudo nano /etc/environmentДобавьте значения как простые пары ключ=значение без команды export, например:
http_proxy="http://proxy.example.com:8080"
https_proxy="http://proxy.example.com:8080"
no_proxy="localhost,127.0.0.1,::1"После изменения файла перезайдите в сеанс или перезагрузите систему, чтобы системные сервисы увидели новые переменные.
Примечание по безопасности: избегайте хранения паролей в открытом виде. Рассмотрите использование специальных механизмов для управления секретами (см. раздел Безопасность).
Конфигурация прокси для APT
APT не всегда учитывает переменные окружения, поэтому для работы менеджера пакетов настройте файл конфигурации.
Откройте или создайте файл /etc/apt/apt.conf.d/95proxies или отредактируйте /etc/apt/apt.conf:
sudo nano /etc/apt/apt.conf.d/95proxiesДобавьте строки в формате:
Acquire::http::Proxy "http://proxy-server.com:8080";
Acquire::https::Proxy "http://proxy-server.com:8080";
Acquire::ftp::Proxy "http://proxy-server.com:8080";Если прокси требует аутентификации, используйте URL с логином и паролем, но помните о рисках хранения учётных данных в открытом виде:
Acquire::http::Proxy "http://username:password@proxy-server.com:8080";После сохранения выполните обновление списка пакетов, чтобы проверить работу:
sudo apt updateЕсли APT жалуется на соединение, проверьте доступность прокси с помощью curl или telnet и проверьте конфигурацию файла apt.conf.
Прокси для Git, wget и других инструментов
Некоторые консольные утилиты имеют собственные конфигурации для прокси.
Git:
git config --global http.proxy http://proxy-server.com:8080
git config --global https.proxy https://proxy-server.com:8080Проверка:
git config --global --get http.proxyWget:
Отредактируйте ~/.wgetrc и добавьте:
use_proxy = on
http_proxy = http://proxy-server.com:8080
https_proxy = http://proxy-server.com:8080Curl:
Curl обычно читает переменные окружения, но можно явно задать прокси в командной строке:
curl --proxy http://proxy-server.com:8080 https://example.comDocker:
Docker daemon не использует обычные пользовательские переменные. Для Docker Engine настройте демона через systemd файл или /etc/systemd/system/docker.service.d/http-proxy.conf:
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:8080" "NO_PROXY=localhost,127.0.0.1"После изменения перезагрузите systemd и docker:
sudo systemctl daemon-reload
sudo systemctl restart dockerSnap, Flatpak и другие песочницы могут требовать отдельной конфигурации или не поддерживать системные прокси — см. раздел Совместимость.
Дополнительные способы: SSH, SOCKS и VPN
Если прокси-сервер недоступен или вы хотите зашифровать трафик, рассмотрите альтернативы:
- SSH-туннель (SOCKS): быстрый способ получить SOCKS-прокси через удалённый хост:
ssh -D 1080 -N user@remote-hostВ этом случае локальный SOCKS-порт 1080 будет переадресовывать трафик через SSH-соединение.
VPN: создаёт зашифрованный туннель и маршрутизирует весь сетевой трафик через удалённый узел. Подходит, если нужно защитить все приложения и системные сервисы.
Tor: даёт высокий уровень анонимности, но может быть медленнее и не подходит для всех задач.
Когда выбрать что:
- Нужна полная защита всех приложений — VPN;
- Нужно зашифровать выборочные приложения и получить SOCKS — SSH-туннель;
- Нужна анонимность и маршрутизация через распределённую сеть — Tor.
Когда прокси не работает — типичные причины и решения
- Приложение игнорирует переменные окружения
- Решение: проверьте документацию приложения, используйте его собственную конфигурацию (например, Git, Docker, Snap).
- DNS-утечки (приложение резолвит домены вне прокси)
- Решение: убедитесь, что DNS-запросы идут через прокси или настройте локальный DNS через прокси/VPN.
- TLS/HTTPS-инспекция на прокси
- Проблема: прокси, который выполняет MITM для инспекции трафика, ломает проверку сертификатов.
- Решение: импортируйте корневой сертификат прокси в доверенные хранилища или используйте VPN.
- Неправильные переменные (регистр, опечатки)
- Решение: проверьте обе формы HTTP_PROXY и http_proxy, убедитесь в правильности значений.
- Сетевые правила или брандмауэр блокируют соединение с прокси
- Решение: проверьте доступность прокси с помощью ping/telnet/netcat и настройте брандмауэр.
- Аутентификация не проходит
- Решение: проверьте логин/пароль, попробуйте подключиться через curl с указанием учётных данных.
Безопасность и приватность: что учитывать
- Никогда не храните пароли в открытом виде в файлах с широкими правами доступа. Ограничьте права на файлы (chmod 600) или используйте менеджер секретов.
- Прокси-провайдер может видеть и логировать ваш трафик. Если важна конфиденциальность, используйте доверенный VPN или шифрование приложений (HTTPS, SSH).
- Для корпоративного использования настройте централизованную аутентификацию и аудит подключений.
- При передаче персональных данных через сторонние прокси учитывайте требования GDPR/законов о защите данных — убедитесь, что обработка данных соответствует политике вашей организации.
Рекомендации по харднингу:
- Используйте аутентификацию прокси и ротацию учётных данных; при возможности — клиентские сертификаты;
- Скрывайте учётные данные от процесса: храните их в защищённом хранилище и подставляйте динамически;
- Ограничьте доступ к прокси по IP-адресам и используйте ACL;
- Включите логирование и мониторинг аномалий.
Рольовые чек-листы
Системный администратор
- Выбрать тип прокси (HTTP/SOCKS/VPN).
- Подготовить адреса, порты и политики доступа.
- Настроить /etc/environment для системных сервисов.
- Настроить APT и docker, проверить обновления.
- Настроить аудит и логирование.
Разработчик
- Настроить git и wget через прокси.
- Проверить CI/CD, что билд-агенты получают доступ к внешним ресурсам.
- Добавить тесты, проверяющие сетевые вызовы через прокси.
Пользователь по вопросам приватности
- Проверить, какие приложения используют прокси.
- Настроить no_proxy для локальных сервисов.
- Убедиться, что чувствительные данные не идут через ненадёжные прокси.
Пошаговый SOP — быстрая инструкция для развертывания прокси на рабочей станции
- Получите от провайдера прокси: адрес, порт, тип и (при необходимости) учётные данные.
- В GUI: Settings → Network → Proxy → Manual/Automatic, введите данные.
- В терминале (временно): экспортируйте переменные окружения и проверьте echo $http_proxy.
- Для постоянной настройки: добавьте переменные в ~/.bashrc или /etc/environment (для всех пользователей).
- Настройте APT: /etc/apt/apt.conf.d/95proxies.
- Настройте Git: git config –global http.proxy …
- Протестируйте: curl –proxy … https://ifconfig.me или через сервисы определения IP (провайдеры могут блокировать такие сервисы — используйте curl к известному ресурсу).
- Логирование и мониторинг: включите логирование на прокси и проверьте отсутствие ошибок.
Критерии приёмки
- Система выходит в интернет через указанный прокси при выполнении команд из терминала.
- APT успешно выполняет update и install через прокси.
- Git push/pull работает через прокси.
- Чувствительные данные не попадают в открытые логи.
Тест-кейсы и проверки
- Проверка переменных окружения
- Действие: echo $http_proxy
- Ожидаемый результат: отображает корректный URL прокси.
- Проверка APT
- Действие: sudo apt update
- Ожидаемый результат: обновление индекса проходит без ошибок, трафик идёт через прокси.
- Проверка Git
- Действие: git ls-remote https://github.com
- Ожидаемый результат: команда возвращает список ссылок или проходит аутентификацию при приватном репозитории.
- Проверка ограничений no_proxy
- Действие: curl http://localhost
- Ожидаемый результат: локальный адрес не маршрутизируется через прокси.
Совместимость и миграция
- Docker: требует отдельной конфигурации systemd для прокси daemon.
- Snap: некоторые snap-пакеты могут игнорировать системные прокси; проверяйте документацию snap-приложений.
- Flatpak: тоже может требовать отдельной настройки прокси для песочницы.
- Старые приложения на Python/Go могут требовать переменных в верхнем регистре.
При миграции на новую версию Ubuntu проверьте конфигурационные файлы (/etc/environment, .bashrc, apt.conf.d), так как форматы и поведение служб могут меняться.
Примеры неправильного использования и когда прокси не подойдёт
- Ставить открытый прокси без контроля — риск утечки данных и злоупотреблений.
- Использовать непроверенный бесплатный прокси для передачи учётных данных — опасно.
- Проксировать банковские операции через посторонний сервер — лучше использовать VPN или официальный канал.
Минимальный чек-лист для быстрого развертывания
- Получены данные прокси: адрес, порт, тип, учётные данные.
- Настроен GUI или добавлены переменные окружения.
- Настроены APT и Git.
- Проверены no_proxy и локальные ресурсы.
- Проверено логирование и ограничения доступа.
Итоги и рекомендации
Прокси — гибкий инструмент для управления трафиком, обхода блокировок и сохранения приватности. Для домашнего использования достаточно настроек GUI или временных переменных окружения. Для сервера и корпоративной среды предпочтительнее централизованные настройки (/etc/environment, apt.conf.d, Docker systemd), а также внимание к безопасности: криптография, управление секретами и аудит.
Если вам нужна полная защита всех приложений и шифрование на сетевом уровне, рассмотрите VPN. Если требуется анонимность — Tor, но помните о производительности.
Изображения и скриншоты: оригинальные правки и скриншоты автора.
Image credit: Unsplash. All alterations and screenshots by Haroon Javed.
Похожие материалы
MediaTomb: DLNA‑сервер на Linux — установка и настройка
Как исправить ERR_NETWORK_ACCESS_DENIED
Режим невидимости на Mac — как включить
Emby на Linux — установка и настройка
Как улучшить распознавание Siri на iPhone