Настройка VPN на основе Shadowsocks через Cloudflare CDN

telecom_angel
15 min readJul 6, 2022

--

Атака государства на Интернет продолжается, поэтому в этой статье я хочу рассказать об еще одном способе повысить защищенность своих данных и обезопасить он-лайн общение. Речь пойдет об очень быстром VPN-сервисе на основе SOCKS5-proxy — Shadowsocks.

Так как нашим соседям из Поднебесной гораздо дольше приходится бороться с государственной цензурой в лице Великого Китайского Файервола (т.н. Золотой щит), ими был разработан и успешно применяется для прохождения сквозь Золотой щит шифрующий socks5-proxy под названием Shadowsocks.

Основные преимущества Shadowsocks:

  • Легкость настройки сервера (конфиг занимает 5 строк в формате json);
  • Проходит почти через любые NAT и корпоративные файерволы (пробивал до недавнего времени даже GFW, теперь только с обфускацией);
  • Легко настраивать доступ на уровне отдельных программ. С помощью Proxifier можно очень гибко настроить доступ отдельных программ/к отдельным сайтам;
  • Нет надобности поддерживать постоянный канал, что положительно сказывается на трафике и расходе аккумулятора;
  • Очень высокая скорость на мобильных клиентах, вплоть до полной полосы канала.

К недостаткам можно отнести:

  • Нет управления пользователями. Фактически все пользователи подключаются под одним конфигом, к одному порту, по одному паролю (но какая разница, если все пользователи — доверенные);
  • Документацию писали китайцы, на китайском английском, с кучей пропущенных пунктов и взаимных противоречий;
  • Не проходил официального аудита, т.к. код простой, его смотрела куча народу, но официально нет.

Но самое главное: из этой статьи вы узнаете не только, как поднять сервер и подключить клиент, но и научитесь обфусцировать трафик и пускать его через CDN от Cloudflare так, что для DPI и корпоративных файерволов будет казаться, что вы подключаетесь по https к обычному сайту, пусть это будет YouTube. Для чего это нужно? Чтобы избежать атаки сравнений, когда товарищ-майор, имея пакет Яровой и данные о трафике, а так же данные с серверов (что пока актуально только для ОРИ, поэтому не пользуйтесь российскими сервисами), сравнивает, с какого IP пользователь что-то писал и кто в этот момент времени подключался к нужному IP-адресу. При использовании данного метода весь трафик уходит на один адрес, а приходит с другого — эдакий самодельный TOR с двумя реле. Также этот способ сокрытия эффективен против “активного зондирования” (a.k.a. — active probing), которое успешно применяется против VPN и TOR в Китае: когда, прежде, чем установить соединение, зонд делает соответствующий запрос и ждет ответ от сервера, и если приходит нелегитимный ответ, блокирует соединение и сам IP. Cloudflare CDN с 2014 года бесплатно проксирует websocket трафик. Это позволяет скрыть VPS IP от блокировки Роскомнадзором, трафик идет через Cloudflare CDN. Если в вашей стране доступны IP Cloudfare, можете смело использовать этот способ.

Вот так это будет выглядеть на схеме (здесь за основу взят оригинальный v2ray):

В чем преимущество собственного сервера?

Как правило IPsec-туннели VPN-провайдеров организованы по технологии OpenVPN (для стационарных ПК, реже — Wireguard) и IKEv2 (для мобильных устройств): чаще всего порты и каналы, по которым вы подключаетесь к серверу, перегружены — вы делите их со множеством таких же клиентов. Но самое главное: нельзя быть до конца уверенным, не анализирует ли поставщик VPN-услуг ваш трафик? Арендованный виртуальный сервер дает вам полный контроль над вашим трафиком, шифрованный туннель защищает от атаки “человек-посередине” (т.н. MiTM),

а собственный DNS-резолвер позволяет не только скрывать все DNS-запросы от вашего провайдера или оператора бесплатных сетей Wi-Fi (тем более это необходимо, если вы пользуетесь общественным Wi-Fi от ДИТ Москвы: на улицах или в парках), но и обеспечит нужную фильтрацию ненужного контента (например, позволит блокировать трекеры, телеметрию и прочую Wi-Fi-аналитику, и сделает это не только для сайтов в браузере, но и для мобильных приложений и операционной системы вообще). Более того, с этим решением вы сами получите мощный инструмент для анализа Интернет-активности приложений, установленных на собственном телефоне или компьютере.

