Цель: открыть заблокированные провайдером сайты;

Примерное время: 30 минут;

Стоимость: бесплатно;

Что надо делать: нажимать кнопки, копировать и вставлять текст, читать простые слова на английском.

Project V - набор инструментов, которые помогут обойти замедление или полную блокировку сайтов. Он разработан азиатскими гениями для обхода великого китайского фаервола.

  • Обход замедлений и блокировок

  • Скрытие IP адреса

  • В сравнении с VPN:

    • Незаметен для провайдера

    • Меньше просадки по скорости

    • Меньше расход аккумулятора на мобильных устройствах\

Конечно, всё это не приходит так просто. При установке вручную нужно выполнить несколько действий:

  • Аренда сервера

  • Регистрация домена

  • Получение SSL сертификата

  • Настройка Nginx

  • Настройка Shadowsocks сервера

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

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

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

Подготовка

Для деплоя на сервер вам понадобится установить python3.7 на свой компьютер. У маководов и линуксоидов питон установлен из коробки, и всё должно завестись сразу. Если нет, вот тут есть инструкция по установке.

Регистрируемся

Для примера воспользуемся сервером Microsoft Azure. Панель управления интуитивно понятна, регистрация проста, а при создании сервера мы сразу получаем доменное имя для него.

Сервис бесплатно предоставляет виртуальную машину под управлением Linux на год. 750 часов в месяц хватит для бесперебойной работы сервера. Учтите, что объем трафика на бесплатном лимите ограничен 15 гигабайтами в месяц. Бесплатные сервера устанавливают достаточно жесткие лимиты, и вы можете по аналогии с этим руководством завести еще пару серверов на других ресурсах: амазон, гугл и оракл.

Переходим по ссылке Жмем Continue to Azure portal, проходим регистрацию, заполняем поля. В процессе потребуется привязать карту, с неё спишут и сразу вернут 70 рублей. Используйте виртуальную карту qiwi или тинькофф, чтобы не нарваться на неожиданное списание.

Создаем сервер

После регистрации переходим по ссылке

И среди сервисов выбираем virtual machines

В углу списка нажимаем Create, нас переводят на страницу выбора параметров машины. Далее настроим её, чтобы пользоваться бесплатно. В окне настройки есть несколько вкладок, нас в первую очередь интересуют Basics, Disk и Networking

Basics

Примечание: здесь и далее пометка (free services eligible) означает доступность для бесплатного использования

  • Имя виртуальной машины - ставим любое

  • В качестве региона выберите один из доступных для бесплатного использования. Учтите, что в регионе может не быть бесплатных машин, и придется попробовать с другим.

  • Image - Ubuntu Server 20.04 LTS

  • Size - Standart_B1s

При выборе размера B1s может не быть в списке. Нажмите See all sizes , отключите группировку в правом верхнем углу и поставьте сортировку по стоимости. Он будет в самом начале с пометкой free services eligible

  • Способ аутентификации - SSH public key

  • Username - выставляем любой, запомните - пригодится вдальнейшем

  • SSH public key source - тут возможны два варианта:

    • Use existing public key если у вас уже есть сгенерированный ключ

    • Generate new key pair если вы не знаете, что это такое. Можете задать любое имя для ключа

Disk

  • OS disk size - выставляем 64 гигабайта

Networking

  • Select inbound ports - включаем 80, 443 и 22 порты

Завершение настройки

После этого можете нажать review+create. Вас перекинет на страницу со статусом создания виртуальной машины. Если ранее вы выбрали генерацию ssh ключа, сайт предложит сохранить его. Сохраните на компьютер, он понадобится позже.

После появления надписи Your deployment is complete, можно перейти к странице со статусом созданной виртуальной машины. Жмём Go to resource

Здесь нас интересует строка DNS name в правой колонке, раздел networking. Жмём configure

  • Выставляем DNS name label. Пусть это будет не слишком подозрительное название - “мир рыбалки” или “кот сегодняшнего дня” вполне подойдет

  • IP address assignment - static

Настройка завершена. Вернитесь на предыдущий экран со статусом сервера и скопируйте DNS name, оно понадобится дальше.

Настройка проксирования

Скачиваем проект и задаем настройки для сервера

Качаем проект из репозитория на гитхабе.

Если у вас не установлен локально git, можете скачать архив и разархивировать в удобное место

