Китайский VPN Shadowsocks простая установка и настройка

Если шифрование трафика до доверенного сервера — ваша единственная цель, то OpenVPN для такой цели слишком сложен в настройке, а Dante - A free SOCKS server не шифрует из коробки.

C 2012 года в Китае создан бесплатный открытый проект Shadowsocks. Это пара из программ для сервера и клиента, работающих по следующему принципу: клиент изображает из себя сервер SOCKS5 прокси, получает входящие соединения, шифрует их, транслирует на сервер и дальше выпускает в интернет. Принцип работы похож на SSH туннель, но имеет массу достоинств и пару недостатков по сравнению с ним.

Достоинства Shadowsocks:

  • Легкая настройка сервера, стандартный конфиг всего 5 строчек, и клиента. Клиенты существует под все ОС.
  • Клиенту для работы не нужны права админа.
  • Легко настраивать доступ на уровне отдельных программ. В браузере, с помощью дополнений Proxy Toggle/OmegaSwitchy так вообще — на уровне отдельных адресов по сложным правилам.
  • В отличие от VPN, который на большинстве систем реализован через виртуальную сетевую карту, клиент Shadowsocks при обрыве связи не падает. Так что ваш трафик не пойдёт сам по себе незащищённым путём. Кроме того, даже если упадёт само приложение Shadowsocks, программы не будут обращаться напрямую, если только не настроели это делать. При использовании VPN приходится реализовывать kill-switch, а они, особенно под Винду, ненадёжные и с побочными эффектами.
  • По сравнению с SSH туннелем — большая пропускная способность, поддерживает тысячи клиентов с кучей соединений от каждого.
  • Графическая настройка клиентов. Можно сделать QR код, при сканировании которого клиенты настраиваются сами. Один клиент под windows настроили, код сгенерировали, на 20 смартфонов раскидали за минуту. Можно на сайт выложить QR код.

Недостатки Shadowsocks:

  • Не разделяет пользователей. Можно научить слушать на нескольких портах с разными паролями, но на одном порту — один пароль.
  • Не умеет пробрасывать порт в обратную сторону. То есть все как за NAT сидят.
  • Не умеет сжимать трафик архиватором. В век HTTP 2.0 это не важно.

Существуют две версии shadowsocks — референс, написанный на питоне, а shadowsock-libev это то же самое, но переписанное на чистом Си для скорости.

В Ubuntu 22 установим утилиты, Shadowsocks сервер и v2ray плагин:

apt-get install dialog htop lsof
 
apt install shadowsocks-libev shadowsocks-v2ray-plugin

После установки сервер уже запущен с конфигурационным файлом /etc/shadowsocks-libev/config.json:

 systemctl status shadowsocks-libev.service
● shadowsocks-libev.service - Shadowsocks-libev Default Server Service
...
     CGroup: /system.slice/shadowsocks-libev.service
             └─1762 /usr/bin/ss-server -c /etc/shadowsocks-libev/config.json

По умолчанию config.json не работает, для его запуска минимально необходимо изменить параметр server. Можно изменить так же метод шифрования. Приводим файл config.json к виду:

{
    "server":["xxx.xxx.xxx.xxx"],
    "mode":"tcp_and_udp",
    "server_port":8388,
    "local_port":1080,
    "password":"your_password",
    "timeout":86400,
    "method":"aes-256-gsm"
}

Замечание: если в браузере установлены расширения, которые управляют выбором прокси-сервера (VPN-расширения, Switchy Omega), то включение ShadowSocks через System Proxy - Global не будет иметь никакого эффекта на браузер. Нужно их либо выключить, либо перенастроить на системный прокси, если есть такая возможность.

  1. Скачайте клиента и распакуйте shadowsocks.
  2. Скачайте плагин v2ray, подходящий под вашу платформу. Достаньте из архива файл и переименуйте его в v2ray.exe (или просто v2ray, если ваш проводник не отображает расширения файлов). Поместите его в одну директорию с shadowsocks.
  3. Запустите shadowsocks.
  4. Настройте подключение. Параметры соответствую серверному конфигу.
  5. Нажмите правой кнопкой мыши на значке shadowsocks в системном трее и включите прокси, выбрав в том же контекстном меню System Proxy - Global.
  6. Готово!

Также этот способ можно применять на MacOS и Windows для запуска консольного клиента.

  1. Скачайте и распакуйте go-shadowsocks2.
  2. Скачайте распакуйте плагин v2ray-plugin-linux-amd64-v1.3.2.tar.gz.
  3. Поместите оба исполняемых файла в одну директорию. Перейдите в эту директорию в терминале.
  4. Переименуйте исполняемый файл плагина в v2ray
  5. Сделайте оба файла исполняемыми:
     chmod +x shadowsocks2linux v2ray
  6. Запустите прокси командой, , где вместо DOMAIN (в двух местах) и PASSWORD ваш домен и пароль.
    ./shadowsocks2-linux -c "ss://AEAD_CHACHA20_POLY1305:PASSWORD@DOMAIN:443" -verbose -socks :1080 -u -plugin v2ray -plugin-opts "tls;host=DOMAIN"

После запуска на локальном порту 1080 по адресу 127.0.0.1 будет доступен SOCKS5-прокси. Его уже можно использовать в программах.

С самого начала shadowsocks разрабатывался как средство для обхода блокировок в Китае, и достаточно в этом деле преуспевает. С некоторого момента он стал иметь возможность подключения внешних модулей-плагинов для оборачивания трафика shadowsocks в различные виды сетевых соединений. Это значительно расширяет границы его применения. shadowsocks - это шифрованный сетевой туннель, клиентская часть которого предоставляет доступ приложениям к сети как SOCKS-прокси, запущенный на этом же устройстве. Существуют клиентские приложения shadowsocks, которые позволяют заворачивать в него трафик как в VPN.

Obfs-proxy. Позволяет завернуть трафик Shadowsocks в чистый, непримечательный SSL и так пустить на порт 443. Это если у кого уже белые списки протоколов.

PQ VPS сервера в 28+ странах.