VPN & Proxy

Прокси-сервер

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

Что такое прокси-сервер

Прокси-сервер (proxy server, от англ. proxy — «посредник», «доверенное лицо») — промежуточный сервер между клиентом и целевым ресурсом. Клиент отправляет запрос не напрямую, а прокси; тот выполняет запрос от своего имени и возвращает ответ. Для целевого сервера источником трафика выглядит прокси, а не исходный клиент.

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

Прямой и обратный прокси

Главное деление — на чьей стороне стоит посредник.

Forward proxy (прямой) Reverse proxy (обратный)
Кого представляет клиента сервер
Кто про него знает клиент настраивает явно клиент не знает, видит обычный сайт
Типичная задача выход в интернет из корпоративной сети, фильтрация, кеш публикация сайта, TLS-терминация, балансировка
Примеры Squid, SOCKS5-прокси Nginx, Traefik, HAProxy

«Прокси-сервис» в объявлениях — это почти всегда аренда прямого прокси: вам продают доступ к чужому серверу, через который можно выпускать свой трафик.

Типы прокси

  • HTTP-прокси — разбирает HTTP, поэтому умеет кешировать ответы, править заголовки и фильтровать по URL. Работает только с HTTP.
  • HTTPS (метод CONNECT) — клиент просит открыть TCP-туннель до узла, внутри идёт TLS. Прокси видит имя хоста и объём трафика, содержимое — нет.
  • SOCKS5 — универсальный прокси уровня TCP/UDP, прикладной протокол не разбирает. Подходит для чего угодно: почты, БД, мессенджеров.
  • MTProto — собственный прокси-протокол Telegram.
  • Прозрачный (transparent) — трафик заворачивается маршрутизацией, клиент не настраивается и о прокси не знает.

Прокси в Telegram

Telegram поддерживает два вида прокси, оба задаются в клиенте (Настройки → Данные и память → Настройки прокси):

  • SOCKS5 — стандартный прокси: адрес, порт, опционально логин и пароль.
  • MTProto proxy — разработка Telegram: адрес, порт и секрет (secret) в hex. Оборачивает штатный протокол мессенджера в свой транспорт.

Что важно понимать про сторонние прокси: весь трафик клиента идёт через чужой сервер. Переписка остаётся зашифрованной ключами Telegram, и владелец прокси её не читает, но метаданные видит — ваш IP, время и объёмы соединений. Публичные прокси из открытых списков непредсказуемы по владельцу, скорости и времени жизни. MTProto-прокси разворачивается и на своём VPS: официальная реализация открыта, установка занимает несколько минут.

proxy_pass в Nginx

proxy_pass — директива, которая делает Nginx обратным прокси: полученный запрос она передаёт указанному бэкенду.

server {
    listen 443 ssl;
    server_name api.example.com;

    location /api/ {
        proxy_pass http://127.0.0.1:8000/;   # слэш в конце срезает /api/ из пути
        proxy_set_header Host              $host;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Два момента, на которых спотыкаются чаще всего:

  • Слэш в конце адреса. С proxy_pass http://127.0.0.1:8000/; запрос /api/users уйдёт на бэкенд как /users. Без слэша — как /api/users.
  • Заголовки. Без X-Forwarded-For и X-Real-IP приложение увидит в логах адрес самого прокси, а не клиента.

Так закрывают приложение: сервис слушает 127.0.0.1, наружу торчит только Nginx, а на нём — TLS, лимиты, авторизация и логи.

Прокси и VPN

Прокси VPN
Уровень работы приложение или TCP-сессия сетевой интерфейс
Что заворачивает только настроенное приложение весь трафик системы либо по маршрутам
Шифрование не обязательно штатно
Маршруты и DNS приложение решает само задаются туннелем
Настройка в каждом приложении отдельно один раз на устройстве

Проще говоря: прокси — посредник для одного приложения, VPN — новый сетевой интерфейс для всей системы.

Связанные термины

  • VPN — заворачивает весь трафик, а не отдельное приложение
  • Туннелирование — механизм, на котором работает CONNECT и SSH-прокси
  • Nginx — самый частый обратный прокси
  • SNI — по нему прокси выбирает бэкенд, не расшифровывая трафик
  • load balancer — обратный прокси, распределяющий нагрузку
  • API Gateway — обратный прокси с логикой уровня API

Готовы запустить GPU-задачу?

Запустить GPU-сервер