0

Shadowsocks

(часть 1)

Несколько слов о shadowsocks

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

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

На хабре shadowsocks уже освещался ранее в статье от @Barafu_Albino_Cheetah.

В этом руководстве описано развёртывание сервера shadowsocks с плагином v2ray на облачном провайдере Heroku. Платформа Heroku позволяет бесплатно разворачивать небольшие веб-приложения, а плагин v2ray позволяет пропускать трафик shadowsocks внутри websocket-соединения, что в итоге и позволяет запускать всю конструкцию на Heroku.

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

В этом руководстве используется проект готового приложения для Heroku, которое реализует всё необходимое автоматически. Ссылка на мой форк этого проекта.

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

Для этого нужно зайти на сайт Heroku, нажать Sign up и заполнить требуемые сведения. Для регистрации нужна только электронная почта.

Шаг 2. Начало развёртывания

Нажмите на эту ссылку.

Шаг 3. Конфигурирование

В появившейся форме заполните все поля как показано на скриншоте:

В качестве значений “App Name” и AppName впишите какое-то уникальное имя приложения, одинаковое в обоих полях. Это имя станет частью доменного имени <appname>.herokuapp.com, по которому станет доступен сервис.

Вместо PASSWORD задайте свой пароль. Можно задать подлиннее и понадёжнее – Вам, скорее всего, не придётся вводить его вручную.

Кроме того, желательно поменять путь QR на какое-нибудь трудноугадываемое значение.

Шаг 4. Запуск

Заполнив форму, нажмите Deploy app.

После завершения сборки и запуска QR-код с конфигурацией для мобильных устройств будет доступен по адресу

https://APPNAME.herokuapp.com/qr/vpn.png

а строка с конфигурацией в виде URL будет доступна по адресу

https://APPNAME.herokuapp.com/qr

где APPNAME – выбранное Вами имя приложения. Если Вы меняли путь к QR-коду, то ссылка изменится в соответственно. Во второй ссылке косая черта на конце обязательна.

Всё, можно пользоваться!

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

  1. Установите на Ваше устройство клиент shadowsocks и плагин v2ray к нему.
  2. Запустите приложение и добавьте новый профиль кнопкой с плюсом в правом верхнем углу. Выберите сканирование QR-кода и отсканируйте его.
  3. Выберите созданный профиль касанием.
  4. Запустите соединение нажатием на круглую кнопку внизу.
  5. Готово!

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

  1. Скачайте отсюда и распакуйте shadowsocks.
  2. Скачайте отсюда плагин v2ray, подходящий под вашу платформу. Достаньте из архива файл и переименуйте его в v2ray.exe (или просто v2ray, если ваш проводник не отображает расширения файлов). Поместите его в одну директорию с shadowsocks.
  3. Запустите shadowsocks.
  4. Скопируйте конфигурационный URL вашего личного сервера shadowsocks со страницы https://APPNAME.herokuapp.com/qr/ , где APPNAME – имя приложения, которое вы выбрали.
  5. Нажмите правой кнопкой мыши на значке shadowsocks в системном трее и выберите Servers – Import URL from Сlipboard.
  6. Включите прокси, выбрав в том же контекстном меню System Proxy – Global.
  7. Готово!Замечание: если в браузере установлены расширения, которые управляют выбором прокси-сервера (VPN-расширения, Switchy Omega), то включение ShadowSocks через System Proxy – Global не будет иметь никакого эффекта на браузер. Нужно их либо выключить, либо перенастроить на системный прокси, если есть такая возможность.

Ограничения Heroku

Для приложений, запущенных на Heroku, в настоящий момент действуют следующие ограничения:

  • Временная квота работы приложений при бесплатном уровне использования составляет 550 часов в месяц.
  • Контейнер приложения переходит в спящий режим после 30 минут отсутствия запросов к нему. С одной стороны это доставляет неудобства в виде задержек ответа до полминуты после перерыва в активности. С другой стороны, это экономит отведённую временную квоту.
  • Квота на передачу данных по сети равна 2 ТБ в месяц. То есть в случае с прокси это даёт чуть меньше 1 ТБ трафика в месяц.

(часть 2)

Повторение – мать учения, а значит я снова приведу выжимку из статьи о shadowsocks в вики.

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

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

Цель этого руководства

Это руководство предлагает ещё одну альтернативу, которая отличается от предыдущего руководства деталями:

  • Физически серверы располагаются в GCP вместо AWS, как в предыдущем методе.
  • Доступно больше локаций датацентров. В частности, есть довольно близкие к нам серверы в Германии и Франции, с которыми задержка подключения минимальна.
  • Другие ограничения: нет ограничения по трафику (в пределах так называемого fair use), нет ограничения по часам работы в месяц, но есть ограничение на общую продолжительность триала в один месяц. Однако, на это как раз можно повлиять.