Также вам не надо беспокоиться о количестве клиентов (ведь VPN-провайдеры ограничивают количество подключенных устройств), т.к. у вас их могут быть сотни (на сколько хватит мощности сервера). Вы сможете легко настроить VPN-клиент для родных и близких: нужно только скачать приложение и переслать им строку конфигурации.

Собственный сервер мы будем разворачивать в одной из стран Евросоюза, в наиболее свободных юрисдикциях. В конце статьи я также расскажу, как по-умному маршрутизировать трафик, оставляя необходимый в РФ.

С чего начать?

Для управления сервером вам нужно скачать и установить на свой компьютер два инструмента: Putty и WinSCP. Первый — это ssh-клиент для подключения удаленной консоли, второй — файловый менеджер.

В свете введенных ограничений невозможно оплачивать хостинг с банковской карточки. Единственный способ оплаты — это использование криптовалюты. Поэтому нужно искать именно такого хостера. В связи с этим, советую использовать Vultr.com, либо, если вам нужен анонимный хостинг, то рекомендую BitLaunch (в качестве криптокошелька я использую Exodus, а крипту покупаю на exhub.io).

И так, на примере bitlaunch.io, вы пополняете баланс:

Принимает:

Создаете сервер из предложенных:

выбирайте DO, Vultr или Linode. Сервера BitLaunch могут показаться дешевле, но у них велик процент отказа и поломок у провайдеров.

Накатываете Ubuntu:

Из локаций берете либо Амстердам, либо Франкфурт. После выбора тарифа вас попросят задать пароль для подключения к серверу:

Логин будет root, а пароль тот, что вы выберете, либо есть опция использовать SSH-ключ. В итоге вы увидите выделенный провайдером IP-адрес своего сервера, к которому вам нужно будет подключиться. Вы запускаете Putty и в первом окне вводите присвоенный серверу ip-адрес (желательно сразу сохранить данные в профиль):

Как настроить сервер?

Т.к. в блоге нет специального инструмента, чтобы выделять код, который необходимо вставлять в окно консоли, я буду каждую команду начинать с символов ~# (их вводить не надо):

~# apt update && apt upgrade -y && apt install -y shadowsocks-libev

В данном примере я буду использовать конфигурацию, в которой прерывание TLS будет полностью осуществлять Nginx. В отличии от прокси, к которому может подключиться любой желающий, в shadowsocks-libev можно и нужно поставить пароль. Также метод шифрования по умолчанию не оптимален. Поэтому обязательно отредактируйте файл конфигурации по адресу /etc/shadowsocks-libev/config.json:

{
“server”: [“::1”, “127.0.0.1”],
“server_port”: 8008,
“password”: “some_long_password”,
“timeout”: 600,
“method”: “xchacha20-ietf-poly1305”,
“no_delay”: true,
“reuse_port”: true,
“workers”: 1,
“plugin”: “v2ray-plugin”,
“nameserver”: “127.0.0.1”,
“plugin_opts”: “server;loglevel=none”,
“mode”: “tcp_only”
}

Обратите внимание на параметры плагина! За счет того, что обработка TLS будет осуществляться в web-сервере, у нас появится возможность управлять различными клиентами, задавая каждому свой параметр path (для этого надо размножить секцию location в настройках Nginx, об этом ниже). При этом параметры подключения со стороны клиента никак не меняется.

Для общего понимания приведу здесь полные параметры сервера (их использовать в настройке сервера не нужно).

{
“server”: [“::1”, “127.0.0.1”],
“server_port”: 8008,
“password”: “some_long_password”,
“timeout”: 600,
“method”: “xchacha20-ietf-poly1305”,
“no_delay”: true,
“fast_open”: true,
“reuse_port”: true,
“workers”: 1,
“plugin”: “v2ray-plugin”,
“nameserver”: “127.0.0.1”,
“plugin_opts”: “server;tls;fast-open;path=/v2ray;host=domain.me;cert=/etc/ssl/certificate.pem;key=/etc/ssl/certificate.key;loglevel=none”,
“mode”: “tcp_and_udp”
}

