В наши дни, когда всякие нехорошие элементы так и норовят влезть в ваш трафик и как-то там напакостить, стало модным шифрование трафика. Начинание это благое и полезное, вот только делают его зачастую избыточно. Если шифрование трафика до доверенного сервера, типа своего 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 случайных символов.

Всё!

Комментарии (65)


  1. Marwin
    08.05.2018 16:30

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


    1. mspain
      08.05.2018 17:24

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


      1. Marwin
        08.05.2018 17:48

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


    1. Barafu_Albino_Cheetah Автор
      08.05.2018 17:53

      Сравнив с 3proxy, вы упустили идею. Shadowsocks шифрует весь трафик между абонентом и сервером, а 3proxy, судя по документации, только пароль. А ещё он относительно новый, много админского софта не умеет ещё его распознавать.


      1. chainyk445
        08.05.2018 21:57

        но погодите,shadowsocks вроде не шифрует трафик как vpn, или я ошибаюсь?


        1. Barafu_Albino_Cheetah Автор
          08.05.2018 21:59

          Ошибаетесь. Трафик между клиентом и сервером полностью шифруется AESом. И отнюдь не по паролю для аутентификации, а как надо. Это трафик между приложением и клиентом не шифруется, но они либо на одной машине стоят, либо в доверенной локалке.


          1. chainyk445
            09.05.2018 19:36

            можете еще создать статью про отличия vpn и shadowsocks а то я нигде не нарыл, и еще вопрос от себя, смысл делать openvpn over shadowsocks если shadowsocks вроде бы как со своей задачей справляется?


            1. Barafu_Albino_Cheetah Автор
              09.05.2018 20:47

              Для статьи про отличия нажмите кнопку Home на клавиатуре. OpenVPN через Shadowsocks прокладывают для передачи того, что в Proxy не лезет, и для проброса портов.


  1. vconst
    08.05.2018 16:39

    Заработало, большой пасиб!


  1. Barafu_Albino_Cheetah Автор
    08.05.2018 17:59

    Ремарка: чтобы в Win 10 Заработал Windows Store, надо и в настройках клиента Shadowsocks включить System Proxy, и в настройках Windows сделать, как я сказал. Почему так — не знаю.

    Кстати, пока разбирался с этой проблемой, нашёл диалог на сайте техподдержки Микрософта: человек спрашивает, почему у него через прокси не работает Windows Store, а техподдержка на полном серьёзе ему отвечает, что прокси используют только плохие хакеры, поэтому все встреченные прокси надо удалять. Хорошо хоть не посоветовали вызвать полицию.


  1. dw9694
    08.05.2018 18:17

    Китайские хакеры стоят за многочисленными взломами международных компаний
    habr.com/post/358110


    1. dartraiden
      08.05.2018 23:28
      +1

      А при чём тут китайские хакеры? Shadowsocks пилят обычные программисты для себя, его главная цель — пробивать китайский государственный файерволл. Косвеноо об эффективности говорит тот факт, что несколько лет назад одного из разработчиков навестила полиция и заставила удалить код из репозитория (надо ли говорить, что Git позволяет быстро отмотать любое изменение назад, поэтому никакого эффекта это удаление не возымело).


  1. Googolplex
    08.05.2018 19:44

    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), и очень активно развивается.


    1. Barafu_Albino_Cheetah Автор
      08.05.2018 20:10

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

      Wireguard — хорошая штука, но у него клиент только для линукса. К тому же, это снова VPN с виртуальной сетью. Настроить выборочное использование — большой бубен надо, однако.


      1. Andrusha
        09.05.2018 04:25

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


    1. Milein
      09.05.2018 03:03

      Wireguard офигенный.
      Поставил себе на телефон кастомное ядро с его поддержкой и туннель не опускаю. Учитывая что соединение он не поддерживает и работает как модуль ядра, то влияние на батарею практически нулевое.

      Но то что он доступен только для линукса конечно сильно ограничивает его применимость.


  1. Googolplex
    08.05.2018 19:45
    +1

    А, и еще — в Android Oreo ситуация с вечно висящими уведомлениями стала лучше — уведомления сервисного типа, как те которые генерирует Shadowsocks, теперь не так лезут на глаза.


    1. konchok
      09.05.2018 13:28

      Через Xposed и модуль NotifyClean можно убирать любые «нескрываемые» уведомления. Но нужен рут.


  1. totorialman
    08.05.2018 20:09

    Интересная штука, надо попробовать, спасибо)


  1. selivanov_pavel
    08.05.2018 20:28
    +1

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


    1. legolegs
      10.05.2018 12:04

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


      1. selivanov_pavel
        10.05.2018 12:12
        +2

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


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


    1. set
      10.05.2018 16:00

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


      1. selivanov_pavel
        10.05.2018 18:32

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


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


        1. set
          10.05.2018 18:37

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


          1. selivanov_pavel
            10.05.2018 18:39

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


            1. set
              10.05.2018 19:57

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


  1. shifttstas
    08.05.2018 21:06

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


    1. selivanov_pavel
      08.05.2018 22:16

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


  1. mtex
    08.05.2018 22:53
    +1

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


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

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


    1. mayorovp
      09.05.2018 15:36

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


  1. Lordbl4
    08.05.2018 23:17
    +1

    Поправьте конфиг, пропущена запятая после «method»:«aes-256-cfb»
    иначе вылезает ошибка
    image


    1. Barafu_Albino_Cheetah Автор
      09.05.2018 03:10

      Уупс. Сделал.


  1. Lordbl4
    09.05.2018 00:07

    поднимал для телеги dante (5й носковый сервер) на копеечном vps — работает без проблем.
    тестирую на том же копеечном vps нагрузку от shadowsocks — от одного юзера нагрузки нет.

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


    1. selivanov_pavel
      09.05.2018 00:19

      Да, нужен.


    1. Barafu_Albino_Cheetah Автор
      09.05.2018 03:21

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


    1. alexbers
      09.05.2018 09:46

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


      1. alexbers
        09.05.2018 10:52
        +1

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


        1. vconst
          09.05.2018 11:22

          О нем в каждой второй подобной теме вспоминают.


        1. Barafu_Albino_Cheetah Автор
          09.05.2018 14:21

          Только учтите, что он во-первых, резок на поворотах: недавно выкинули strongswan и у сообщества не спросили; во-вторых, глючит на OpenVZных виртуалках, и я даже не знаю, почему. У него нет интерфейса переконфигурации. То есть, если после установки решишь что-то поменять, то либо изучай, как всё устроено, либо форматируй сервак.


  1. Dj_Art
    09.05.2018 03:05

    А под Windows Mobile клиента нет, хотя OpenVPN тоже:(


    1. untilx
      10.05.2018 12:20

      Я бы ещё понял windows phone, но windows mobile… Даже свой старенький HTC HD Mini давно перепрошил на андроид, потому что в стоковом WM6.5 всё совсем плохо, если не просто звонить/слать sms.


  1. no1D
    09.05.2018 03:05

    А сможет кто-нибудь дополнить как лучше настроить shadowsocks так, чтобы трафик шел частично — только для заблокированных подсетей хотя бы? В идеале конечно как настроить клиент прямо на роутере с openwrt


    1. Barafu_Albino_Cheetah Автор
      09.05.2018 03:08

      Ну вам частично распределять нужно трафик из браузера же? Ставьте туда расширение, которое я рекомендую в статье. С ним можно делать по-умолчанию выкл, а для нужных сайтов вкл. Там даже какой-то импорт списков имеется. Не знаю, не трогал.


    1. Pongo
      09.05.2018 03:50
      +1

      Можно использовать PAC. Например. Поддерживает как домены, так и айпи\подсети.


      1. no1D
        09.05.2018 23:30

        Спасибо, как то проглядел что shadowsocks поддерживает pac списки


  1. Pongo
    09.05.2018 03:51

    Насколько безопасно использовать в ss шифрование aes-128-cfb?


    1. Barafu_Albino_Cheetah Автор
      09.05.2018 04:46
      +1

      Вполне безопасно. AES 192 и 256 придумали для армейских бюрократов: они требовали шифр трёх разных уровней стойкости — получите. А что даже 128 достаточно для любых их целей — бюрократов не волнует.

      Другое дело, что экспериментруя на своей VPS, я не заметил сколько-либо значимой разницы в потребляемых ресурсах для 128 и 256, потому что аппаратное ускорение.


  1. koshi-dono
    09.05.2018 06:28

    Пробовал поднимать у себя. Всё было хорошо на домашнем пк и через wifi, но через мобильную сеть было просто чудовищно медленно, страницы в браузере открывались с задержкой в десяток секунд. KCPTUN делал чуть получше, но не принципиально. Батарейка улетала на глазах. При этом стоящий рядом, на том же сервере, l2tp/ipsec работает нормально.


  1. Yowkis
    09.05.2018 14:21

    1) не Obfs-proxy, а simple-obfs, оно может не только в невалидный ssl, но еще и в http
    2) github.com/fconn/ss2ch/wiki


  1. Tonatos
    09.05.2018 15:13

    На волне, решил воспользоваться Outline от гугла, уже выше писали про него. Донельзя удобная штука, действительно вместе с оформление сервера, потратил 10 минут.

    Но вот с производительностью какая-то беда. Ощутимо быстрее садится батарейка под osx в рабочем режиме, а если качать торрент, или в принципе активно нагрузить канал до 30-40мбит — пару ядер может быть полностью нагружено, на сервере нагрузка тоже рисуется приличная. Любопытно, то ли что-то не так с outline реализацией от гугла, его клиентом под osx, или все-таки в принципе с самим shadowsocks?


    1. Barafu_Albino_Cheetah Автор
      09.05.2018 17:40

      Когда я смотрю с него 8k видео с Ютуба — потребление процессора на сервере достигает 8%. Это виртуалка с 1 ядром Intel® Xeon® CPU E5-2630 v3 @ 2.40GHz.
      Попробуйте поменять алгоритм шифрования. Пощёлкайте настройку fast-open.
      Ещё есть простой шифр rc4-md5


  1. hostmaster
    09.05.2018 20:43
    +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 он работает и бесплатен


  1. habrapinc
    09.05.2018 20:48

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


    1. Barafu_Albino_Cheetah Автор
      09.05.2018 20:51
      +1

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


    1. hostmaster
      09.05.2018 21:02

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


  1. Pongo
    09.05.2018 23:43

    У меня на винде (shadowsocks-win) иногда бывают ситуации, когда он выдает ошибки, которые пропадают после обновления страницы («500 Internal Privoxy Error»). Таймаут в клиенте стоит 20 сек, на сервере 60. Можно ли что-то сделать с этим?


  1. untilx
    10.05.2018 09:27

    Сначала браузером, желательно примитивным «изкоробочным», а не основным, пройти на duckduckgo.com и вбить в поиск my ip.

    Не благодарите


    1. slavius
      10.05.2018 13:15

      Спасибо!
      А то ifconfig.me сбоит периодически.


    1. vconst
      10.05.2018 13:30

      1. e1t1
        10.05.2018 13:33

        1. slavius
          10.05.2018 15:42

          Отдельное спасибо! Вообще чистый текст, без html.


          1. hostmaster
            10.05.2018 17:01

            ? grep myip ~/.zshrc
            alias myip="curl ifconfig.co"


            1. vconst
              10.05.2018 17:32

              ZSH может быть не установлен на VPS. Я на одноразовые вообще ничего не ставлю ничего, кроме требуемых сервисов.


              1. untilx
                11.05.2018 08:37

                alias работает везде: хоть в zsh, хоть bash, хоть в csh. разница только в названии файла конфига.