Это руководство описывает ещё один способ получить личный прокси-сервер shadowsocks бесплатно. В этот раз мы воспользуемся сервисом Replit.

В этот раз всё будет намного проще: регистрация, импорт, запуск. Три шага.

О shadowsocks

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

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

Развёртывание сервера

Шаг 1. Регистрация

Зарегистрируйтесь на Replit. Кнопка Sign up справа вверху. Вам потребуется только электронная почта. Подтвердите свою почту прежде, чем продолжать.

Шаг 2. Импорт

На своей главной странице Replit нажмите кнопку "+ Create". Далее нажмите "Import from Github". В поле Github URL вставьте из буфера обмена (иначе не работает!) следующую ссылку:

https://github.com/Snawoot/ss-replit

После этого подтвердите импорт.

Шаг 3. Запуск

После окончания импорта нажмите на кнопку Run (зелёная вверху). После запуска в workspace появятся три файла:

  1. passwd.txt - файл с паролем от shadowsocks.

  2. url.txt - файл со ссылкой в формате shadowsocks SIP002, которую можно легко импортировать в клиент со всеми нужными настройками.

  3. qr.png - картинка с QR-кодом, содержащим упомянутую выше ссылку. Удобно импортировать в телефон.

Также вся информация для подключения печатается в консоль (нижняя правая четверть экрана). На ошибку "Bad Request" в Webview в правой верхней четверти экрана не обращаем внимания.


Настройка клиентов

Настройка мобильного клиента на примере Android

  1. Установите на Ваше устройство клиент shadowsocks и плагин v2ray к нему.

  2. Запустите приложение и добавьте новый профиль кнопкой с плюсом в правом верхнем углу. Выберите сканирование QR-кода и отсканируйте его. QR-код лежит в файле qr.png в воркспейсе replit.

  3. Выберите созданный профиль касанием.

  4. Запустите соединение нажатием на круглую кнопку внизу.

  5. Готово!

Настройка настольного клиента на примере Windows

  1. Скачайте отсюда и распакуйте shadowsocks.

  2. Скачайте отсюда плагин v2ray, подходящий под вашу платформу. Достаньте из архива файл и переименуйте его в v2ray.exe (или просто v2ray, если ваш проводник не отображает расширения файлов). Поместите его в одну директорию с shadowsocks.

  3. Запустите shadowsocks.

  4. Скопируйте конфигурационный URL вашего личного сервера shadowsocks из файла url.txt, упомянутого в третьем шаге руководства по установке сервера.

  5. Нажмите правой кнопкой мыши на значке shadowsocks в системном трее и выберите Servers - Import URL from Сlipboard.

  6. Включите прокси, выбрав в том же контекстном меню System Proxy - Global.

  7. Готово!

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