Как видите, параметры не сложно понять:

  • В поле «server» вписываем [“::1”, “127.0.0.1”], т.к. перед сервером shadowsocks у нас будет висеть web-сервер. Почему здесь не “localhost”? Из-за особенностей работы websockets в языке Golang, на котором написан v2ray-plugin, не совсем верно поднимаются подключения.
  • В качестве «server_port» можно указать порт 8008.
  • «password» — конечно же, делайте пароль подлиннее и рандомнее (используйте генератор паролей).
  • «timeout» — время, после которого закрывается соединение, если не поступило никаких данных. На сервере лучше поставить это значение побольше, но не более 600.
  • «method» — алгоритм шифрования, «xchacha20-ietf-poly1305» очень надёжен, такой трафик никакой злоумышленник не расшифрует, он работает быстро даже на утюге, не поддерживающем аппаратное ускорение шифрования.
  • «fast_open» — быстрое открытие соединений, работает на ядрах старше 3.16.
  • «reuse_port» — в много поточном приложении позволяет каждому потоку напрямую привязаться к tcp socket’y (адрес:порт). Это позволяет быстрее принимать пакеты.
  • «wokers» — количество ядер, доступных серверу.
  • «nameserver» — будем использовать свой сервер имен: “127.0.0.1” (это наш AdGuard, если не устанавливали, укажите 1.1.1.1. Как установить и настроить AdGuard и подружить его с Nginx, я расскажу ниже).
  • «plugin» — здесь мы указываем используемый в сервере плагин, в нашем случае v2ray-plugin.
  • «plugin_opts» — опции плагина. В поле host= вписывается имя домена, которым вы управляете (сюрприз: мы будем регистрировать собственный домен). Поле cert=/etc/ssl/certificate.pem содержит путь до файла сертификата нашего домена, а поле key=/etc/ssl/certificate.key путь до ключа сертификата (сертификат и ключ нам выдаст Cloudflare, но это будет самоподписанный сертификат). Но так как в нашей конфигурации обработку TLS осуществляет Nginx, писать эти параметры не нужно. Данные файлы разместите по адресу /etc/ssl/. Поле path=/ отвечает за секрет на web-сервере Nginx, по которому он будет перенаправлять наш трафик на плагин v2ray, данное поле может быть сложным и длинным как пароль.
  • «mode»:«tcp_and_udp» включает передачу данных как по TCP, так и по UDP. Важное замечание: несмотря на то, что сам Shadowsocks поддерживает оба протокола передачи данных (и TCP, и UDP), через плагины можно заворачивать только TCP-трафик: only TCP traffic is forwarded. For now, there is no plan to support UDP traffic forwarding. То есть голосовые звонки в мессенджерах и видеоконференции работать не будут.

Также нам надо установить плагин v2ray, который, собственно, и будет обфусцировать трафик shadowsocks под https. Выполняем следующие команды:

~# cd /usr/local/bin

~# wget https://github.com/teddysun/v2ray-plugin/releases/download/v5.3.0/v2ray-plugin-linux-amd64-v5.3.0.tar.gz && tar xf v2ray-plugin-linux-amd64-v5.3.0.tar.gz

~# mv v2ray-plugin_linux_amd64 v2ray-plugin

После этого у вас в папке /usr/local/bin будет лежать файл v2ray-plugin. Его трогать не надо.

Теперь немного отвлечемся от настройки сервера и пойдем зарегистрируем себе доменное имя. Можно воспользоваться бесплатным сервисом freenom.com,

который выдаст вам домен на год с последующим продлением, но у меня не получилось, т.к. работающая в автоматическом режиме capcha не хотела признавать во мне человека. Я воспользовался dynadot.com (он обеспечивает анонимный хостинг):

Регистрируете любое имя, только помните, что по этому имени вы будете подключаться к своему серверу. Можно подобрать что-то близкое к служебным доменам Cloudflare или Google в самой дешевой зоне, это не принципиально.

Теперь также нужно ориентироваться на регистраторов с оплатой в криптовалюте.

Когда зарегистрировали домен, идете на Cloudflare.com, создаете бесплатный аккаунт, и вписываете туда ваш новенький домен.

Ждете некоторое время, прежде чем Cloudflare опросит авторитативные DNS-серверы и найдет регистратора вашего домена (может потребоваться несколько минут). После этого откроется следующее окно с выбором тарифного плана — берем бесплатную версию и заполняем две A записи для нашего домена — в них указываем ipv4 адрес нашего сервера Shadowsocks: одна просто domain.me, вторая www.domain.me, плюс еще можно добавить AAAA запись для ipv6 адресации.

