Перейти до вмісту

Налаштування проксі в Linux: повний посібник для різних дистрибутивів

Гайды
Налаштування проксі в Linux: повний посібник для різних дистрибутивів

Налаштування proxy в Linux переважно керується через змінні середовища, конфігураційні файли конкретних сервісів або налаштування робочого столу для маршрутизації мережевого трафіку через віддалений сервер. Залежно від дистрибутива — чи то на базі Debian (як Ubuntu), на базі RHEL (як CentOS), чи Arch Linux — адміністратори повинні застосовувати налаштування на різних рівнях операційної системи, щоб забезпечити повне охоплення для інструментів CLI, менеджерів пакетів та графічних програм.

Глобальні змінні середовища для налаштування proxy

Найпоширенішим методом встановлення proxy в Linux є використання змінних середовища. Ці змінні розпізнаються більшістю утиліт командного рядка, таких як curl, wget та git. Ви можете встановити ці змінні тимчасово для однієї сесії або постійно для всіх користувачів.

Тимчасове налаштування сесії

Щоб застосувати proxy лише для поточної сесії терміналу, експортуйте змінні безпосередньо у вашу оболонку (shell). Це ідеально підходить для швидких завдань або тестування нової residential точки доступу GProxy без зміни системних файлів.

export http_proxy="http://username:[email protected]:8080"
export https_proxy="http://username:[email protected]:8080"
export ftp_proxy="http://username:[email protected]:8080"
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"

Постійне загальносистемне налаштування

Щоб ці налаштування зберігалися після перезавантаження та впливали на всіх користувачів, відредагуйте файл /etc/environment. Цей файл є простим списком пар "ключ-значення" і не підтримує команди оболонки, такі як export.

  1. Відкрийте файл з правами root: sudo nano /etc/environment.
  2. Додайте рядки proxy:
  3. Збережіть і перезапустіть сесію або виконайте source /etc/environment.

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

Налаштування proxy в системах Linux: повний посібник для різних дистрибутивів

Налаштування менеджерів пакетів для конкретних дистрибутивів

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

APT (Ubuntu, Debian, Linux Mint)

Advanced Package Tool (APT) ігнорує змінні середовища в деяких конфігураціях з міркувань безпеки. Щоб встановити proxy спеціально для APT, створіть конфігураційний файл у /etc/apt/apt.conf.d/.

sudo nano /etc/apt/apt.conf.d/95proxies

Додайте наступні рядки, обов'язково завершуючи кожен рядок крапкою з комою:

Acquire::http::Proxy "http://username:[email protected]:8080";
Acquire::https::Proxy "http://username:[email protected]:8080";

DNF та YUM (Fedora, RHEL, CentOS, AlmaLinux)

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

  1. Відредагуйте конфігурацію: sudo nano /etc/dnf/dnf.conf.
  2. Додайте рядок proxy: proxy=http://proxy.gproxy.com:8080.
  3. Якщо потрібна автентифікація, додайте:
    • proxy_username=your_username
    • proxy_password=your_password

Pacman (Arch Linux, Manjaro)

Pacman за замовчуванням використовує зовнішні завантажувачі, такі як curl. Щоб налаштувати proxy для оновлень Arch Linux, слід змінити /etc/makepkg.conf або просто покладатися на глобальні змінні середовища. Однак для точного контролю над завантажувачем відредагуйте /etc/pacman.conf, розкоментуйте XferCommand та додайте прапорці proxy.

Порівняння методів налаштування proxy

Вибір правильного методу залежить від того, чи потрібен вам загальносистемний тунель, чи міст для конкретної програми. У наступній таблиці наведено основні методи для середовищ Linux.

Метод Область дії Конфігураційний файл Найкращий варіант використання
Змінні середовища Користувач/Сесія ~/.bashrc Інструменти CLI (curl, wget, git)
Системне середовище Глобально /etc/environment Стандартна загальносистемна маршрутизація
Конфігурація APT Програма /etc/apt/apt.conf.d/ Оновлення Debian/Ubuntu
Конфігурація DNF Програма /etc/dnf/dnf.conf Оновлення RHEL/CentOS
Proxychains Динамічно /etc/proxychains.conf Програми без вбудованої підтримки proxy
Налаштування proxy в системах Linux: повний посібник для різних дистрибутивів

Розширена маршрутизація за допомогою Proxychains

Деякі програми не враховують змінні середовища або не мають внутрішніх налаштувань proxy. У таких випадках proxychains4 є стандартним інструментом для примусового спрямування TCP-з'єднань через proxy за допомогою попереднього завантаження хуків (hook preloading). Це особливо корисно для аудиту безпеки або при використанні SOCKS5 proxy від GProxy.

Спочатку встановіть пакет: sudo apt install proxychains4 (у Debian) або sudo dnf install proxychains-ng (у RHEL).

Відредагуйте конфігураційний файл за шляхом /etc/proxychains4.conf. Прокрутіть донизу та додайте дані вашого proxy:

