Как легко настроить прокси в Linux

3

Операционная система Linux предлагает одни из самых гибких и глубоких возможностей для интеграции промежуточного сервера. Настройка прокси в Linux реализуема на нескольких уровнях: для всей системы, отдельного пользователя, конкретных приложений или даже конкретных команд в терминале, в отличие от Windows и macOS, где все ограничивается системной конфигурацией или требует стороннего ПО.

Это достигается за счет открытой архитектуры системы, широкого набора инструментов и поддержки переменных окружения, которые позволяют задавать прокси быстро, удобно и безопасно — без необходимости использовать дополнительный софт.

Настройка прокси в Linux осуществляется двумя основными способами:

  • через терминал — для автоматизации, скриптов и профессиональной работы;

  • через графический интерфейс — для повседневного использования браузеров и других приложений.

Маршрутизация трафика может быть полезной в самых разных сценариях: от повышения конфиденциальности в интернете до работы с API, автоматизированными скриптами, парсерами и тестированием контента из других регионов. Также смена IP-адреса необходима, когда требуется разделить трафик между разными приложениями или работать в рамках лимитов по количеству запросов с одного IP.

Настройки прокси в Linux через командную строку

Конфигурация промежуточного сервера через терминал необходима при работе с консольными утилитами, например, curl, wget, docker скрипты на Python, Node.js и т.д., а также для:

  • запуска только определенных команд через прокси, не затрагивая систему и другие приложения;

  • временных краткосрочных задач, например, проверки работоспособности самого IP-адреса;

  • автоматизации и запуска скриптов.

Параметры в данных случаях задаются через переменные окружения, такие как http_proxy и https_proxy.

Постоянная настройка

Инструкция, как выполняются настройки прокси HTTP, HTTPS и SOCKS на Linux.

  1. Откройте файл ~/.bashrc с помощью команды:

    nano ~/.bashrc

  2. Пролистните файл вниз и в конце добавьте следующие строки, предварительно заполнив их своими данными:

    export http_proxy="http://логин:пароль@ip:порт"

    export https_proxy="http://логин:пароль@ip:порт"

    export all_proxy="socks5://логин:пароль@ip:порт"

  3. Примените параметры, использовав команду:

    source ~/.bashrc

Файл с настройками запускается автоматически при каждом открытии терминала, соответственно прокси будет работать постоянно для всех терминальных сессий этого пользователя.

Временная настройка

Для этого нет необходимости редактировать системные файлы. Выполняются следующие действия:

  1. Откройте терминал и введите команды с параметрами прокси:

    export http_proxy="http://логин:пароль@ip:порт"

    export https_proxy="http://логин:пароль@ip:порт"

    export all_proxy="socks5://логин:пароль@ip:порт"

  2. Выполните нужные команды. Например:

    curl https://example.com

  3. После выполнения команды — закройте терминал через интерфейс или с использованием клавиш Ctrl + D.

Все временные переменные будут сброшены, и при повторном запуске не будут применены.

Настройка прокси в Linux для отдельных приложений

Если необходимо маршрутизировать трафик только одного конкретного приложения, не затрагивая другие программы или системные настройки, это также возможно в командной строке, при запуске необходимой утилиты. Такой способ особенно удобен для краткосрочных задач или при необходимости протестировать работу через определенный IP-адрес.

Например, для утилиты curl это выглядит так:

curl --proxy http://логин:пароль@ip:порт https://example.com

В этой команде:

  • curl: сама программа (ее можно заменить на другую утилиту);

  • --proxy: ключ, указывающий на использование промежуточного узла;

  • http://логин:пароль@ip:порт: данные сервера, включая авторизацию;

  • https://example.com: адрес, к которому осуществляется запрос.

Чтобы использовать другой инструмент, например npm, pip, git или любую другую CLI-программу, рекомендуется проверить ее документацию: у многих из них есть собственные параметры прокси (например, npm config set proxy, pip install --proxy=...). В таком случае curl и соответствующий ключ заменяется на нужные для выбранной программы.

Настройки прокси сервера в Linux через графический интерфейс

Данный вариант конфигурации подходит в тех случаях, когда используются графические приложения (например, браузеры, мессенджеры), запускаемые через меню системы или ярлыки рабочего стола. Он не предполагает редактирования конфигурационных файлов, и более удобен для использования профилей: прокси для одной Wi-Fi сети, прямое подключение — для другой.

Принцип настройки прокси в Linux таким способом будет одинаковым для всех графических систем. Инструкция предоставлена на примере Ubuntu с оболочкой GNOME Shell:

  1. Нажмите на кнопку пуска и выберите пункт «Настройки» из главного меню.

  2. В параметрах сети, к которой вы подключены, выберите пункт «Прокси».

  3. Активируйте функцию использования промежуточного сервера, передвинув указанный тумблер в активное положение, после чего выберите режим «Вручную» в поле «Конфигурация».

  4. В полях, соответствующих используемому протоколу, введите IP-адрес и порт. Вверху нажмите «Сохранить».

  5. При открытии браузера и некоторых приложений появится окно авторизации, куда нужно ввести логин и пароль.

  6. При необходимости исключить проксификацию трафика для некоторых узлов, сделать это можно в специальном поле в окне настройки сервера до сохранения параметров.

