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

Tinyproxy

Ознайомтеся з Tinyproxy, мінімалістичним HTTP-проксі для Linux. Цей посібник охоплює просте налаштування та конфігурацію для легкого сервера.

Tinyproxy

Tinyproxy — це легкий, відкритий HTTP/HTTPS проксі-сервер, розроблений для мінімального споживання ресурсів у системах Linux. Він забезпечує базову функціональність проксі, придатну для вбудованих пристроїв, особистого використання або невеликих мережевих середовищ, де ефективність ресурсів є критично важливою.

Огляд та випадки використання

Tinyproxy надає пріоритет невеликому розміру та простій конфігурації над розширеними функціями, такими як розширене кешування, комплексні методи автентифікації або можливості SOCKS-проксі, що зустрічаються у більших проксі-рішеннях. Він функціонує переважно як HTTP/HTTPS (метод CONNECT) проксі.

Типові випадки використання Tinyproxy включають:

  • Особистий проксі: Захист IP-адрес клієнтів або обхід базових геообмежень для окремих користувачів.
  • Вбудовані системи: Надання проксі-сервісів на пристроях з обмеженими ресурсами CPU, RAM та сховища.
  • Середовища розробки: Локальне тестування проксі-орієнтованих програм або інспекція мережевого трафіку.
  • Шлюз для невеликої мережі: Простий, некешуючий проксі для обмеженої кількості клієнтів.
  • Ланцюгові проксі: Виступає як посередник у налаштуванні з кількома проксі.

Встановлення

Tinyproxy доступний у стандартних репозиторіях пакетів більшості дистрибутивів Linux.

Debian/Ubuntu

sudo apt update
sudo apt install tinyproxy

RHEL/CentOS/Fedora

sudo dnf install tinyproxy
# Або для старіших CentOS/RHEL:
# sudo yum install tinyproxy

Після встановлення Tinyproxy зазвичай запускається автоматично та прослуховує порт 8888.

Конфігурація

Конфігурація Tinyproxy керується одним файлом, зазвичай розташованим за адресою /etc/tinyproxy/tinyproxy.conf. Усі директиви закоментовані у файлі за замовчуванням, що забезпечує самодокументацію.

Основні директиви

  • Port: Вказує порт, який прослуховує Tinyproxy.
    Port 8888
    Зміна цього вимагає перезапуску служби Tinyproxy.

  • Listen: Прив'язує Tinyproxy до певної IP-адреси. За замовчуванням він прослуховує всі доступні інтерфейси (0.0.0.0). Вказання адреси обмежує доступ.
    Listen 192.168.1.10

  • Allow: Визначає IP-адреси або підмережі, яким дозволено підключатися до проксі. Можна використовувати кілька директив Allow. Якщо директиви Allow не вказані, Tinyproxy дозволяє підключення з усіх хостів. Явне заборонення всіх, а потім дозвіл певних діапазонів є поширеною практикою безпеки.
    # Заборонити все за замовчуванням (якщо директиви Allow відсутні, це неявно хибно) # Allow 127.0.0.1 # Allow 192.168.1.0/24

  • Timeout: Встановлює тайм-аут бездіяльності для з'єднань у секундах.
    Timeout 600

  • User / Group: Вказує користувача та групу, до яких Tinyproxy має скинути привілеї після запуску. Запуск від імені користувача, що не є root, є найкращою практикою безпеки.
    User tinyproxy Group tinyproxy

  • LogLevel: Керує деталізацією журналювання. Варіанти включають Critical, Error, Warning, Notice, Info, Debug.
    LogLevel Info

  • LogFile: Вказує шлях до файлу журналу.
    LogFile "/var/log/tinyproxy/tinyproxy.log"

  • MaxClients: Встановлює максимальну кількість одночасних клієнтських з'єднань, які Tinyproxy буде обробляти. Перевищення цього ліміту призводить до відхилення з'єднання.
    MaxClients 100

  • DisableViaHeader: Якщо увімкнено, Tinyproxy не додаватиме заголовок Via до вихідних запитів. Це може підвищити конфіденційність, запобігаючи розкриттю присутності проксі.
    DisableViaHeader Yes

  • ConnectPort: Вказує, які порти Tinyproxy дозволить для запитів CONNECT (використовується для тунелювання HTTPS). Можна використовувати кілька директив ConnectPort.
    ConnectPort 443 ConnectPort 563

Розширені директиви конфігурації

  • Upstream: З'єднує Tinyproxy з іншим проксі-сервером. Ця директива вказує вихідний проксі для певних доменів або всього трафіку.
    ```
    # Використовувати upstream_proxy.example.com:8080 для всіх запитів
    Upstream http upstream_proxy.example.com:8080

    Використовувати інший upstream для певних доменів

    Upstream http 10.0.0.1:3128 "example.com"
    Upstream http 10.0.0.1:3128 ".example.org"
    `` Ключове словоhttpвказує на HTTP-проксі. ДирективиUpstream` обробляються по порядку; застосовується перше співпадіння.

  • NoCache: Запобігає надсиланню Tinyproxy певних HTTP-заголовків, які могли б спричинити кешування на стороні клієнта. Це не означає, що сам Tinyproxy має механізм кешування.
    NoCache

  • Filter / FilterURLs / FilterBypass: Забезпечує базову фільтрацію вмісту на основі регулярних виразів.

    • Filter "/etc/tinyproxy/filter.txt": Вказує файл, що містить регулярні вирази для блокування URL-адрес.
    • FilterURLs Yes: Вмикає фільтрацію URL-ададрес.
    • FilterBypass "192.168.1.0/24": Дозволяє вказаним клієнтам обходити фільтрацію.

    Файл filter.txt міститиме один регулярний вираз на рядок. Наприклад, для блокування Facebook:
    .*facebook\.com.*
    Це рудиментарний механізм фільтрації, а не заміна спеціалізованих рішень для фільтрації вмісту.