После этого Cloudflare выдаст нам неймсерверы, которые необходимо скопировать и вставить в панель управления у регистратора домена. Для этого в dynadot вам надо пройти в Управление доменами, щелкнуть на свой зарегистрированный домен, перейти в настройки DNS, нажать Управление и в выпадающем списке выбрать Серверы имен (Nameservers):

Таким же способом вы можете сформировать подпись DNSSEC для своего домена. После этого возвращаемся в панель управления Cloudflare и заходим во вкладку SSL/TLS:

В Overview выбираем режим Full (Strict). В разделе Edge Certificates включаем все настройки безопасности: Always Use HTTPS, Minimum TLS Version выбираете 1.3 (и тут можно попасть в ловушку, потому что, как оказывается, не все сети поддерживают обмен по TLS1.3, поэтому будьте внимательны), Opportunistic Encryption, Onion Routing, TLS 1.3, Automatic HTTPS Rewrites (для работы под TLS1.3 нужен клиент Android версии не ниже 8-й). Идете в раздел Origin Certificates нужно выпустить себе сертификат, по которому наш web-сервер будет взаимодействовать с Cloudflare.

Преимущество данного способа в том, что полученный сертификат будет работать только с бэк-ендом Cloudflare. Вам также не нужно связываться с Let’s Encrypt и перевыпускать себе сертификат каждые 90 дней.

В следующем окне у вас будет два поля: сам сертификат и ключ к нему. Их надо скопировать в два файла: domain.me.pem и domain.me.key.

Файлы необходимо разместить на сервере в папке /etc/ssl/ и установить права на чтение (убрать права на запись). После завершения возни с сертификатом перейдите во вкладку Firewall консоли Cloudflare, раздел Settings и отключите все функции:

Теперь вернитесь в консоль вашего сервера.

Отредактируйте файл /etc/sysctl.conf, вписав в конец следующую информацию (настройки, включающие forwarding из предыдущего гайда, нужно отключить, так как при работе с Shadowsocks наш сервер не будет маршрутизатором) из файла sysctl.conf.

Не забудьте применить изменения без перезагрузки командой

~# sysctl -p

Проверяем результат, команда:

~# sysctl net.ipv4.tcp_available_congestion_control

должна показывать net.ipv4.tcp_available_congestion_control = reno cubic bbr.

Устанавливаем nginx:

~# apt install nginx && systemctl status nginx

если inactive, значит 443 порт чем-то занят. Для чего нам web-сервер? Для того, чтобы, если кто-то захочет проверить, что это за сайт такой и “постучит” по нашему адресу, дверь ему бы открыл дворецкий и вежливо направил на сайт, который мы укажем (в его качестве будет выступать web-панель AdGuard).

В данному мануале важную роль играет производительность Nginx, потому что именно он принимает все входящие соединения, и от его настройки будет зависеть производительность всей системы. Поэтому тюнингу Nginx уделяется повышенное внимание.

Открываем файл /etc/nginx/sites-available/default в редакторе, удаляем содержимое и вставляем из файла default. Здесь на месте domain.me вам надо вписать свой зарегистрированный домен. Также по-умолчанию здесь (и далее в клиентах) используется путь (каталог) для перенаправления трафика прокси вида v2ray. Его можно и нужно заменить на рандомную фразу (типа пароля), если будете менять в настройках, не забудьте поменять их в клиентах. Также, если у вас несколько разных клиентов, каждому можно настроить свой путь.

Еще вам надо сгенерировать параметр DH (Диффи-Хеллмана) с помощью команды (это займет некоторое время и вам надо набраться терпения):

~# openssl dhparam -out /etc/ssl/dhparams.pem 4096

Также откройте файл /etc/nginx/nginx.conf и приведите к виду из файла nginx.conf. Рестартуем nginx:

~# systemctl restart nginx && systemctl status nginx

Запускаем наш сервер:

~# systemctl enable shadowsocks-libev.service && systemctl restart shadowsocks-libev && systemctl status shadowsocks-libev

Смотрите /var/log/syslog на наличие ошибок.

Настройка AdGuard

AdGuard — блокировщик рекламы со встроенной защитой личных данных и родительским контролем. Основная часть установки описана в инструкции на сайте comss.ru, поэтому не буду углубляться (также в Интернете вы можете сами найти множество способов установки AdGuard на свервер).

