Коротко о Shadowsocks, или OpenVPN не нужен (в каждом доме)

В наши дни, когда всякие нехорошие элементы так и норовят влезть в ваш трафик и как-то там напакостить, стало модным шифрование трафика. Начинание это благое и полезное, вот только делают его зачастую избыточно. Если шифрование трафика до доверенного сервера, типа своего VPS, — ваша единственная цель, то OpenVPN для такой цели слишком наворочен. Его долго настраивать, легко обнаружить, а главное — есть подводные камни, не зная которых можно получить такую ситуацию, что VPN стоит, а трафик идёт в обход. Всё это потому, что OpenVPN задумывался больше как средство доступа к маленькой сети через Интернет, а не для доступа ко всему Интернету.

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

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


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

Недостатки Shadowsocks


  • В отличие от OpenVPN, не проходил официального аудита. Так-то его просматривала куча народу, благо код открытый и маленький, но официально — нет.
  • Не разделяет пользователей. Можно научить слушать на нескольких портах с разными паролями, но на одном порту — один пароль. Знание пароля не позволяет (в теории) слушать другого абонента того же порта.
  • Не умеет пробрасывать порт в обратную сторону. То есть все как за NAT сидят. Придётся воспользоваться SSH туннелем, если можно.
  • Клиент для Андроида держит аж два(!) неубираемых сообщения. Если их не скрыть, это очень мешает.
  • Есть пара упёртых программ под Винду, которые не лезут в Shadowsocks, как их не настраивай. Увы, автор программы может написать открытие соединения так, чтобы игнорировать настройки прокси, и так иногда делают, когда проверяют лицензии на софт. Ниже напишу хитрый трюк, как эти программы распознать.
  • Latency соединения выше, чем у OpenVPN. Не сильно, и гамать можно, но всё же.
  • Не умеет сжимать трафик архиватором. В век HTTPS это не важно, а вот для, скажем, несжатых текстовых файлов и настоящих образов Убунты — разница есть.
  • Документацию писали китайцы, на китайском английском, с кучей пропущенных пунктов и взаимных противоречий.

Настройка сервера Shadowsocks. Способ 1

Пишем конфиг. Вот пример полного рабочего конфига.

{
    "server":"111.222.333.444",
    "server_port":8390,
    "local_port":1080,
    "password":"buratino.ty.sam.sebe.vragg",
    "timeout":60,
    "method":"aes-256-cfb",
    "fast_open": true
}

Это конфиг одновременно для сервера и клиента. Имеем поочереди адрес и порт сервера(можно хоть 80-й); порт, с которого клиент будет принимать подключения(лучше не трогать); пароль открытым текстом; и время в секундах, после которого сервер закрывает ненужный канал. А о последних двух поподробнее.

Shadowsocks имеет на выбор кучу методов шифрования, однако практически применимы всего два. chacha20-ietf-poly1305, алгоритм за авторством Daniel J. Bernstein, разрабатываемый Гуглом для внутренних нужд. Хорош для устройств, не умеющих аппаратный AES, а это совсем дешёвые мобильники и прочие умные утюги; и для параноиков, боящихся закладок в процессоре. Всем остальным использовать aes-256-cfb. Впрочем, оба шифра надёжные и проверенные временем.

Настройка fast_open уменьшает latency соединения, но требует ядро не ниже 3.7. И даже там работает не всегда, в частности, не работает, если виртуалка ваша сделана OpenVZ. На Scaleway-ских ARMах тоже не завелось. В общем, включайте, если работает.

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

Ну и запускаем: ss-server -c config.conf. Всё должно работать. Не забудьте файрволл и автозапуск. Ликбез по администрированию линукса я тут писать не буду, поэтому если что-то не заработало, переходите к методу 2.

Способ 2

Устанавливаем docker и docker-compose.

apt install docker docker-compose

Дальше, в файле, который должен обязательно называться docker-compose.yml, пишем конфиг такой:

