Перейти до вмісту
Гайды 6 хв читання 32 переглядів

Налаштування проксі на Linux

Вичерпний посібник з налаштування проксі на Linux. Розгляньте конфігурацію середови

Налаштування проксі на Linux

Налаштування проксі на Linux передбачає встановлення змінних середовища для сеансів користувачів, конфігурацію APT для керування пакетами та визначення налаштувань проксі для служб Systemd, щоб забезпечити доступ усіх системних компонентів до зовнішніх мереж через проксі.

Багато середовищ Linux працюють за корпоративними брандмауерами або вимагають маршрутизації трафіку через проксі-сервер для безпеки, ведення журналів або контролю доступу. Правильна конфігурація проксі є критично важливою для функціональності системи, включаючи оновлення програмного забезпечення, доступ до Інтернету для користувацьких програм та зв'язок фонових служб. Ця стаття детально описує методи налаштування параметрів проксі для поширених компонентів Linux.

Змінні середовища

Оболонкові середовища та програми, що їх успадковують, часто покладаються на стандартні змінні середовища для конфігурації проксі. Ці змінні визначають адресу проксі-сервера для HTTP, HTTPS та FTP трафіку, а також винятки для прямих з'єднань.

Стандартні змінні середовища проксі

  • HTTP_PROXY: Проксі для HTTP-з'єднань.
  • HTTPS_PROXY: Проксі для HTTPS-з'єднань.
  • FTP_PROXY: Проксі для FTP-з'єднань.
  • NO_PROXY: Список імен хостів, IP-адрес або діапазонів CIDR, розділених комами, які повинні обходити проксі. Приклад: localhost,127.0.0.1,*.local,192.168.0.0/24.

Ці змінні чутливі до регістру в деяких контекстах (наприклад, wget часто використовує нижній регістр http_proxy, тоді як інші віддають перевагу верхньому регістру HTTP_PROXY). Загальноприйнятою практикою є встановлення обох версій (верхнього та нижнього регістру) для ширшої сумісності.

Тимчасова конфігурація сеансу оболонки

Щоб встановити змінні проксі для поточного сеансу оболонки та будь-яких процесів, запущених з нього:

export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
export FTP_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.example.com"

# Для сумісності також встановіть версії в нижньому регістрі
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export ftp_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,.example.com"

Замініть proxy.example.com:8080 на адресу та порт вашого проксі-сервера. Якщо потрібна автентифікація, включіть облікові дані: http://user:password@proxy.example.com:8080.

Постійна конфігурація для конкретного користувача

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

  • Bash: ~/.bashrc або ~/.profile
  • Zsh: ~/.zshrc

Приклад для ~/.bashrc:

# Налаштування проксі
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
export FTP_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.example.com"
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export ftp_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,.example.com"

Після модифікації завантажте файл або вийдіть і знову увійдіть: source ~/.bashrc.

Постійна загальносистемна конфігурація

Для загальносистемних налаштувань проксі, які впливають на всіх користувачів та деякі системні процеси (хоча не на всі служби Systemd безпосередньо), використовуйте /etc/environment або файли в /etc/profile.d/.

/etc/environment

Цей файл читається PAM (Pluggable Authentication Modules) під час входу для всіх служб та програм, запущених оболонкою входу. Він підтримує лише синтаксис KEY="value", без export.

HTTP_PROXY="http://proxy.example.com:8080"
HTTPS_PROXY="http://proxy.example.com:8080"
FTP_PROXY="http://proxy.example.com:8080"
NO_PROXY="localhost,127.0.0.1,.example.com"
http_proxy="http://proxy.example.com:8080"
https_proxy="http://proxy.example.com:8080"
ftp_proxy="http://proxy.example.com:8080"
no_proxy="localhost,127.0.0.1,.example.com"

Зміни в /etc/environment зазвичай вимагають перезавантаження або повторного входу, щоб нові сеанси їх підхопили.

/etc/profile.d/

Скрипти, розміщені в /etc/profile.d/, завантажуються оболонками входу. Це підходить для встановлення змінних середовища, які вимагають логіки або операторів export. Створіть новий файл, наприклад, /etc/profile.d/proxy.sh:

#!/bin/bash
export HTTP_PROXY="http://proxy.example.com:8080"
export HTTPS_PROXY="http://proxy.example.com:8080"
export FTP_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,.example.com"
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export ftp_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,.example.com"

