Проксі-сервер | |
![]() | |
![]() ![]() |
Проксі-сервер (від англ. proxy — «представник, уповноважений») — серверна програма, що діє як посередник між клієнтом, що запитує ресурс, і сервером, що надає цей ресурс, в комп'ютерних мережах[1]. Це слугує методом спрощення або контролю складності запиту, або надає додаткові переваги, такі як балансування навантаження, конфіденційність або безпека. Проксі-сервери були розроблені для додавання структури та інкапсуляції розподіленим системам[2]. Спочатку клієнт з'єднується з проксі-сервером і запитує який-небудь ресурс (наприклад, e-mail), розташований на іншому сервері. Потім проксі-сервер або підключається до вказаного сервера та отримує ресурс у нього, або повертає ресурс з власного кешу (у випадках, якщо проксі має свій кеш).
Використання
Найчастіше проксі-сервери застосовуються для:
- Забезпечення доступу з комп'ютерів локальної мережі в інтернет.
- Кешування даних: якщо часто відбуваються звернення до одних і тих же зовнішніх ресурсів, то можна тримати їх копію на проксі-сервері та видавати за запитом, знижуючи тим самим навантаження на канал у зовнішню мережу і прискорюючи отримання клієнтом шуканої інформації.
- Стиснення даних: проксі-сервер завантажує інформацію з інтернету і передає інформацію кінцевому користувачеві в стислому вигляді. Такі проксі-сервери використовуються в основному з метою економії зовнішнього трафіка.
- Захист локальної мережі від зовнішнього доступу: наприклад, можна налаштувати проксі-сервер так, що локальні комп'ютери будуть звертатися до зовнішніх ресурсів тільки через нього, а зовнішні комп'ютери не зможуть звертатися до локальних взагалі (вони бачать тільки проксі-сервер).
- Обмеження доступу з локальної мережі до зовнішньої: наприклад, можна заборонити доступ до певних вебсайтів, обмежити використання інтернету якимось локальним користувачам, встановлювати квоти на трафік або смугу пропускання, фільтрувати рекламу і віруси.
- Анонімізації доступу до різних ресурсів. Проксі-сервер може приховувати відомості про джерело запиту або користувача. У такому разі цільовий сервер бачить лише інформацію про проксі-сервер, наприклад, IP-адресу, але не має можливості визначити дійсне джерело запиту. Існують також проксі-сервери спотворюючі, які передають цільовим серверам неправдиву інформацію про справжнього користувача.
Проксі-сервер, до якого може отримати доступ будь-який користувач мережі інтернет, називається відкритим[3].
Види проксі-серверів
Прозорий проксі — схема зв'язку, при якій трафік, або його частина, перенаправляється на проксі-сервер неявно (засобами маршрутизатора). При цьому клієнт може використовувати всі переваги проксі-сервера без додаткових налаштувань, але з іншого боку, не має вибору.
Зворотний проксі — проксі-сервер, який на відміну від прямого, ретранслює запити клієнтів із зовнішньої мережі на один або декілька серверів, логічно розташованих у внутрішній мережі. Часто використовується для балансування мережевого навантаження між декількома вебсерверами і підвищення їх безпеки, граючи при цьому роль міжмережевого екрану на прикладному рівні[4][5].
Технічні подробиці