Сначала скачаем и распакуем архив (не забудьте предварительно выйти в корневой каталог командой cd):

~# wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz

~# tar -xzf AdGuardHome_linux_amd64.tar.gz

Переходим в папку Adguard Home и запускаем программу:

~# cd AdGuardHome

~# ./AdGuardHome

Adguard Home будет доступен по адресу http://X.X.X.X:3000, где X.X.X.X — это ваш IP-адрес сервера. При первоначальной настройке, помимо задания логина и пароля, необходимо изменить порт администрирования с 80 на 8080 (подчеркнут красным), а также переключить оба сетевых интерфейса в локальный режим:

Это необходимо, чтобы сервер не смотрел в Интернет и не принимал оттуда запросы. Само обращение к админке AdGuard будет идти через адрес зарегистрированного домена типа https://ваш_домен/aghome (здесь каталог aghome прописан в настройках сайта сервера Nginx).

Первоначальная настройка выполнена, теперь надо запустить AdGuard как службу (демона). Для этого в консоли мы прерываем выполнение через Ctrl+C и пишем команду:

~# ./AdGuardHome -s install

Если нужно будет перезагрузить сервер, сделать это можно командой:

~# ./AdGuardHome -s restart

Если у вас 53-й порт занят системным резолвером, его нужно будет предварительно отключить. Лучше всего это сделать через графический интерфейс AdGuard (если будет такое предупреждение). При этом нужно зайти в файл

/etc/systemd/system/multi-user.target.wants/nginx.service

и вместо After=network-online.target вписать After=nss-lookup.target, чтобы nginx стартовал после того, как загрузится AdGuard, иначе он не сможет найти адрес сайта подмены и выдаст ошибку при старте VPS.

Что еще нужно понять про AdGuard — это то, что все настройки, которые вы вносите через удобный и красивый web-интерфейс, можно найти в одном текстовом файле AdGuardHome.yaml. Он будет находиться в папке с установкой сервера — в папке root:

Также нужно будет зайти в файл конфигурации AdGuardHome.yaml и отредактировать в нем раздел dns:

dns:
bind_hosts:
— 127.0.0.1
— ::1
port: 53

и перезагрузить сервер:

~# sudo ./AdGuardHome -s restart

Что еще нужно настроить на сервере?

Правильно, Firewall. Но сперва сменим порт для ssh подключения, т.к. боты сразу начинают пытаться подобрать пароль по словарям. По умолчанию в Ubuntu, впрочем как и в любом другом дистрибутиве Linux, ssh сервер работает на 22 порту. Изменим этот порт, к примеру, на 23331. Открываем файл настроек /etc/ssh/sshd_config и изменяем следующую строку:

Port 23331

Сохраняем и рестартуем службу:

~# service sshd restart

Проверяем изменения:

~# netstat -tulnp | grep ssh

tcp 0 0 0.0.0.0:23331 0.0.0.0:* LISTEN 925/sshd
tcp6 0 0 :::23331 :::* LISTEN 925/sshd

Следующее подключение будем производить по порту 23331.

iptables я трогать не буду, т.к. им очень легко лишить себя доступа к серверу. Установим UFW:

~# apt install ufw

Откроем файл настроек /etc/default/ufw и убедимся, что параметр

IPV6=yes

выставлен в yes.

Прописываем настройки по умолчанию:

~# ufw default deny incoming

~# ufw default allow outgoing

Открываем порты:

~# ufw allow 23331/tcp #порт для ssh

~# ufw allow 53 #порт для DNS

~# ufw allow 443/tcp # порт для nginx

Наконец включаем UFW:

~# ufw enable

И проверяем его работу:

~# ufw status

Настройка Andoid-клиента

Андроид-клиент скачиваем отсюда, а отсюда скачиваем плагин v2ray (для iOS используйте MobileShadowSocks, для MacOS используйте ShadowsocksX-NG и обновите с помощью homebrew библиотеки и плагин). Настраивается клиент достаточно просто:

Задаем имя профиля, в раздел Сервер вписываем наш домен, который привязан к нашему VPS через Cloudflare (резолвится он соответственно будет также ip-адресом, принадлежащим CDN). Удаленный порт 443, пароль — как на сервере, метод шифрования как на сервере.

