VPN vs Proxy vs XRay: что лучше?
![8a5f14ec92e3df58584ab6e3e460693a.png](https://habrastorage.org/getpro/habr/upload_files/8a5/f14/ec9/8a5f14ec92e3df58584ab6e3e460693a.png)
Всем привет, это TechTalk!
Мы пишем и говорим про IT, цифровые права и свободу интернета в Телеграм и на YouTube, а сегодня решили зайти с другим форматом, поэтому это первый хабрапост.
Начать решили с простых истин и попробовать предложить идею, что в некоторых случаях использование прокси может быть надежнее, чем VPN.
Поэтому для начала давайте поговорим о в разнице между прокси и VPN, а ещё ответим на вопрос, почему в условиях цензуры чаще всего помогают именно прокси. Хотя, забегая вперед можно уточнить, что не совсем прокси, а скорее основанные на прокси инструменты.
Предлагаем начать с терминологии.
Что же такое VPN?
Изначально технология VPN не создавалась конкретно для обхода блокировок, а была (и является до сих пор) инструментом, который позволяет создать, условно назовём, «туннель» между несколькими устройствами, чтобы объединить их в общую сеть (можно провести аналогию с вашей домашней локальной сетью, где все устройства подключены к одной сети и могут обмениваться данными между собой, либо подключаться к серверам в интернете через «роутер». В случае VPN строится подобная же сеть, только работает не поверх Wi-Fi или проводов в вашей квартире, а поверх Интернета (или других сетей). И «роутером» в ней может работать любое из подключенных к ней устройств (но чаще всего используется конфигурация когда устройств всего два: ваше и сервер, который работает «роутером». Как правило, он же является и сервером, к которому вы подключаетесь при настройке VPN-соединения, но в целом это не обязательно должен быть один и тот же сервер.
Кроме прочего, это помогает людям обмениваться данными, находясь в разных местах, например, в разных городах, странах и даже континентах. Дополнительно (в случае использования собственной VPN) это повышает безопасность, т.к. большинство реализаций VPN используют довольно стойкое шифрование.
Для построения VPN существует множество протоколов и каждый их них обладает как своими преимуществами, так и недостатками. Подробнее данную тему мы подняли в одном из наших видео на YouTube: https://www.youtube.com/watch? v=p4_7Tv6BinY
В общем, самое основное и важное отличие VPN от других технологий связи в том, что строится некая виртуальная сеть между устройствами (даже если их всего два).
Так, а Proxy?
Proxy–сервер — это сервер-посредник, который принимает ваши запросы, выполняет их от своего имени и передает вам результаты.
Вы (точнее, ваши программы/ОС), условно, «обращаетесь» к нему, и говорите: «хочу сделать такой–то запрос к вот такому серверу». Он делает этот запрос за вас (на самом деле, есть некоторые нюансы, но для простоты опустим их) и отдаёт вам результат.
Существует несколько типов Proxy–серверов, каждый из которых имеет свои особенности и области применения.
Proxy–протоколов существует довольно большое количество, но возьмем самые распространенные и имеющие максимальную поддержку со стороны программ (например, браузеров) и ОС.
SOCKS (а точнее SOCKS4 и SOCKS5 с его модификациями), HTTP и HTTPS.
VLESS, VMess, ShadowSocks или прокси нового поколения (о них мы поговорим чуть ниже)
HTTP прокси работают, используя тот же протокол, что и большинство сайтов, так что его распространению очень помогло то, что добавить его поддержку было довольно легко (особенно в браузеры). А также то, что его использование позволяло кэшировать контент, что в некоторых ситуациях позволяло пользователям получить контент быстрее.
Но это было во времена, когда трафик не шифровали (и взломщиков было меньше, и воровство паролей не было поставлено на поток, и государства и прочие личности не «совали свой нос» в трафик обычных людей в желании его модифицировать (подделать), и провайдеры не пытались вставлять непрошенную рекламу).
С тех пор утекло много воды и мир изменился вслед за появившейся потребностью в шифровании трафика.
Так появился HTTPS как протокол в целом, так и прокси на его основе.
По сути, это тот же самый HTTP, но внутри шифрованного туннеля (используя технологию TLS, ранее SSL), который быстро устанавливается при соединении с сервером.
Кроме шифрования, в HTTPS так же используется и подтверждение подлинности сервера, предоставляющего свой «удостоверяющий сертификат», заверенный Доверенными Удостоверяющими Центрами (удостоверяющие и заверяющие сертификаты которых поставляются вместе с ОС (и браузерами, у которых своя копия)).
Таким образом, если вы делаете запрос к HTTP–сайту (просто через вашего провайдера, без прокси), то тот, кто подключен к вашей сети, плюс ваш провайдер, плюс провайдер его провайдера (и так далее до самого целевого сервера) видят всё, что вы передаёте в этом запросе и всё, что вы получаете в ответ (включая пароли).
В случае HTTPS все данные (кроме адреса сайта, хотя и это — в процессе решения) передаются уже зашифрованными и не видны тем, кто подключен к сети.
Так же и в случае прокси: если вы используете HTTP–прокси (не HTTPS), то оборудованию провайдера (и ТСПУ) видит всё передаваемое содержимое. И даже если через него вы обращаетесь к HTTPS–сайту, прослущивающему оборудованию видно как минимум домен сайта (и оно, соответственно, может применить блокировку).
В случае же HTTPS–прокси всё, что видно «подслушивающим» — только адрес прокси–сервера (и то, опять же, есть надежда что в ближайшее время этот вопрос решат)…
SOCKS4/5 прокси работают немного иначе, но в целом, принципы те же.
Кроме, разве что, того, что они не поддерживают шифрование и в плане возможности «подглядеть» содержимое передаваемого трафика здесь всё аналогично аналогично HTTP.
С вводными данными закончили, давайте теперь попробуем разобраться в том — чем же все таки VPN и прокси, как технологии, между собой различаются.
Во-первых, на «глубоком» уровне (который не всегда видно, особенно на мобильных ОС) самое главное отличие (которые мы несколько раз отмечали выше) в том, что:
VPN — это построенная поверх интернета (или другой сети) виртуальная сеть. В грубом приближении, напомним, аналогичная вашей домашней сети с Wi-Fi и роутером.
В ней может быть как два устройства (вы и сервер), так и больше, но идея в том, что между ними строится виртуальная, но практически полноценная компьютерная сеть. И через эту сеть вы можете (и в большинстве случаев так и делаете) пропускать весь свой трафик (в этом случае сервер работает аналогом «роутера» в вашей домашней сети).
Установленные программы при этом, как правило, совершенно не имеют представления о том, как они ходят в сеть и они, как правило, не видят разницы между тем, выходят ли они в сеть через домашний роутер, мобильный интернет или VPN.
Proxy при этом, по сути, это просто программа (в большинстве случаев — запущенная на удалённом сервере), которая принимает специальные запросы (и отвечает на них) о том, чтобы либо выполнить указанный web-запрос, либо настроить подключение к указанному сервису (будучи при этом посредником).
И это подразумевает наличие поддержки работы через него (прокси) в каждой конкретной программе, где он подразумевается к использованию, что также позволяет более тонкую настройку его использования.
Позволяя даже не только разным программам одновременно работать через разные прокси-серверы, но и, в случае браузеров, даже к разным конкретным сайтам в пределах одного браузера обращаться через разные конкретные прокси-серверы.
Это позволяет не только увеличить приватность, но, в случае мобильных устройств, не держать постоянно запущенным приложение, подключающееся к VPN (соответственно, не тратить на это заряд батареи, а также лишний трафик на поддержание подключения).
Во-вторых, современные VPN-протоколы в основной своей массе используют шифрование при построении подключения и передаче данных.
В то время, как «основные» протоколы прокси (старого поколения), в свою очередь, в большинстве своём трафик не шифруют (исключение — вышеописанный тип HTTPS-прокси, которые используют HTTP поверх TLS).
При неосторожном применении это может подвергать опасности как приватность (любой человек в той же сети, а также провайдер, ТСПУ и практически всё сетевое оборудование на пути до целевого сервера/сайта может «видеть» то, куда именно идёт подключение, а в некоторых случаях, ещё и содержимое передаваемых данных (например, пароли)), так и пользователя в целом (например, перехват данных или атака называемая «человек посередине», сутью которой является подмена передаваемых данных).
Также без шифрования велик шанс того, что обойти блокировку не получится, так как и провайдер и ТСПУ видят куда происходит подключение.
Однако в случае прокси «нового поколения» в том применении как там используется прокси — шифрование и не нужно и его отсутствие скорее даже играет на польз, т.к. позволяет избежать лишних повторных шифрований, чем положительно влияет на скорость обмена данными. Но об этом аспекте мы ещё поговорим.
Так как VPN-программы шифруют данные (иногда и в несколько «слоёв»), в зависимости от разных факторов (например, мощности устройства) скорость соединения может быть ниже, чем через прокси. Впрочем, как правило, современные устройства позволяют VPN-приложениям шифровать данные на скоростях близких к «средним» скоростям интернет-соединений, и заметите разницу вы, скорее всего, только если привыкли к очень «широким» интернет-каналам.
Остальные различия, по большому счёту, являются следствиями уже перечисленных и сводятся к сугубо техническим вопросам.
Однако, это ещё не всё!
Мы рассказали про «обычные» прокси и «обычные» VPN. Но рассказ был бы не полон без упоминания, скажем так, «прокси нового поколения» или, условно, назовём их полу-прокси.
Их суть заключается в том, что они на базовом уровне являются прокси-серверами, но при этом также несут в себе и часть идеи VPN (в частности, построение шифрованного «туннеля» между пользовательским устройством и удалённым сервером).
Предлагаем, многие слышали про протокол Shadowsocks, который, собственно, и является этим самым «прокси нового поколения» (да-да, это не VPN, как некоторые привыкли его называть), потому что он был создан на базе SOCKS5-сервера с добавлением к нему шифрования (в виде построения шифрованного туннеля, как это делают VPN, но без организации сети, передавая в нём только проксируемый траффик).
Это позволило пользователям из многих стран обходить блокировки практически не теряя в скорости, а также оставаться незаметными (так было на время его появления) для DPI оборудования.
Но долго так продолжаться не могло, и DPI-анализаторы со временем научились его обнаруживать.
Поэтому энтузиасты создали достаточное количество как подобных инструментов на основе прокси (и не только), так и так называемых «транспортов» для маскировки трафика. Да и сам Shadowsocks тоже развивается и предлагает новые способы маскировки.
Среди подобных, созданных следом за Shadowsocks инструментов, можно из наиболее известных упомянуть, например, V2Ray.
Впрочем, у V2ray, как и у многих проектов, появился форк V2Fly, на основе которого в последующем был создан не менее известный XRay, который, можно сказать, является «мутантом» и собирает в себе разные трудно «убиваемые» протоколы, используемые для построения и маскировки шифрованного «туннеля», в котором и передаётся проксируемый трафик.
Ещё, пожалуй, упоминания стоят два практически самых известных протокола, используемых пользователями — это VMess и VLESS.
VMess изначально был разработан для обхода интернет-цензуры и защищенной и анонимной передачи данных и имеет встроенное шифрование и поддержку различных типов транспортов.
VLESS — его облегченная и более новая версия без встроенного шифрования, где главным достоинством является производительность и минимизация задержек.
Мы можем ещё долго говорить о разных протоколах, но Deleted-user на Habr описал их настолько хорошо, что не видим смысла повторяться: https://habr.com/ru/articles/727868/
Недавно, на фоне различных блокировок и новостей о том, что тот или иной VPN-протокол перестает работать, в коллаборации с командой VPNPay мы запустили сервис VPNPay Proxy, где предлагаем прокси на протоколах VLESS, VMess и Shadowsocks. Такие прокси позволяют получить доступ к зацензурированным сайтам и маскируют ваш трафик.
По причине того, что инструменты и протоколы на основе Proxy активно развиваются именно в направлении маскировки трафика — они, на наш взгляд, в отличие от VPN, являются более надежным инструментом, нежели VPN, в случае, если у вас есть необходимость обойти блокировку какого-то ресурса. А то даже и VPN-протоколов, но об этом как-нибудь в следующий раз.
А пока — можно настраивать XRay, используя, к примеру такой софт, как Amnezia VPN (для self-hosted решения) или же воспользоваться уже готовым решением от VPNPay: https://vpnpay.io/ru/proxy/