version: '3'
services:
  shadowsocks:
    image: shadowsocks/shadowsocks-libev:latest   
    environment:
      - TZ=Europe/Moscow
      - PASSWORD=buratino.ty.sam.sebe.vragg
      - METHOD=aes-256-cfb
      - ARGS=--fast-open
    ports:
      - "8390:8390"
      - "8390:8390/udp"
    restart: unless-stopped

Обратите внимание на отступы, они важны. Если хочется, можно поднять сразу несколько серверов на разных портах, с разными паролями, для этого нужно просто продублировать весь блок shadowsocks: с разными именами. Когда конфиг готов, в той же папке запускаем

docker-compose up -d

и всё заведётся. Docker для вас даже сам, без спроса, дырочку в файрволле для каждого порта просверлит, зараза такая.

Конфигурация клиентов

Тут всё проще. Идём на сайт, качаем нужный клиент, настраиваем в интерфейсе. Для линуксоидов, естественно, есть консольный демон, кушающий конфиг из метода 1.

После настройки клиента у вас в системе на порту 1080 будет сидеть SOCKS5 прокси, по умолчанию недоступный извне. Но можно открыть, если вы в дружественной локалке. Важно понимать, что сами по себе программы туда не ломанутся. Нужно настроить системную проксю (если хотите, чтобы все программы шли через Socks) или каждую программу в отдельности, а лучше и то, и то — не повредит. На Windows 10 в панели управления есть пункт Network&Internet → Proxy. Там нужно вписать адрес прокси 127.0.0.1, порт как настроили (1080) и игнорировать для: локальной сети (обычно 192.168.0.1/24, хотя смотрите сами) и, для самого айпишника сервера. Если кто использует Linux Subsystem, то на неё эта конфигурация не распространяется, там надо объявлять переменную socks5_proxy. Полноценные линуксы обычно имеют в панели управления аналогичные настройки. Для браузеров рекомендую дополнения типа FoxyProxy (FF) и SwitchyOmega (Хром) для детальной настройки, к какому сайту ходить через прокси, а какому напрямую. В частности, прямой доступ надо настроить к ресурсам своего провайдера, и, возможно, к своему банку. Рекомендую так-же не удивлять Мосэнергосбыт счетами из-за границы — они там и так пугливые какие-то. Paypal, как ни странно, до лампочки. Не забудьте поставить галочку «DNS через proxy» или убедиться, что оно по умолчанию так.

Проверка работы

На этом этапе всё должно работать. Нужно сделать 2 теста. Сначала браузером, желательно примитивным «изкоробочным», а не основным, пройти на https://duckduckgo.com/ и вбить в поиск my ip. Адрес должен быть серверный. Затем, в настройках клиента, вписать неправильный пароль, и убедиться, что все программы перестали работать. Это проверка на то, что ни одна программа не лезет в обход прокси.

Дополнения

Расскажу о некоторых дополнениях к Shadowsocks, но не буду углубляться в их настройку. Спрашивайте, если что.

Polipo. Некоторые древние или уп[ёр/оро]тые программы не умеют SOCKS5, зато умеют HTTP_PROXY. В частности, официальный клиент Twitter для Андроид до сих пор не умеет использовать Shadowsocks если тот установлен не на мобильнике, а, скажем, на роутере. На этот случай можно установить http_proxy сервер Polipo, и в настройках его указать редирект на Shadowsocks. Все http proxy программы заброшены ввиду малой нужности, но Polipo пока работает без проблем.

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

KCPTUN. Протокол KCP — это надстройка над UDP для работы в совсем уж убогих сетях с большими потерями, типа сотового модема на грани приёма или тропосферной радиорелейной связи. Использование KCP позволит общаться чуть быстрее чистого UDP, а Shadowsocks — очень удобный способ завернуть свой трафик в KCP.

