Comments 77
1) велосипед же, не?
я, например, сто лет как пользуюсь аналогичной замечательной прогой 3proxy… те же 5 строк конфига, но еще и юзеров поддерживает, проброс портов и много чего еще.
2) в айфончиках дёргать нативную качельку VPN лично я считаю удобнее. Поэтому на своём европейском сервере развернул как socks5, так и strongswan (для разворачивания которого, кстати, так же есть готовые скрипты из области yes->yes->done).
Кстати, пока разбирался с этой проблемой, нашёл диалог на сайте техподдержки Микрософта: человек спрашивает, почему у него через прокси не работает Windows Store, а техподдержка на полном серьёзе ему отвечает, что прокси используют только плохие хакеры, поэтому все встреченные прокси надо удалять. Хорошо хоть не посоветовали вызвать полицию.
habr.com/post/358110
chacha20-ietf-poly1305, разработка Гугла для внутренних нужд
Это вы что-то странное написали, chacha20 и poly1305 это известные открытые алгоритмы за авторством Daniel J. Bernstein (https://cr.yp.to/chacha.html, https://cr.yp.to/mac.html), референсные имплементации которых находятся в Public Domain.
Оба этих алгоритма, а также в каком-то смысле родственный им Curve25519/ed25519 (https://cr.yp.to/ecdh.html), проще, чем аналогичные им AES-GCM и RSA/ECDSA, у них меньше размер ключей при той же криптостойкости, и они сравнимы по скорости с аппаратными реализациями аналогов и быстрее софтверных. Собственно, поэтому они и появились в свежих версиях TLS и свежих имплементациях SSH. Кстати, на них же основана библиотека libsodium, которая дает ну очень простой и удобный API для шифрования, подписей и прочих операций.
Кстати, хорошей альтернативой для OpenVPN будет, имхо, Wireguard. Он гораздо проще в настройке чем OpenVPN и тем более другие виды VPN, он очень быстрый за счет того что по умолчанию идет как модуль ядра (хотя преполагается что будут и юзерспейсовые имплементации, особенно для не-Linux систем), основан на state-of-the-art криптографии (как раз вышеописанные chacha20, poly1305, ed25519), и очень активно развивается.
Wireguard — хорошая штука, но у него клиент только для линукса. К тому же, это снова VPN с виртуальной сетью. Настроить выборочное использование — большой бубен надо, однако.
Windows и macOS — это ещё не смотрел.
Android — этим пользуюсь, работает отлично. Но выборочного использования к сожалению нет. Работает без бубнов на стоковом нексусовом ядре.
Под iPhone вроде нет.
Способ 3: https://selivan.github.io/socks/
curl https://selivan.github.io/shadowsocks.txt | sudo bash
если надо явно задать порт и/или пароль:
export PORT=8080; export PASSWORD=mypass
curl https://selivan.github.io/shadowsocks.txt | sudo --preserve-env bash
curl https://<что угодно> | sudo bash
Сомнительная практика.
Кто разбирается — могут сначала прочитать скрипт, он простой. Кто не разбирается — всё равно, чтобы настроить самому, придётся копипастить из интернета какие-то непонятные команды — невелика разница.
Понятно, что не надо так настраивать продакшн на котором деньги лежат, но купленный чисто для vpn виртуалку или контейнер — вполне приемлимо.
Лениво — под Ubuntu готовые пакетики уже есть, под CentOS руками собирать надо. Правда можно через докер его там запускать.
Хотя для обычного socks(danted) мне PullRequest с поддержкой CentOS прислали, может и для shadowsocks кто-нибудь осилит.
Ну так это же прекрасно. Осталось дописать это в скрипт и прислать мне PullRequest :)
Поддержка Debian 8 закончилась в июне 2018, LTS поддержка заканчивается в июне 2020. Я не могу принять PR для системы, под которую нет обновлений безопасности.
Но спасибо за PR и спасибо, что напомнили про скрипт. Пойду добавлю поддержку Ubuntu 20.04.
Debian 8 сбалансированная система, еще долго проживет, а критичные обновления вручную всегда пересобрать можно.
На Jessie все установил и работает, а нужно будет и Debian 9 в свой fork добавлю.
Способ 4: скачать Outline от Google, который сам вам сервер арендует и сам все настроит, не надо совершенно в консоль лезть + клиенты под все платформы и управление черёд GUI.
есть подводные камни, не зная которых можно получить такую ситуацию, что VPN стоит, а трафик идёт в обход.
А чтобы не было таких камней, рекомендуется посредством того же iptables дропать весь трафик, идущий не через tun интерфейс (за вычетом трафика самого vpn'a).
Что касается сабжа статьи, то штука однозначно полезная. Больше инструментов хороших и разных!
иначе вылезает ошибка
тестирую на том же копеечном vps нагрузку от shadowsocks — от одного юзера нагрузки нет.
как понимаю, для данной тулзы нужен ещё и отдельный софт на каждого клиента?
Да, нужен.
У меня dante не завёлся, съел 3ГБ памяти на 1000 клиентов. Пришлось написать простой асинхронный сокс-сервер из одного файла на питоне: https://github.com/alexbers/tgsocksproxy. Он по умолчанию сконфигурирован для телеги, т.е. не пропускает трафик на другие сервера и поднимается в одну команду python3 tgsocksproxy.py. У меня работает без какого либо вмешательства уже три недели. Правда, сейчас телеграм и без проксей нормально работает
Ещё нашёл очень крутой проект https://github.com/StreisandEffect/streisand, который автоматически устанавливает на сервер кучу vpn'ов, включая shadowsocks. Судя по количеству коммитов и форков, проект очень популярен
Другое дело, что экспериментруя на своей VPS, я не заметил сколько-либо значимой разницы в потребляемых ресурсах для 128 и 256, потому что аппаратное ускорение.
2) github.com/fconn/ss2ch/wiki
Но вот с производительностью какая-то беда. Ощутимо быстрее садится батарейка под osx в рабочем режиме, а если качать торрент, или в принципе активно нагрузить канал до 30-40мбит — пару ядер может быть полностью нагружено, на сервере нагрузка тоже рисуется приличная. Любопытно, то ли что-то не так с outline реализацией от гугла, его клиентом под osx, или все-таки в принципе с самим shadowsocks?
Попробуйте поменять алгоритм шифрования. Пощёлкайте настройку fast-open.
Ещё есть простой шифр
rc4-md5
Отличный клиент по Мак ShadowsocksX-NG
- Основное достоинство shadowsocks, это то что у него нет синатуры то есть его трудно вычленить и заблокировать. OpenVPN, Tor и SSH довольно не плохо блокируются Великим Китайским. Для OpenVPN есть патчи, но я отвлекаюсь.
- На самом дешевом дроплете DO за $5 в моих тестах Shadowsocks показывал 50Mbps против 20Mbps на OpenVPN
- Китайские товарищи написали удобный комбаин https://github.com/ginuerzh/gost он позволяет поднять http proxy, выстроить цепочку proxy и еще много много чего. Я заменил им полумертвый polipo
- Для IOS есть клиент Potatso Lite он работает и бесплатен
А существует ли в природе клиент shadowsocks которые может слушать одновременно несколько лоакльных портов и пробрасывать их соответственно на разные сервера? Win64, если садится в трей — вообще было бы идеально.
Сначала браузером, желательно примитивным «изкоробочным», а не основным, пройти на duckduckgo.com и вбить в поиск my ip.
Не благодарите
Небольшое «но» — поскольку пароль к серверу в plain text, да еще и в JSON конфиге, нужно быть осторожнее со спецсимволами. Не заметил, что в сгенерированном пароле попался символ \ — как результат, гадал, почему не заработало.
Помогите, пожалуйста, умные люди...
aes-256-cfb отсутствует в новых Windows-клиентах
Попробовал найти config.json и заменил там
aes-256-cfb на aes-256-gcm
Так вообще не подключается. Видимо, мало было сменить буквы в конфиге.
Как можно сменить режим шифрования корректно, чтобы сервер подхватил режим? Спасибо
Коротко о Shadowsocks, или OpenVPN не нужен (в каждом доме)