Как проверить настройки прокси в Linux

В случае конфигурации через переменные окружения работоспособность промежуточного сервера можно проверить, открыв терминал и выполнив команду:

env | grep -i proxy

В выводе должны отображаться строки с новым IP-адресом и портом. Также можно выполнить тестовый запрос через curl, не указывая параметры вручную: 

curl https://api.ipify.org

Если выводится IP-адрес, принадлежащий прокси, значит переменные окружения работают корректно.

Временно заданная настройка прокси в Linux проверяется таким же образом, однако стоит учитывать, что эти переменные исчезнут после закрытия терминала. Поэтому важно убедиться в их наличии в текущем окне, пока оно открыто.

Проверить параметры отдельных приложений (например, wget, apt, npm, git и др.) можно через соответствующие конфигурационные файлы. Например, для wget это ~/.wgetrc, для apt — файлы внутри /etc/apt/apt.conf.d/. Также можно запустить само приложение с запросом к внешнему ресурсу и убедиться, что оно использует прокси (например, через wget https://api.ipify.org), сравнив IP-адрес или поведение приложения с тем, как оно работало до этого.

При работе через графический интерфейс системы, работоспособность лучше всего проверять через браузер в специальном онлайн-чекере. Если отображается IP-адрес промежуточного сервера, значит графическая настройка работает.

Особенности и ограничения настройки прокси в Linux

  1. Авторизация при настройке через графический интерфейс.

    В графическом интерфейсе (GNOME, KDE и др.) нет возможности сразу указать логин и пароль. Если промежуточный сервер требует авторизацию, логин/пароль запрашиваются при первом подключении в приложении (например, при запуске браузера). Но некоторые системные службы или фоновые приложения не умеют их запрашивать — в таком случае соединение просто не устанавливается, и они перестают работать корректно.

    Решение:

    • использовать расширения (FoxyProxy, Proxy Auto Auth), если необходимо проксифицировать только трафик браузера;

    • настроить авторизацию через терминал, где можно явно указать логин:пароль.

  2. Не все приложения поддерживают SOCKS-протокол через переменные окружения.

    Переменная all_proxy="socks5://..." работает не во всех CLI-утилитах.

    Например:

    • curl — поддерживает SOCKS через --socks5;

    • wget, apt — не поддерживают SOCKS вообще (нужен HTTP-протокол).

    Решение: для протокола SOCKS можно использовать утилиты proxychains или torsocks, которые перехватывают трафик приложений и направляют его через SOCKS.

  3. GUI не влияет на терминал.

    Даже если в графическом интерфейсе настроен прокси, утилиты в терминале (curl, wget, apt) его не используют, если не заданы переменные окружения.

    Решение: всегда задавать http_proxy/https_proxy для CLI, если работа идет в терминале, даже в случае наличия прокси-настроек для текущего подключения.

Заключение

Настройка прокси в Linux имеет ряд нюансов: не все приложения поддерживают протокол SOCKS, графические интерфейсы не передают параметры в терминал, а авторизация может не сработать в некоторых службах. Поэтому перед внедрением рекомендуется протестировать работу прокси в нужных инструментах и, при необходимости, использовать утилиты вроде proxychains или специализированные расширения для браузера.

Независимо от способа конфигурации — будь то через терминал или графический интерфейс — особое внимание следует уделить выбору самого сервера. Надежная и стабильная работа возможна только при использовании приватных решений с авторизацией, которые обеспечивают индивидуальный IP-адрес, высокий уровень безопасности и минимальный риск блокировок. Поэтому мы рекомендуем персональные прокси IPv4 для работы в Linux.

FAQ

Почему GUI-прокси применяется везде, кроме терминала?

Графическая настройка действует на приложения, запускаемые в одном окружении (например, GNOME), но не влияет на процессы, стартующие из терминала. Для CLI-утилит (curl, wget, git и т.д.) требуются переменные окружения или конфигурации — GUI-настройки их не затрагивают.

Появляются ошибки 4xx или 5xx при подключении через прокси — что это может значить?

Такие HTTP‑ошибки чаще всего говорят о: неправильных авторизации или формате запроса (коды 4xx) либо проблемах на стороне промежуточного или целевого сервера — нагрузка, сбои, несоответствие протокола (коды 5xx).

Можно ли настроить бесплатный прокси на Linux?

Можно, но не рекомендуется: большинство бесплатных решений нестабильны, медленные, часто заблокированы на популярных сервисах и могут представлять угрозу безопасности, поскольку не контролируются пользователем.

С какими приложениями протокол SOCKS не работает?

SOCKS-прокси не поддерживаются напрямую такими утилитами, как apt, wget, а также рядом системных служб, включая обновления, синхронизацию времени, сетевые компоненты и фоновые процессы, которые либо используют только HTTP-протокол, либо вообще не обрабатывают переменные окружения и подключаются к сети напрямую, обходя настройки пользователя.