Открываем папку с проектом shadowsocks-vray-playbooks. Все дальнейшие команды будут выполняться в терминале внутри неё.

  • Для windows: в папке shadowsocks-vray-playbooks зажмите шифт и нажмите правую кнопку мыши. Выберите пункт “Открыть окно PowerShell здесь”

  • Для linux: ПКМ → open in terminal

Введите в терминал следующие команды:

python3 -m pip install virtualenv
python3 -m virtualenv venv
source venv/bin/acvtivate
pip install -r requirements.txt

Если в будущем вы захотите поднять сервер на другой машине, нужно будет активировать виртуальное окружение через source venv/bin/activate

В папке deploy вы найдете файл hosts.example.ini скопируйте его и переименуйте в hosts.ini, замените в нем значения на следующие

server ansible_host=DNS name, которое вы задавали на последнем этапе настройки сервера

В папке с прокетом вы найдете файл variables.example.yml скопируйте его и переименуйте в variables.yml, замените в нем значения на следующие:

user: Имя пользователя на сервере - то что вы писали в Username при настройке сервера
host: Домен,оформленный для сервера (DNS name)
email: Ваша электронная почта
proxy_password: Пароль для доступа к прокси, поставьте что-то сложное
method: Оставить как в примере
local_port: Порт, на котором будет работать ваш локальный сервер. Можно оставить как в примере
fast_open: Оставить как в примере
endpoint: эндпоинт для прокси. Можно поставить что-то наименее подозрительное для провайдера или оставить как в примере
enable_firewall: yes для включения фаервола после стартовой настройки. Если на сервере уже есть ваши проекты, и вы не знаете для чего это, включение может вызвать ошибки в их работе

Если при создании сервера вы выбрали Generate new key pair:

  1. скопируйте скачанный ключ в текущую папку, а в variables.yml допишите строку

ansible_ssh_private_key_file: имя загруженного ключа (напр. key.pem)
  1. Введите в терминале

ansible-playbook -i inventories/hosts.ini --extra-vars "@variables.yml"  deploy/client.yml --tags prepare_ssh

Выгружаем прокси сервер

Введите в терминале последовательно следующие команды:

Настройка окружения виртуальной машины

ansible-playbook -i inventories/hosts.ini --extra-vars "@variables.yml"  deploy/setup.yml

Если это новый сервер, и на нем нет ваших проектов, введите следующую команду чтобы очистить iptables

ansible-playbook -i inventories/hosts.ini --extra-vars "@variables.yml"  deploy/setup.yml --tags disable-iptables

Выгрузка сервера. Если на этом этапе падают ошибки, проверьте, правильно ли вы заполнили variables.yml

ansible-playbook -i inventories/hosts.ini --extra-vars "@variables.yml"  deploy/server.yml

Генерация конфигов для клиента

ansible-playbook -i inventories/hosts.ini --extra-vars "@variables.yml"  deploy/client.yml

Пользуемся твиттором

В директории с проектом появилась папка client-config. В ней вы найдете shadowsocks-libev.json конфиги для десктопного клиента, а также qr код для мобильного телефона.

Для десктопных клиентов включите переадресацию трафика из браузера на локальный сервер

firefox: settings → general → network settings

iOS

Shadowrocket - стоит 3$. Открываем, нажимаем иконку скана, сканируем qr код, пользуемся

Android

Нужно установить shadowsocks client и v2ray плагин к нему

Открываем клиент, нажимаем иконку скана, сканируем qr код, пользуемся

Ubuntu linux

  • Выполните в терминале команды для установки клиентского приложения и плагина:

sudo apt update
sudo apt install shadowsocks-libev
sudo apt install shadowsocks-v2ray-plugin
  • Скопируйте клиентский конфиг в папку с конфигом ss-client: cp client-config/shadowsocks-libev.json /etc/shadowsocks-libev/config.json

  • Запустите сервер командой ss-local