Мы развернём сервер shadowsocks с плагином v2ray на облачном провайдере platform.sh. platform.sh – это PaaS-провайдер с бесплатным триалом на месяц, позволяющий бесплатно запускать веб-приложения. Плагин v2ray пропускает трафик shadowsocks внутри websocket-соединения, чтобы мы могли связываться с нашим прокси через веб-фасад платформы.

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

От Вас потребуется только две вещи: электронная почта и способность запушить в git-репозиторий файлы.

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

Регистрация доступна по этой ссылке. Регистрация с главной страницы сайта работает в данный момент немного криво. Добраться вручную до указанной ссылки можно так: platform.sh -> Free Trial -> Login with Auth -> Sign up. Напрямую на странице Free Trial регистрация не работает.

Если Вы регистрируетесь в сервисе повторно, чтобы начать триал сначала, Вам потребуется указать другой почтовый ящик. Однако, не обязательно иметь много почтовых адресов для этого. Достаточно воспользоваться предусмотренной стандартом субадресацией. Вы можете дописать после знака плюс к локальной части адреса (то, что до собачки), любые символы. К примеру, если Ваша электронная почта user@example.org, то вы можете также получать письма на адрес user+test1@example.org.

Шаг 2. Создание проекта

Создайте пустой проект. Такая возможность будет предложена сразу, либо можно нажать соответствующую кнопку в панели управления потом.

Шаг 3. Добавление SSH-ключей в настройках аккаунта

Пока устанавливается контейнер под новый проект, добавьте Ваш SSH-ключ в настройках аккаунта, чтобы иметь возможность отправлять файлы в git-репозиторий. Из практических соображений лучше использовать отдельный SSH-ключ для этих целей, иначе возникнет путаница с аккаунтами, ключами и репозиториями проектов.

Сделать это можно на странице Account settings -> SSH Keys -> Add public key.

Шаг 4. Клонирование репозитория

На главной странице проекта (Overview) скопируйте команду, которая клонирует git-репозиторий проекта. Команда клонирования с адресом репозитория доступна в правом верхнем углу, по кнопке GIT.

Шаг 5. Наполнение репозитория

Пришло время положить файлы в репозиторий проекта из моего репозитория и запустить сборку проекта. Сделать это можно следующим образом запуская команды из директории проекта:

git remote add upstream https://github.com/Snawoot/shadowsocks-platform.sh.git
git fetch upstream
git reset --hard upstream/master
git checkout -b main
git push -u origin --force-with-lease main

После этого проект будет собран и уже развёрнут.

Подсказка: явно задать используемый SSH-ключ можно установкой вот такой переменной окружения в своей консоли:

export GIT_SSH_COMMAND='ssh -i /path/to/private/key -o IdentitiesOnly=yes'

Шаг 6. Конфигурация

Осталось настроить сервер. В панели управления проектом platform.sh выберите окружение Master в выпадающем списке в правой верхней части экрана. После этого перейдите в настройки переменных проекта (SETTINGS -> Variables). Добавьте новую переменную env:SS_PASSWORD кнопкой Add справа как показано ниже:

Значением переменной должен быть Ваш пароль, который будет использоваться для подключения к серверу shadowsocks.

Кроме этого, желательно ещё определить значение переменной env:V2_PATH, назначив какой-то трудноугадываемый путь вроде такого: /dcfaeb49-33ec-4574-af45-7b846d182522. Если не указано, то по умолчанию оно равно /v2.

После изменения переменных сервер сразу автоматически пезапустится и будет готов к работе.

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

Про установку клиентских приложений можно прочитать в предыдущей статье. В этом решении нет автоматической генерации URL или QR-кода с настройками. Ручные настройки таковы:

ПараметрЗначение
serverДомен из URL, по которому доступен проект (отображается в Overview проекта)
server_port443
passwordЗначение переменной env:SS_PASSWORD
methodchacha20-ietf-poly1305
pluginv2ray
plugin_optspath=V2_PATH;host=DOMAIN;tls, где DOMAIN – домен из URL проекта, а V2_PATH – значение переменной env:V2_PATH, либо /v2, если она не задана.

(часть 3)

Это руководство описывает ещё один способ получить личный прокси-сервер 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-прокси. Его уже можно использовать в программах.

Добавить комментарий

Облачная платформа

Свежие комментарии

Подписка

Лучшие статьи

WordPress › Ошибка

На сайте возникла критическая ошибка.

Узнайте больше про решение проблем с WordPress.