Заклинания Shadowsocks
Shadowsocks
Shadowsocks --- протокол прокси с шифрованием.
Shadowsocks is a secure split proxy loosely based on SOCKS5.
Пара ремарок:
- Зачем он мне? Чтобы ходить на запрещё... решать проблемы с подключением к некоторым веб-серверам.
- Почему не полноценный VPN? Потому что OpenVPN и Wireguard меня разочаровали. OpenVPN я не смог поддерживать, а Wireguard развалился от бит-рота.
- Это безопасно? Я не эксперт в криптографии, я не знаю. В поддерживаемых алгоритмах шифрования есть слова AES и CHACHA, для моих целей этого более чем достаточно.
Деплой
Деплоим на обычный линукс-сервер с докером:
echo $(ваш-любимый-генератор-паролей) > .shadowsocks-password
docker run -e "PASSWORD=$(cat .shadowsocks-pass)" --name shadowsocks --restart=unless-stopped -p 8388:8388 -p 8388:8388/udp -d shadowsocks/shadowsocks-libev
Получаем сервер Shadowsocks на порту 8388
с указанным паролем. Все остальные настройки по умолчанию.
- По умолчанию используется алгоритм
aes-256-gcm
. - Хранить и указывать пароль плейн-текстом - плохо. Не делайте так в домашних условиях.
- Мне можно, потому что я панк.
- Не забываем обмазаться фаерволом и пробить в нём дырку под соответствующий порт.
- Подробная инфа в репозитории образа.
Клиенты
Сервер shadowsocks есть, теперь нужен клиент.
Android
- Устанавливаем красивый и функцинальный клиент с gh или берём релиз из стора.
- Запускаем, добавляем и настраиваем новое подключение, указав IP нашего сервера, пароль, и метод шифрования.
- По дефолту в докере выбирается
aes-256-gcm
, а в клиенте - какой-то другой. Если алгоритмы разойдутся, клиент не покажет ошибок, но соединения не будет. - Для диагностики проблем смотрим логи сервера:
docker logs shadowsocks
.
- По дефолту в докере выбирается

- Shadowsocks на андроиде рабоает как VPN. Есть гениальная фича с выборочным VPN для приложений.

Windows
- Устанавливаем менее красивый, шарповый, но всё ещё функциональный клиент.
- Повторяем те же настройи, что и на андроиде.

- На винде shadowsocks не пытается изображать из себя VPN, и поднимает локальный SOCKS5-прокси на указанном порту.
- Используем стандартные системные настройки, плагины для браузера и настройки приложений.

(!) Очень хорошо, что локальный SOCKS5 работает без пароля, потому что Chrome не умеет в SOCKS с авторизацией.
Linux
- Вы знаете что делать.
- GUI-шный клиент архивирован.
- Оригинальная реализация выглядит потёртой, но попробуйте попереключать веточки репозитория.
- Есть актуальная реализация на Ссях, на котором и строится докер.