[ProxyList]
# protocol host port username password
socks5 127.0.0.1 9050
http proxy.gproxy.com 8080 username password

Щоб скористатися ним, просто додайте префікс proxychains4 перед будь-якою командою:

proxychains4 telnet example.com 80
proxychains4 nmap -sT -PN example.com

Автоматизація керування proxy за допомогою Python

Для розробників та фахівців з аналізу даних, які використовують Linux для веб-скрапінгу або автоматизованого тестування, програмне керування proxy є ефективнішим за ручне налаштування. Використовуючи бібліотеку requests, ви можете динамічно ротувати точки доступу GProxy у своїх скриптах.

import requests

# Визначення облікових даних та точки доступу GProxy
proxy_host = "proxy.gproxy.com"
proxy_port = "8080"
username = "your_user"
password = "your_password"

proxies = {
    "http": f"http://{username}:{password}@{proxy_host}:{proxy_port}",
    "https": f"http://{username}:{password}@{proxy_host}:{proxy_port}",
}

def test_proxy():
    try:
        # Перевірка з'єднання та IP-адреси
        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}")

if __name__ == "__main__":
    test_proxy()

Цей скрипт дозволяє переконатися, що ваше середовище Linux правильно маршрутизує трафік через proxy перед запуском масштабних автоматизованих завдань. Це особливо корисно при пошуку причин, чому загальносистемний proxy може не впливати на конкретне віртуальне середовище Python.

Налаштування proxy в графічних оболонках

Якщо ви використовуєте дистрибутив Linux з графічним інтерфейсом користувача (GUI), наприклад GNOME або KDE Plasma, ви можете налаштувати proxy через системні параметри. Це необхідно для браузерів, таких як Chrome (який використовує системні налаштування), та інших програм на базі GUI.

GNOME (Ubuntu, Fedora Workstation)

Перейдіть до Settings > Network > Network Proxy. Виберіть "Manual" і введіть дані хостів HTTP, HTTPS та SOCKS. GNOME застосовує ці налаштування через gsettings, які також можна змінити через термінал:

gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http host 'proxy.gproxy.com'
gsettings set org.gnome.system.proxy.http port 8080

KDE Plasma

У KDE перейдіть до System Settings > Network > Settings > Proxy. KDE пропонує опцію "Use specified proxy configuration", де ви можете визначити різні proxy для кожного протоколу. На відміну від GNOME, налаштування KDE зберігаються у ~/.config/kioslaverc.

Міркування щодо безпеки та найкращі практики

Налаштування proxy передбачає роботу з конфіденційними обліковими даними. Зберігання паролів у відкритому вигляді в /etc/environment або .bashrc становить ризик, якщо доступ до машини мають кілька користувачів. Щоб мінімізувати це, розгляньте наступні практики:

  • Обмеження прав доступу: Переконайтеся, що конфігураційні файли, які містять облікові дані (наприклад, /etc/dnf/dnf.conf або proxychains.conf), мають права доступу 600 або 640, що обмежує доступ на читання лише для root або конкретних адміністраторів.
  • Використання білих списків IP (IP Whitelisting): Якщо ваш провайдер proxy, наприклад GProxy, підтримує це, використовуйте білі списки IP замість автентифікації за логіном/паролем. Це усуває потребу зберігати облікові дані в локальних конфігураційних файлах.
  • Виключення локального трафіку: Завжди налаштовуйте змінну no_proxy. Якщо не виключити localhost та 127.0.0.1, це може порушити локальну міжпроцесну взаємодію, наприклад ту, що використовується контейнерами Docker, базами даних (PostgreSQL/MySQL) та внутрішніми API.
  • SOCKS5 для UDP: Якщо вам потрібно використовувати proxy для програм, що працюють через UDP (наприклад, деякі стрімінгові сервіси або DNS-запити), переконайтеся, що ви використовуєте SOCKS5 proxy замість стандартного HTTP proxy, оскільки HTTP підтримує лише TCP.

Основні висновки

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

  • Використовуйте /etc/environment для глобальних налаштувань та ~/.bashrc для перевизначення параметрів конкретним користувачем.
  • Завжди налаштовуйте менеджери пакетів окремо (APT або DNF), щоб оновлення системи не переривалися через мережеві блокування.
  • Використовуйте Proxychains для програм, які не мають вбудованої підтримки proxy, або для складних багатоступеневих маршрутів.

Практична порада 1: Під час пошуку несправностей використовуйте curl -v https://google.com. Прапорець verbose покаже, який саме proxy використовується і чи була успішною автентифікація.

Практична порада 2: Для високонавантажених завдань, таких як веб-скрапінг на Linux, використовуйте residential proxy від GProxy з бібліотеками Python requests або aiohttp, щоб уникнути обмежень за IP (rate-limiting) та забезпечити високий рівень успішних запитів у різних географічних регіонах.

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