Windows

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


  1. smind
    07.04.2022 18:59
    +1

    я вот только одного не понимаю какие есть способы кроме крипты - оплачивать аренду импортных сервисов, поделитесь?


    1. SuAlUr
      07.04.2022 20:10

    1. pae174
      07.04.2022 20:16
      +1

      У большого количества российских хостинговых компаний есть сервера в других странах. Найти можо здесь : https://vds.menu/


    1. P45H3
      08.04.2022 07:15
      +1

      SWIFT перевод например) Оплатил хетзнер 3 дня назад


  1. MrB4el
    07.04.2022 19:17
    -2

    Не получится завести по аналогии, оракл не предоставляют больше для россиян виртуалки, Амазон и Майкрософт требуют рабочую карту для проверки (чего тоже у большинства больше нет). Но за гайд спасибо.


  1. addewyd
    07.04.2022 19:17
    -1

    И действительно…

    В процессе потребуется привязать карту, с неё спишут и сразу вернут 70 рублей


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


  1. powerman
    07.04.2022 19:28

    В сравнении с VPN:
    - Незаметен для провайдера
    - Меньше просадки по скорости

    Это звучит не очень реалистично.

    Когда весь трафик юзера идёт на один сервер - это вполне заметно для провайдера (и даже в варианте "весь трафик, исключая .ru домены" тоже заметно).

    Что до скорости, то это смотря с чем сравнивать - если с работающим по UDP Wireguard, то скорость лучше будет как раз у VPN.


    1. lab412
      07.04.2022 19:51

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


      1. powerman
        07.04.2022 20:15

        Вроде есть хостинги с оплатой криптой. И, скорее всего, надо привыкать к тому, что крипта - это единственный адекватный ответ на эту проблему. Все остальные способы обхода - это типичная война меча и щита, только воевать приходится против государств(а), и ничем хорошим для населения эта война закончиться не может. Крипта может быть чуть дороже, но когда ранее работавшая карта будет в очередной раз заблокирована, аккаунт на сервисе в очередной раз определён как принадлежащий пользователю из неправильной страны и заблокирован - учитывая все эти потери и проблемы комиссия крипты перестанет выглядеть дорогой.


    1. Nordviken Автор
      08.04.2022 08:39

      В текущих реалиях про незаметность более реалистично. Для оператора это выглядит так, будто вы качаете файлик с сайта "миркотов.рф". Китайцы уже научились блочить vpn, и энтузиасты как раз на SS выезжают


      1. powerman
        08.04.2022 14:43
        +1

        Незаметность бывает "провайдер легко определяет конкретные VPN-протоколы и блокирует их" а бывает "провайдер легко определяет использование VPN просто по факту того, что весь или значительная часть суточного трафика юзера идёт на один сервер". SS, насколько я понимаю, помогает против первого, но не второго.


  1. Stas911
    07.04.2022 21:01
    +2

    Что-то сложно выглядит. Outline еще можно посмотреть, он вроде попроще настраивается.


  1. vconst
    07.04.2022 22:28
    -1

    Такие гайды были актуальны 10 лет назад. За эти 10 лет весь инет забился ими под завязку и появилось несколько решений даже не требующих что-то самому запускать на арендованном сервере

    И да, это не бесплатно, аренда сервера и приложения из аппстор стоит денег


  1. kellas
    08.04.2022 00:55

    Через docker как-то попроще запускать - https://github.com/dmirubtsov/ss-xray-docker/blob/master/example/docker-compose.yml

    https://getoutline.org/ru/ - тоже shadowsocks, только другие порты использует в отличии от решения из статьи, не нужен домен, еще проще установка, еще проще с клиентскими приложениями. Есть так же публичные бесплатные сервера.


    1. diaskzn
      08.04.2022 14:40

      Для настройки сервера новичком, да аутлайн менеджер удобен. А вот клиент на смартфоне удобнее использовать от shadowsocks в нём настройки гибче.


      1. kellas
        08.04.2022 18:59

        С outline сервером можно использовать другие клиенты к shadowsocks - https://gist.github.com/eesheesh/e2da0e61a85e50ebf23651eb1921517f я так на androidtv подключался


  1. Kiborg777
    08.04.2022 15:05
    -1

    Спасибо за manual. Тем не менее, насколько я понимаю, это - инструкция на случай полного запрета VPN (или блокировки VPN трафика). Надо бы это было указать явным образом. Иначе, по большому счету, установка VPS+OpenVPN достаточна для решения проблем, существующих сейчас (по состоянию на 8.04.2022).

    Для тех, кто спрашивает, как оплатить хостинг, есть два надежных варианта:

    1. Крипта
    2. Друг/родственник "там"

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