Переконайтеся, що скрипт виконуваний: sudo chmod +x /etc/profile.d/proxy.sh.

sudo та змінні проксі

При використанні sudo змінні середовища часто скидаються з міркувань безпеки. Щоб зберегти налаштування проксі для команд, що виконуються за допомогою sudo:

  1. Використовуйте sudo -E: Це зберігає поточні змінні середовища.
    bash sudo -E apt update
  2. Налаштуйте sudoers: Відредагуйте /etc/sudoers за допомогою sudo visudo та додайте/змініть env_keep.
    Defaults env_keep += "HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY http_proxy https_proxy ftp_proxy no_proxy"
    Цей підхід, як правило, безпечніший, ніж sudo -E, для постійних системних конфігурацій.

APT (Advanced Package Tool)

APT, менеджер пакетів, що використовується дистрибутивами на основі Debian (наприклад, Ubuntu), вимагає власної конфігурації проксі, окремої від змінних середовища оболонки.

Файл конфігурації проксі APT

Налаштування проксі APT визначаються у файлах конфігурації в /etc/apt/apt.conf.d/. Створіть новий файл, наприклад, /etc/apt/apt.conf.d/01proxy, з наступним вмістом:

Acquire::http::Proxy "http://proxy.example.com:8080/";
Acquire::https::Proxy "http://proxy.example.com:8080/";
# Acquire::ftp::Proxy "ftp://proxy.example.com:8080/"; # Розкоментуйте, якщо потрібно

Замініть proxy.example.com:8080 на адресу та порт вашого проксі-сервера.

Якщо проксі вимагає автентифікації:

Acquire::http::Proxy "http://user:password@proxy.example.com:8080/";
Acquire::https::Proxy "http://user:password@proxy.example.com:8080/";

Для хостів, які повинні обходити проксі APT, використовуйте Acquire::NoProxy:

Acquire::NoProxy "localhost,127.0.0.1,archive.ubuntu.com";

Це використовується рідше, ніж глобальний NO_PROXY, але може бути специфічним для APT.

Після створення або модифікації файлу APT автоматично використовуватиме ці налаштування для подальших операцій (наприклад, apt update, apt install). Перезапуск служби не потрібен.

Служби Systemd

Systemd керує системними службами та програмами. Служби, запущені Systemd, не успадковують автоматично змінні середовища проксі, встановлені в профілях оболонки або /etc/environment. Кожен юніт Systemd, який потребує доступу до проксі, повинен бути налаштований явно.

Проксі для конкретної служби Systemd

Щоб налаштувати параметри проксі для окремої служби Systemd, створіть файл перевизначення. Це рекомендований метод, щоб уникнути прямої модифікації оригінальних файлів юнітів, які можуть бути перезаписані під час оновлення пакетів.

  1. Створіть каталог перевизначення:
    bash sudo systemctl edit <service_name>
    Ця команда відкриває редактор для /etc/systemd/system/<service_name>.service.d/override.conf.

  2. Додайте змінні середовища проксі:
    Всередині редактора додайте розділ [Service] та директиви Environment:

    ini [Service] Environment="HTTP_PROXY=http://proxy.example.com:8080" \ "HTTPS_PROXY=http://proxy.example.com:8080" \ "NO_PROXY=localhost,127.0.0.1" Environment="http_proxy=http://proxy.example.com:8080" \ "https_proxy=http://proxy.example.com:8080" \ "no_proxy=localhost,127.0.0.1"
    Кожна директива Environment може містити кілька змінних, розділених пробілами в лапках, або ви можете використовувати кілька рядків Environment. Символ \ призначений для продовження рядка у файлі перевизначення.

  3. Збережіть та вийдіть: Збережіть файл. Systemd автоматично перезавантажить демон і запропонує перезапустити службу. Підтвердіть перезапуск. Якщо запит не з'явився, вручну перезавантажте та перезапустіть:
    bash sudo systemctl daemon-reload sudo systemctl restart <service_name>

Глобальна конфігурація проксі Systemd