Керування службою

Після зміни tinyproxy.conf службу Tinyproxy необхідно перезапустити, щоб зміни набули чинності.

Systemd (Сучасні дистрибутиви Linux)

sudo systemctl restart tinyproxy
sudo systemctl enable tinyproxy # Переконайтеся, що він запускається при завантаженні
sudo systemctl status tinyproxy

SysVinit (Старіші дистрибутиви Linux)

sudo /etc/init.d/tinyproxy restart
sudo /etc/init.d/tinyproxy status

Тестування проксі

Після конфігурації та перезапуску служби проксі можна протестувати.

Використання curl

curl -x http://localhost:8888 http://ipinfo.io/ip

Замініть localhost:8888 на IP-адресу та порт сервера Tinyproxy, якщо тестуєте з іншої машини. Вивід має відображати публічну IP-адресу сервера Tinyproxy, а не клієнта.

Конфігурація браузера

Налаштуйте свій веб-браузер (наприклад, Firefox, Chrome) на використання HTTP-проксі за IP-адресою та портом сервера Tinyproxy. Відкрийте веб-сайт, щоб підтвердити підключення.

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

  • Контроль доступу: Завжди обмежуйте доступ до проксі за допомогою директиви Allow. За замовчуванням Tinyproxy може дозволяти підключення з усіх хостів, якщо директиви Allow відсутні.
  • Брандмауер: Налаштуйте брандмауер вашої системи (наприклад, ufw, firewalld), щоб дозволяти вхідні з'єднання до порту Tinyproxy лише з довірених діапазонів IP-адрес.
    bash # Приклад використання ufw sudo ufw allow from 192.168.1.0/24 to any port 8888 sudo ufw enable
  • Користувач без прав root: Переконайтеся, що Tinyproxy працює від імені користувача без прав root (директиви User та Group), щоб мінімізувати потенційні ризики безпеки.
  • Журналювання: Відстежуйте журнали Tinyproxy на наявність незвичайної активності.
  • DisableViaHeader: Розгляньте можливість увімкнення цього для підвищення конфіденційності, хоча це не забезпечує анонімності.

Порівняння з Squid

Tinyproxy та Squid є HTTP-проксі-серверами для Linux, але вони орієнтовані на різні випадки використання та пропонують різні набори функцій.

Функція Tinyproxy Squid
Основна мета Мінімальне використання ресурсів, простота Висока продуктивність, розширені функції, кешування
Використання ресурсів Дуже низьке споживання CPU/RAM Помірне до високого споживання CPU/RAM, особливо з великими кешами та високим трафіком
Кешування Немає вбудованого кешування Розширене, настроюване кешування для HTTP-об'єктів
Автентифікація Немає нативно Basic, Digest, NTLM, Kerberos, зовнішні помічники
Контроль доступу На основі IP (Allow директива) Високогранулярні ACL на основі IP, домену, URL, користувача, часу, методів тощо.
Протоколи HTTP, HTTPS (CONNECT) HTTP, HTTPS (CONNECT), FTP, Gopher, SOCKS (на стороні клієнта для upstream)
Прозорість Немає підтримки прозорого проксі Повна підтримка прозорого проксі
Складність Проста конфігурація, мало директив Складна конфігурація, багато директив, потужні можливості скриптингу
Типове використання Вбудовані системи, особистий проксі, невелика локальна мережа Корпоративні мережі, інтернет-провайдери, великі організації, фільтрація вмісту, безпека

Усунення несправностей

  • Перевірка журналів: Директива LogFile вказує, куди Tinyproxy записує свої журнали. Збільште LogLevel до Debug для більш детального виводу під час усунення несправностей.
    bash sudo tail -f /var/log/tinyproxy/tinyproxy.log
  • Статус служби: Перевірте, чи працює Tinyproxy, використовуючи systemctl status tinyproxy або /etc/init.d/tinyproxy status.
  • Брандмауер: Переконайтеся, що ваш брандмауер не блокує з'єднання до порту Tinyproxy. При необхідності тимчасово вимкніть брандмауер для тестування.
  • Синтаксис конфігурації: Перегляньте tinyproxy.conf на наявність синтаксичних помилок. Tinyproxy часто не запускається або повідомляє про помилки у своїх журналах, якщо конфігурація неправильна.
  • Мережеве підключення: Переконайтеся, що сервер Tinyproxy має мережеве підключення до своїх цільових пунктів призначення.
Оновлено: 04.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.