В поле Удаленный DNS указываем ссылку на поднятый на нашем сервере AdGuard, просто прописывая 127.0.0.1 (как альтернатива — можете использовать резолвер от провайдера VPS, это будет самый быстрый вариант, но не самый безопасный). Плагин выставляем v2ray и тыкаем на его настройки:

Транспортный режим выбираем websocket-tls, Hostname — наш домен, Path — вписываем /v2ray, Concurrent connections можно оставить 1, разницы нет, если увеличивать. И поле сертификат оставляем пустым. Все сохраняем, жмем на кнопку самолетика, если подключились, должны обновляться данные скачивания/загрузки. Если выдало ошибку, перепроверяйте, все ли вы сделали правильно.

Важный момент по поводу клиента для Андроид. В настройках профиля есть пункт “Режим VPN для выбранных приложений”, советую ее включить и выбрать в ней третью опцию “В обход прокси”. Туда следует отправить приложения, которые вас идентифицируют, например, мобильный банкинг, Госуслуги и пр.

Для платформы Андроид также советую установить F-Droid и через него установить FOSS-версию клиента и плагина.

Клиент Windows

Сам клиент можно скачать отсюда, не забывайте сюда заглядывать и обновлять. Сам архив надо обязательно распаковать в отдельную папку. Туда же надо положить файл плагина v2ray, предварительно скачав его отсюда (выбирайте windows-amd64). Переименовывать файл не надо, оставляйте как есть.

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

В разделе Plugin Program указывайте имя исполняемого файла плагина v2ray (без расширения, перепроверяйте операционную систему), в опциях плагина прописываете:

tls;fast-open;path=/v2ray;host=domain.me

Сертификат здесь нигде указывать не нужно (domain.me везде заменяйте на свой домен).

После нажатия ОК сервер добавится в список слева и окно скроется. При необходимости его можно вызвать нажатием правой кнопкой мыши по значку Windows-клиента Shadowsocks в трее — Servers — Edit Servers.

Чтобы инициировать подключение к настроенному серверу, нужно переключить системный прокси: в меню System-Proxy -> Global — это включит системный прокси вашей системы. Пункт Disable выключает проксирование, а PAC — это специальный набор правил, который может формироваться автоматически на основании подсетей китайского Интернета. Также советую, чтобы не запускать программу каждый раз при включении ПК, отметить галкой пункт Start on Boot.

Клиент для Linux

Если в качестве клиентской вы используете машину на Ubuntu, то пакеты Shadowsocks и v2ray на нее устанавливаются также, как и на сервер.

В файл конфигурации config.json вам нужно будет внести изменения:

{
“server”: “domain.me”,
“server_port”: 443,
“password”: “some_long_password”,
“timeout”: 600,
“method”: “xchacha20-ietf-poly1305”,
“no_delay”: true,
“fast_open”: true,
“reuse_port”: true,
“plugin”: “v2ray-plugin”,
“nameserver”: “127.0.0.1”,
“plugin_opts”: “tls;fast-open;path=/v2ray;host=domain.me”,
“mode”: “tcp_only”
}

Клиент запускаете так:

~# systemctl enable shadowsocks-libev-local@config

~# systemctl start shadowsocks-libev-local@config

Здесь config — это файл конфигурации Shadowsocks без расширения json.

Вот такая скорость получается при пропуске трафика через CDN:

Просадка есть, но она не критичная, гораздо сильнее вырастает ping. К сожалению, Cloudflare не располагает собственной сетью на территории РФ, из-за этого маршрут трафика может значительно увеличиться, но возможно, что мы придем к такой ситуации, когда другого выхода получить свободный Интернет у нас не останется.

Как можно нивелировать потерю пинга? Можно установить программу Proxifier (скачать ее можно отсюда или отсюда). Программа позволяет вместо использования глобального системного прокси более гибко управлять подключением программ к нашему удаленному серверу. Т.е. как и с использованием VPN-Policy-Routing на маршрутизаторе, мы выборочно отправляем браузер, Telegram, голосовой чат через Shadowsocks, либо же наоборот: отправляем весь трафик на Shadowsocks, а избранные программы отправляем напрямую через нашего провайдера. Однако в последних версиях программы есть недостатки с работой DNS: даже несмотря на отметку “Отправлять запросы DNS через Proxy”, запросы DNS скорее всего пойдут мимо прокси. Поэтому лучше все таки для программ, где есть свое управление работы через прокси (Firefox, Telegram), использовать их собственные настройки.

--

--