Для служб, які не мають конкретних налаштувань проксі, або для загальносистемного значення за замовчуванням, налаштуйте параметри проксі в глобальному середовищі Systemd. Це впливає на всі служби, які явно не перевизначають ці змінні.

  1. Створіть каталог для додаткових конфігурацій:
    bash sudo mkdir -p /etc/systemd/system.conf.d/

  2. Створіть файл конфігурації проксі:
    bash sudo nano /etc/systemd/system.conf.d/proxy.conf

  3. Додайте змінні середовища проксі:
    ini [Manager] DefaultEnvironment="HTTP_PROXY=http://proxy.example.com:8080" DefaultEnvironment="HTTPS_PROXY=http://proxy.example.com:8080" DefaultEnvironment="NO_PROXY=localhost,127.0.0.1" DefaultEnvironment="http_proxy=http://proxy.example.com:8080" DefaultEnvironment="https_proxy=http://proxy.example.com:8080" DefaultEnvironment="no_proxy=localhost,127.0.0.1"

  4. Перезавантажте демон Systemd та перезапустіть служби:
    bash sudo systemctl daemon-reload sudo systemctl restart --all # Використовуйте з обережністю, перезапускає всі користувацькі та системні служби
    Повне перезавантаження системи часто є найбезпечнішим способом забезпечити, щоб усі служби підхопили ці глобальні зміни.

Перевірка

Після налаштування параметрів проксі перевірте їх ефективність:

  • Змінні середовища:
    bash env | grep -i proxy
  • APT:
    bash apt config dump | grep -i proxy
    Спробуйте оновити: sudo apt update.
  • Загальний доступ до мережі:
    bash curl -v http://ifconfig.me
    Вивід повинен показати IP-адресу проксі-сервера, якщо трафік маршрутизується через нього, або вашу зовнішню IP-адресу, якщо NO_PROXY ефективний.
  • Служба Systemd: Перевірте статус служби та журнали на наявність проблем з підключенням.
    bash sudo systemctl status <service_name> sudo journalctl -u <service_name>
    Ви також можете перевірити середовище запущеного процесу служби. Знайдіть PID служби, потім:
    bash sudo cat /proc/<PID>/environ | tr '\0' '\n' | grep -i proxy

Порівняння методів конфігурації проксі

Метод Область дії Постійність Компоненти, на які впливає Приклад конфігурації
Середовище оболонки (тимчасово) Поточний сеанс оболонки Ні Команди, запущені з поточної оболонки export HTTP_PROXY="..."
Профіль користувача (~/.bashrc) Сеанси входу користувача Так Користувацькі програми, команди оболонки Додайте рядки export до ~/.bashrc
Загальносистемний (/etc/environment) Усі сеанси входу, деякі системні процеси Так Оболонки входу, деякі програми (не Systemd) HTTP_PROXY="..." у /etc/environment
Загальносистемний (/etc/profile.d/) Усі оболонки входу Так Оболонки входу, програми, запущені з них Скрипт з рядками export у /etc/profile.d/
APT (/etc/apt/apt.conf.d/) Лише менеджер пакетів APT Так apt, apt-get, aptitude Acquire::http::Proxy "..."; у 01proxy
Перевизначення служби Systemd (override.conf) Конкретний юніт Systemd Так Одна служба Systemd Environment="..." у /etc/systemd/system/<service>.service.d/override.conf
Глобальний Systemd (system.conf.d/) Усі служби Systemd (за замовчуванням) Так Усі служби Systemd, якщо не перевизначено DefaultEnvironment="..." у /etc/systemd/system.conf.d/proxy.conf
Оновлено: 03.03.2026
Назад до категорії

Читайте також

Гайды 1 хв

Налаштування проксі в Cypress для E2E тестування

Налаштування проксі в Cypress: змінні HTTP_PROXY, cy-proxy-middleware та тестування геозалежного контенту.

Гайды 1 хв

Як автоматизувати купівлю проксі через API

Автоматизація купівлі та управління проксі через API провайдерів: інтеграція, моніторинг використання та автопоновлення.

Гайды 1 хв

Створення інформаційної панелі моніторингу проксі в Grafana

Покрокове створення інформаційної панелі для моніторингу проксі в Grafana: метрики,

Гайды 1 хв

Як тестувати проксі перед покупкою

Чек-лист тестування проксі перед покупкою: швидкість, стабільність, анонімність, гео та сумісність з ціллю

Гайды 1 хв

Як налаштувати липкі сесії через проксі

Липкі сесії: підтримка однієї IP-адреси протягом усієї сесії, налаштовуються через провайдера та самостійно.

Гайды 1 хв

Використання проксі з Camoufox

Camoufox — це модифікований Firefox для обходу антиботів. Налаштування проксі, відбиток та режим невидимості.

Спробуйте наші проксі

20,000+ проксі в 100+ країнах світу

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.