Клієнтський комп'ютер має налаштування (конкретної програми або операційної системи), відповідно до якої всі мережеві з'єднання по деякому протоколу здійснюються не на IP-адресу сервера (ресурсу), що виділяється з DNS-імені ресурсу, або безпосередньо заданий, а на IP-адресу (і інший порт) проксі-сервера.
За необхідності звернення до будь-якого ресурсу за цим протоколом, клієнтський комп'ютер відкриває мережеве з'єднання з проксі-сервером (на потрібному порті) і здійснює звичайний запит так, якби він звертався безпосередньо до ресурсу.
Розпізнавши дані запиту, перевіривши його коректність і дозвіл для клієнтського комп'ютера, проксі-сервер, не розриваючи з'єднання, сам відкриває нове мережеве з'єднання безпосередньо з ресурсом і робить той же самий запит. Отримавши дані (або повідомлення про помилку), проксі-сервер передає їх клієнтському комп'ютеру.
З цього випливають два основні обмеження звичайного проксі-сервера:
- Проксі-сервер повинен бути повнофункціональним сервером і клієнтом для кожного підтримуваного протоколу.
- Проксі-сервер може обслуговувати тільки ті мережеві протоколи, у запиті яких передається ім'я або IP-адреса ресурсу (не належить до прозорих проксі — вони отримують IP-адресу безпосередньо з перехопленого з'єднання).
В часи становлення Інтернету проксі-сервери були найпопулярнішим способом виходу в Інтернет з локальних мереж. Цьому сприяли такі обставини:
- Основний протокол, що використовувався — http, який легко проксіюється;
- Підтримка проксі більшістю браузерів і/або операційних систем;
- Контроль доступу та облік трафіку по користувачам;
- Проксі-сервер — це звичайна програма (а не системна), яка може працювати з мінімальними правами на будь-якій ОС з підтримкою мережі (стека TCP/IP);
- Відсутність доступу в Інтернет по інших протоколах часто було більше перевагою, ніж недоліком.
У зв'язку зі зростанням ролі інших мережевих протоколів, переходом до тарифікації послуг інтернету по швидкості доступу, а також появою дешевих апаратних маршрутизаторів з функцією NAT, використання звичайних проксі-серверів для виходу користувачів у Інтернет застосовується вкрай рідко.
Однак великого поширення набули прозорі проксі-сервери (протоколу http та деяких інших), в тому числі й ті, що входять до складу багатьох апаратних маршрутизаторів для доступу до інтернету, з метою збору статистики та контролю доступу до сайтів. Інші порти (протоколи) при цьому проходять через NAT.
Поширені проксі-сервери
З відкритим кодом:
- 3proxy (BSD, вільний, багатоплатформний, невеликий проксі-сервер);
- GoProxy (GPLv3, високопродуктивний HTTP(S) проксі, SOCKS5 проксі, WEBSOCKET, TCP, UDP проксі-сервер, що підтримує проксі-ланцюжок, переадресацію nat в різних каналах, переадресацію TCP/UDP портів, переадресацію SSH, написаний на мові Go)[6];
- glider (GPLv2, прямий проксі з підтримкою декількох протоколів)[7];
- gost (MIT, простий тунель, написаний на Go)[8];
- Envoy (проксі та комунікаційна шина L7, розроблена для великих сервіс-орієнтованих архітектур)[9];
- Ergo Proxy — простий зворотний проксі, який слідує філософії Unix, для управління локальними доменами[10];
- FlClash (багатоплатформний проксі-клієнт)[11];
- mitmproxy (перехоплюючий інтерактивний проксі-сервер із підтримкою SSL/TLS для HTTP/1, HTTP/2 і WebSockets; go-mitmproxy — реалізація mitmproxy на мові Go)[12];
- Nginx (BSD, вебсервер, що має режим роботи як reverse proxy і часто для цього використовується);
- OpenChange Project — прозора (GPLv2) і портативна реалізація сервера Microsoft Exchange і протоколів Exchange для взаємодії з клієнтами Microsoft Outlook або серверами Microsoft Exchange[13];
- Privoxy (проксі-інструмент із розширеними можливостями фільтрації інтернет-контенту для захисту конфіденційності);
- Proxychains-ng (GPL, проксіфікатор);
- Sōzu — HTTP реверсний проксі, побудований на Rust, який може обробляти тонкі зміни конфігурації під час виконання без перезавантажень і розроблений таким чином, щоб ніколи не зупинятися[14].
- Squid (GPL, багатоплатформовий);
- ssl-proxy (зворотний SSL-проксі з автогенерованими сертифікатами)[15];
- TLS termination proxy (проксі-сервер завершення TLS)
- TOR (BSD, багатоплатформовий).
Пропрієтарні:
- Інтернет Контроль Сервер (shareware, є безкоштовна версія «ІКС Lite»[16], віртуальна машина).
Див. також
- Вебкешування
- Вебпроксі
- Замісник (шаблон проєктування)
- Конфіденційність в Інтернеті
- Шлюз прикладного рівня
- SMTP proxy
Примітки
- ↑ Luotonen, Ari; Altis, Kevin (1994). World-Wide Web Proxies (PDF). Архів (PDF) оригіналу за 12 листопада 2021.
- ↑ Shapiro, Marc (May 1986). Structure and Encapsulation in Distributed Systems: the Proxy Principle. 6th International Conference on Distributed Computing Systems. Cambridge, MA, USA. с. 198—204. inria-00444651. Архів оригіналу за 26 грудня 2018. Процитовано 26 грудня 2018.
- ↑ Lyon, Gordon (2008). Nmap network scanning. US: Insecure. с. 270. ISBN 978-0-9799587-1-7.
- ↑ Proxy servers and tunneling. MDN Web Docs (англ.). Архів оригіналу за 26 листопада 2020. Процитовано 6 грудня 2020.
- ↑ 代表的なオープンソースのプロキシサーバー・リバースプロキシ. ネットの基礎知識&Windows/Linuxの快適術 (яп.). Процитовано 19 липня 2025.
- ↑ GoProxy. SourceForge (англ.). 11 червня 2025. Процитовано 19 липня 2025.
- ↑ glider. SourceForge (англ.). 14 серпня 2024. Процитовано 19 липня 2025.
- ↑ gost. SourceForge (англ.). 10 жовтня 2024. Процитовано 19 липня 2025.
- ↑ What is Envoy — envoy tag-v1.34.3 documentation. www.envoyproxy.io. Процитовано 19 липня 2025.
- ↑ Ergo Proxy. SourceForge (англ.). 14 червня 2024. Процитовано 20 липня 2025.
- ↑ FlClash: A multi-platform proxy client based on ClashMeta,simple and easy to use. AlternativeTo (англ.). Процитовано 19 липня 2025.
- ↑ go-mitmproxy. SourceForge (англ.). 28 червня 2024. Процитовано 19 липня 2025.
- ↑ OpenChange Project. SourceForge (англ.). 10 серпня 2023. Процитовано 20 липня 2025.
- ↑ Sōzu. SourceForge (англ.). 5 грудня 2024. Процитовано 20 липня 2025.
- ↑ ssl-proxy. SourceForge (англ.). 25 вересня 2024. Процитовано 19 липня 2025.
- ↑ Что такое ИКС Lite? - база знаний межсетевого экрана ИКС. doc.a-real.ru. Процитовано 19 липня 2025.
Посилання
- JavaScript Developer Center : Use a Web Proxy for Cross-Domain XMLHttpRequest Calls - YDN (англ.). Архів оригіналу за 4 жовтня 2012.
- Was eignet sich besser? VPN oder Proxy Server 2025 [Що краще? VPN або проксі-сервер]. VPNwelt (de-DE) .
- Прокси-чекер: онлайн-проверка работоспособности, анонимности и скорости proxy-серверов онлайн, экспорт ip-port. hidemy.name (рос.).
- Який мій айпі - Знайдіть свою публічну IP-адресу. Whatsmydns.me (укр.).
- [DMOZ - Computers: Internet: Proxying and Filtering: Products and Tools: Software у Wayback Machine (арх. 2017-03-10)]
- [DMOZ - Computers: Internet: Proxying and Filtering: Hosted Proxy Services: Free: CGI Proxy у Wayback Machine (арх. 2017-01-18)]
- [DMOZ - Computers: Internet: Proxying and Filtering: Hosted Proxy Services: Free: Proxy Lists у Wayback Machine (арх. 2017-03-10)]