Настройка настольного клиента на примере Linux

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

  1. Скачайте отсюда и распакуйте go-shadowsocks2.

  2. Скачайте отсюда и распакуйте плагин v2ray-plugin.

  3. Поместите оба исполняемых файла в одну директорию. Перейдите в эту директорию в терминале.

  4. Переименуйте исполняемый файл плагина в v2ray

  5. Сделайте оба файла исполняемыми. Команда: chmod +x shadowsocks2linux v2ray

  6. Запустите прокси командой ./shadowsocks2-linux -c 'ss://AEAD_CHACHA20_POLY1305:PASSWORD@DOMAIN:443' -verbose -socks :1080 -u -plugin v2ray -plugin-opts "tls;host=DOMAIN", где вместо DOMAIN и PASSWORD ваш домен и пароль. Домен виден в ссылке в WebView после запуска (https:// и слэши указывать не надо, только домен!). Пароль находится в файле passwd.txt. Пример итоговой команды: /shadowsocks2-linux -c 'ss://AEAD_CHACHA20_POLY1305:Yeyitoa7@ss-replit.SomeUser.repl.co:443' -verbose -socks :1080 -u -plugin v2ray -plugin-opts "tls;host=ss-replit.SomeUser.repl.co"

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

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


  1. altarit
    08.10.2022 11:09
    +5

    После закрытия бесплатного аккаунта Heroku тоже искал где бы развернуть аналогичный скрипт с прокси для личных целей. И хотелось бы, чтобы это не нарушало правила сервиса, но увы, в Repl.it запрещены прокси для обхода блокировок.

    В https://replit.com/site/terms среди запрещенных действий есть такой пункт:

    Use the Service to create a proxy with the purpose of circumventing any firewall or other access control measure;

    Так что используйте на свой страх и риск.


  1. emlen
    08.10.2022 11:09

    а на примере linux fedora можно для чайников плиз!?


    1. YourChief Автор
      08.10.2022 13:55
      +1

      Добавил универсальную инструкцию для консольного клиента на Linux и MacOS.


  1. Lurn
    08.10.2022 11:09

    А настройка под Linux? Есть ли вообще под него полнофункциональный клиент?


    1. YourChief Автор
      08.10.2022 13:47

      Добавил универсальную инструкцию для консольного клиента на Linux и MacOS. Смотря что считать полнофункциональным.


  1. DangerousAndMoving
    08.10.2022 11:26
    +2

    Здравствуйте.

    1. Вероятно этот сервис в скором времени постигнет судьба хероку. Лучше сразу поднимать на VPS.

    2. Зачем используете плагин? Он не поддерживает udp, поэтому у всяких мессенджеров отваливаются звонки. Уж лучше голый shadowsocks. В плане обхода блокировок, вероятно, особых плюсов не будет. В Китае последние несколько дней начали блокировать v2ray с tls режимами. Думаю и пост СССР подтянется скоро.

    3. Не по теме. Как подружить ваш dumbproxy с телеграм? Выбираю http proxy. Ввожу имя, пароль. Не может соединится. Через браузер всё нормально, через qbittorent тоже.


    1. YourChief Автор
      08.10.2022 11:31
      +1

      Здравствуйте!

      1. Да, но не все могут арендовать сервер по каким-то причинам. Да и платное с бесплатным несравнимо - на своей VPS что угодно накрутить можно.

      2. Затем, что пропускается внутрь REPL только трафик по вебсокетам. Поэтому используется плагин, который работает с трафиком по вебсокетам. Про блокировку этого в Китае источником не поделитесь?

      3. Если вы его подняли в режиме HTTPS (как в статье), то телеграм с ним работать не сможет. Но можно использовать адаптер steady-tun на клиентской стороне, чтобы телеграм подключался к нему по HTTP, а он дальше уже взаимодействовал по HTTPS.


      1. DangerousAndMoving
        08.10.2022 11:48

        Информация по блокировкам: https://github.com/net4people/bbs/issues/129

        На сервере dumbproxy с сертификатами, созданы при помощи quick cert. На клиенте steady-tun. В телеграм, http proxy 127.0.0.1:57800. Имя и пароль заданы. Постоянно висит надпись "соединение...". Из всех программ, которые поддерживают http прокси, проблемы только в телеграм.


        1. YourChief Автор
          08.10.2022 13:17

          А с какими параметрами steady-tun запускаете?


          1. DangerousAndMoving
            08.10.2022 13:25

            steady-tun.windows-amd64.exe -dsthost мой.сайт -dstport 6666 -cert "D:\quickcerts-1.0.1\me.pem" -key "D:\quickcerts-1.0.1\me.key" -cafile "D:\quickcerts-1.0.1\ca.pem"


            1. YourChief Автор
              08.10.2022 13:58

              А остальные проги, которые через HTTP-прокси работают, работают именно через steady-tun? Не совсем понимаю, зачем имя и пароль, если вы авторизуетесь по клиентским сертификатам? В каком режиме auth на dumbproxy настроен?


              1. DangerousAndMoving
                08.10.2022 14:20

                Браузер через SwitchyOmega и Qbittorrent, точно через steady-tun.

                Запуск сервиса на сервере:

                ExecStart=/etc/dp/dumb -bind-address :6666 -auth 'basicfile://?path=/etc/dp/dumbproxy.htpasswd&hidden_domain=xx.org' -cert /etc/dp/me.pem -key /etc/dp/me.key -cafile /etc/dp/ca.pem -verbosity 40 -ciphers TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384


                1. YourChief Автор
                  08.10.2022 14:29

                  Подозреваю, что телега ломается из-за hidden_domain - видимо она всё-таки хочет 407 ответ, прежде чем пароль пошлёт.


      1. koreec
        08.10.2022 17:29
        +1

        Про блокировку V2Ray в Китае я вам могу рассказать.

        Собственно, блокируется не трафик, а вычисляются сервера и блокируются по IP. В результате у моего VPN провайдера отдельные сервера отваливается каждые несколько часов. Провайдер поднимает новые, и так по кругу. У них vless/tls.

        При этом мой личный V2Ray (vmess без tls) никто не трогает, потому что он не привлекает внимания. Работает уже третий год на том же адресе.


  1. keml
    08.10.2022 17:32

    У меня такая картина:

    make run
    bash make_url.sh
    make: *** [Makefile:18: url.txt] Error 1
    exit status 2


    1. keml
      08.10.2022 17:33

      И еще: The repl didn't respond after waking up :(


    1. YourChief Автор
      08.10.2022 17:36

      Попробуйте удалить этот REPL и по-новой. Возможно, сама платформа косячит иногда.


    1. YourChief Автор
      08.10.2022 17:37
      +1

      Или не удаляйте, а ссылку на старый репл отправьте мне в личку - я посмотрю.


      1. keml
        10.10.2022 22:12

        Все работает. Виноват, неверно прописал название плагина, точнее не изменил с дефолтного на свой.


  1. YTAdmin
    09.10.2022 21:51

    Очень интересно было, хотелось бы других вариантов. :)