Fail2ban неплохо бы настроить ещё, чтобы отбивать попытки DDOSа на сервер. Но если вы не обижаете школьников, то кто вас будет DDOSить? Ставьте пароль подлиннее, благо его даже один раз в мобильники вбивать не придётся, и не парьтесь. Мой реальный пароль — 40 случайных символов.

Всё!
Поделиться публикацией

Комментарии 69

    +1

    1) велосипед же, не?
    я, например, сто лет как пользуюсь аналогичной замечательной прогой 3proxy… те же 5 строк конфига, но еще и юзеров поддерживает, проброс портов и много чего еще.
    2) в айфончиках дёргать нативную качельку VPN лично я считаю удобнее. Поэтому на своём европейском сервере развернул как socks5, так и strongswan (для разворачивания которого, кстати, так же есть готовые скрипты из области yes->yes->done).

      0
      Родной vpn андроида разве умеет nat-passthrough?
        0

        к сожалению, не имею ни у себя, ни в ближайшем окружении ни одного андроида уже много лет, потому не интересовался вопросом...

        0
        Сравнив с 3proxy, вы упустили идею. Shadowsocks шифрует весь трафик между абонентом и сервером, а 3proxy, судя по документации, только пароль. А ещё он относительно новый, много админского софта не умеет ещё его распознавать.
          0
          но погодите,shadowsocks вроде не шифрует трафик как vpn, или я ошибаюсь?
            0
            Ошибаетесь. Трафик между клиентом и сервером полностью шифруется AESом. И отнюдь не по паролю для аутентификации, а как надо. Это трафик между приложением и клиентом не шифруется, но они либо на одной машине стоят, либо в доверенной локалке.
              0
              можете еще создать статью про отличия vpn и shadowsocks а то я нигде не нарыл, и еще вопрос от себя, смысл делать openvpn over shadowsocks если shadowsocks вроде бы как со своей задачей справляется?
                0
                Для статьи про отличия нажмите кнопку Home на клавиатуре. OpenVPN через Shadowsocks прокладывают для передачи того, что в Proxy не лезет, и для проброса портов.
        0
        Заработало, большой пасиб!
          +2
          Ремарка: чтобы в Win 10 Заработал Windows Store, надо и в настройках клиента Shadowsocks включить System Proxy, и в настройках Windows сделать, как я сказал. Почему так — не знаю.

          Кстати, пока разбирался с этой проблемой, нашёл диалог на сайте техподдержки Микрософта: человек спрашивает, почему у него через прокси не работает Windows Store, а техподдержка на полном серьёзе ему отвечает, что прокси используют только плохие хакеры, поэтому все встреченные прокси надо удалять. Хорошо хоть не посоветовали вызвать полицию.
            0
            Китайские хакеры стоят за многочисленными взломами международных компаний
            habr.com/post/358110
              +1
              А при чём тут китайские хакеры? Shadowsocks пилят обычные программисты для себя, его главная цель — пробивать китайский государственный файерволл. Косвеноо об эффективности говорит тот факт, что несколько лет назад одного из разработчиков навестила полиция и заставила удалить код из репозитория (надо ли говорить, что Git позволяет быстро отмотать любое изменение назад, поэтому никакого эффекта это удаление не возымело).
              0
              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), и очень активно развивается.

                0
                Алгоритмы Бернстейна находятся в Public Domain. А Гугл его активно и публично начал внедрять у себя, создавая софт, чем и продвинул в массы. Стал бы алгоритм применяться где-то ещё если бы не Гугл — неизвестно. Думаю, в недрах ГитХаба можно найти ещё много хороших, открытых и никому не нужных алгоритмов. Но в статье я уточню. AES быстрее, когда аппаратно ускоренный.

                Wireguard — хорошая штука, но у него клиент только для линукса. К тому же, это снова VPN с виртуальной сетью. Настроить выборочное использование — большой бубен надо, однако.
                  0
                  Уже не только.
                  Windows и macOS — это ещё не смотрел.
                  Android — этим пользуюсь, работает отлично. Но выборочного использования к сожалению нет. Работает без бубнов на стоковом нексусовом ядре.
                  Под iPhone вроде нет.
                  0
                  Wireguard офигенный.
                  Поставил себе на телефон кастомное ядро с его поддержкой и туннель не опускаю. Учитывая что соединение он не поддерживает и работает как модуль ядра, то влияние на батарею практически нулевое.

                  Но то что он доступен только для линукса конечно сильно ограничивает его применимость.
                  +1
                  А, и еще — в Android Oreo ситуация с вечно висящими уведомлениями стала лучше — уведомления сервисного типа, как те которые генерирует Shadowsocks, теперь не так лезут на глаза.
                    0
                    Через Xposed и модуль NotifyClean можно убирать любые «нескрываемые» уведомления. Но нужен рут.
                    0
                    Интересная штука, надо попробовать, спасибо)
                      +3

                      Способ 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

                        0
                        curl https://<что угодно> | sudo bash
                        Сомнительная практика.
                          +2

                          Кто разбирается — могут сначала прочитать скрипт, он простой. Кто не разбирается — всё равно, чтобы настроить самому, придётся копипастить из интернета какие-то непонятные команды — невелика разница.


                          Понятно, что не надо так настраивать продакшн на котором деньги лежат, но купленный чисто для vpn виртуалку или контейнер — вполне приемлимо.

                          0
                          Эх, только для Ubuntu. Для Centos нету… Нет ли в запасниках подобного под Centos 7?
                            0

                            Лениво — под Ubuntu готовые пакетики уже есть, под CentOS руками собирать надо. Правда можно через докер его там запускать.


                            Хотя для обычного socks(danted) мне PullRequest с поддержкой CentOS прислали, может и для shadowsocks кто-нибудь осилит.

                              0
                              Почему же руками? Есть и пакеты в репозиториях. Я всё из них и ставил.
                                0

                                Ну так это же прекрасно. Осталось дописать это в скрипт и прислать мне PullRequest :)

                                  0
                                  Да если бы я в этом нормально разбирался, то не сетовал бы на то, что нет готового скриптика :) К сожалению, я потратил довольно много времени на настройку у себя на сервере и получилось у меня скорее методом тыка. Т.е. я не то что скрипт не напишу, я даже для себя инструкцию не готов составить. Вся надежда на добрых людей среди админов/программистов…
                                    0

                                    Octavian Dodita прислал патч, теперь скрипт работает также на CentOS и RHEL7(вдруг кто-то захочет купить за $349 ОС для VPS-сервера за $5/месяц :).

                                      0
                                      Отлично, спасибо вам обоим!
                          0

                          Способ 4: скачать Outline от Google, который сам вам сервер арендует и сам все настроит, не надо совершенно в консоль лезть + клиенты под все платформы и управление черёд GUI.

                            0

                            Да, хорошая штука, я смотрел. Но там автоматика только для DigitalOcean, а у него много подсетей РоскомПозор забанил(может уже разбанил, не слежу). Для остальных хостингов он говорит "заведите аккаунт сами, сделайте wget -qO- ... | bash и так далее :)

                            +2
                            есть подводные камни, не зная которых можно получить такую ситуацию, что VPN стоит, а трафик идёт в обход.


                            А чтобы не было таких камней, рекомендуется посредством того же iptables дропать весь трафик, идущий не через tun интерфейс (за вычетом трафика самого vpn'a).

                            Что касается сабжа статьи, то штука однозначно полезная. Больше инструментов хороших и разных!
                              0

                              Альтернативный способ — убрать основной шлюз, а до vpn-сервера прописать прямой маршрут.

                              +2
                              Поправьте конфиг, пропущена запятая после «method»:«aes-256-cfb»
                              иначе вылезает ошибка
                              image
                              0
                              поднимал для телеги dante (5й носковый сервер) на копеечном vps — работает без проблем.
                              тестирую на том же копеечном vps нагрузку от shadowsocks — от одного юзера нагрузки нет.

                              как понимаю, для данной тулзы нужен ещё и отдельный софт на каждого клиента?
                                0

                                Да, нужен.

                                  0
                                  Да, потому что штатный протокол SOCKS5 шифрования не предусматривает, только аутентификацию.
                                    0

                                    У меня dante не завёлся, съел 3ГБ памяти на 1000 клиентов. Пришлось написать простой асинхронный сокс-сервер из одного файла на питоне: https://github.com/alexbers/tgsocksproxy. Он по умолчанию сконфигурирован для телеги, т.е. не пропускает трафик на другие сервера и поднимается в одну команду python3 tgsocksproxy.py. У меня работает без какого либо вмешательства уже три недели. Правда, сейчас телеграм и без проксей нормально работает

                                      +1

                                      Ещё нашёл очень крутой проект https://github.com/StreisandEffect/streisand, который автоматически устанавливает на сервер кучу vpn'ов, включая shadowsocks. Судя по количеству коммитов и форков, проект очень популярен

                                        0
                                        О нем в каждой второй подобной теме вспоминают.
                                          0
                                          Только учтите, что он во-первых, резок на поворотах: недавно выкинули strongswan и у сообщества не спросили; во-вторых, глючит на OpenVZных виртуалках, и я даже не знаю, почему. У него нет интерфейса переконфигурации. То есть, если после установки решишь что-то поменять, то либо изучай, как всё устроено, либо форматируй сервак.
                                      0
                                      А под Windows Mobile клиента нет, хотя OpenVPN тоже:(
                                        0
                                        Я бы ещё понял windows phone, но windows mobile… Даже свой старенький HTC HD Mini давно перепрошил на андроид, потому что в стоковом WM6.5 всё совсем плохо, если не просто звонить/слать sms.
                                        0
                                        А сможет кто-нибудь дополнить как лучше настроить shadowsocks так, чтобы трафик шел частично — только для заблокированных подсетей хотя бы? В идеале конечно как настроить клиент прямо на роутере с openwrt
                                          0
                                          Ну вам частично распределять нужно трафик из браузера же? Ставьте туда расширение, которое я рекомендую в статье. С ним можно делать по-умолчанию выкл, а для нужных сайтов вкл. Там даже какой-то импорт списков имеется. Не знаю, не трогал.
                                            +1
                                            Можно использовать PAC. Например. Поддерживает как домены, так и айпи\подсети.
                                              0
                                              Спасибо, как то проглядел что shadowsocks поддерживает pac списки
                                            0
                                            Насколько безопасно использовать в ss шифрование aes-128-cfb?
                                              +1
                                              Вполне безопасно. AES 192 и 256 придумали для армейских бюрократов: они требовали шифр трёх разных уровней стойкости — получите. А что даже 128 достаточно для любых их целей — бюрократов не волнует.

                                              Другое дело, что экспериментруя на своей VPS, я не заметил сколько-либо значимой разницы в потребляемых ресурсах для 128 и 256, потому что аппаратное ускорение.
                                              0
                                              Пробовал поднимать у себя. Всё было хорошо на домашнем пк и через wifi, но через мобильную сеть было просто чудовищно медленно, страницы в браузере открывались с задержкой в десяток секунд. KCPTUN делал чуть получше, но не принципиально. Батарейка улетала на глазах. При этом стоящий рядом, на том же сервере, l2tp/ipsec работает нормально.
                                                0
                                                1) не Obfs-proxy, а simple-obfs, оно может не только в невалидный ssl, но еще и в http
                                                2) github.com/fconn/ss2ch/wiki
                                                  0
                                                  На волне, решил воспользоваться Outline от гугла, уже выше писали про него. Донельзя удобная штука, действительно вместе с оформление сервера, потратил 10 минут.

                                                  Но вот с производительностью какая-то беда. Ощутимо быстрее садится батарейка под osx в рабочем режиме, а если качать торрент, или в принципе активно нагрузить канал до 30-40мбит — пару ядер может быть полностью нагружено, на сервере нагрузка тоже рисуется приличная. Любопытно, то ли что-то не так с outline реализацией от гугла, его клиентом под osx, или все-таки в принципе с самим shadowsocks?
                                                    0
                                                    Когда я смотрю с него 8k видео с Ютуба — потребление процессора на сервере достигает 8%. Это виртуалка с 1 ядром Intel® Xeon® CPU E5-2630 v3 @ 2.40GHz.
                                                    Попробуйте поменять алгоритм шифрования. Пощёлкайте настройку fast-open.
                                                    Ещё есть простой шифр rc4-md5
                                                    +1
                                                    1. Основное достоинство shadowsocks, это то что у него нет синатуры то есть его трудно вычленить и заблокировать. OpenVPN, Tor и SSH довольно не плохо блокируются Великим Китайским. Для OpenVPN есть патчи, но я отвлекаюсь.
                                                    2. На самом дешевом дроплете DO за $5 в моих тестах Shadowsocks показывал 50Mbps против 20Mbps на OpenVPN
                                                    3. Китайские товарищи написали удобный комбаин https://github.com/ginuerzh/gost он позволяет поднять http proxy, выстроить цепочку proxy и еще много много чего. Я заменил им полумертвый polipo
                                                    4. Для IOS есть клиент Potatso Lite он работает и бесплатен
                                                      0

                                                      А существует ли в природе клиент shadowsocks которые может слушать одновременно несколько лоакльных портов и пробрасывать их соответственно на разные сервера? Win64, если садится в трей — вообще было бы идеально.

                                                        +2
                                                        Нет. Но я только что попробовал сделать копию клиента под Винду и запустить одновременно два — всё работает. Так что можете добиться желаемого, запуская несколько клиентов одновременно.
                                                          +1

                                                          Клиент очень легкий, можно запускать несколько.

                                                          0
                                                          У меня на винде (shadowsocks-win) иногда бывают ситуации, когда он выдает ошибки, которые пропадают после обновления страницы («500 Internal Privoxy Error»). Таймаут в клиенте стоит 20 сек, на сервере 60. Можно ли что-то сделать с этим?
                                                            0
                                                            Поробуйте вкл-выкл fast-open. Так же попробуйте другие шифры, потому что вместе с ними меняется вся логика работы протокола. aes-128-gcm например, отличен от aes-128-cfb тем, что делает чексуммы на udp и имеет авторизацию сервера перед клиентом.
                                                            0
                                                            Сначала браузером, желательно примитивным «изкоробочным», а не основным, пройти на duckduckgo.com и вбить в поиск my ip.

                                                            Не благодарите
                                                              0
                                                              Спасибо!
                                                              А то ifconfig.me сбоит периодически.
                                                                0
                                                                  0
                                                                    0
                                                                    Отдельное спасибо! Вообще чистый текст, без html.
                                                                      0
                                                                      ❯ grep myip ~/.zshrc
                                                                      alias myip="curl ifconfig.co"
                                                                        0
                                                                        ZSH может быть не установлен на VPS. Я на одноразовые вообще ничего не ставлю ничего, кроме требуемых сервисов.
                                                                          0
                                                                          alias работает везде: хоть в zsh, хоть bash, хоть в csh. разница только в названии файла конфига.
                                                                0
                                                                В целом работает, скорость пока не тестировал.
                                                                Небольшое «но» — поскольку пароль к серверу в plain text, да еще и в JSON конфиге, нужно быть осторожнее со спецсимволами. Не заметил, что в сгенерированном пароле попался символ \ — как результат, гадал, почему не заработало.

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

                                                                Самое читаемое