Цель: открыть заблокированные провайдером сайты;
Примерное время: 30 минут;
Стоимость: бесплатно;
Что надо делать: нажимать кнопки, копировать и вставлять текст, читать простые слова на английском.
Project V - набор инструментов, которые помогут обойти замедление или полную блокировку сайтов. Он разработан азиатскими гениями для обхода великого китайского фаервола.
Обход замедлений и блокировок
Скрытие IP адреса
-
В сравнении с VPN:
Незаметен для провайдера
Меньше просадки по скорости
Меньше расход аккумулятора на мобильных устройствах\
Конечно, всё это не приходит так просто. При установке вручную нужно выполнить несколько действий:
Аренда сервера
Регистрация домена
Получение SSL сертификата
Настройка Nginx
Настройка Shadowsocks сервера
Настройка клиента
В этом руководстве я расскажу, как сократить этот список и упростить действия, чтобы они были доступны энтузиасту с минимальными знаниями в айти.
Мы будем разворачивать собственный сервер на бесплатных мощностях с использованием скрипта для автоматического деплоя.
Подготовка
Для деплоя на сервер вам понадобится установить python3.7 на свой компьютер. У маководов и линуксоидов питон установлен из коробки, и всё должно завестись сразу. Если нет, вот тут есть инструкция по установке.
Регистрируемся
![](https://habrastorage.org/getpro/habr/upload_files/e78/1f4/c36/e781f4c364191fb70568627df711febb.png)
Для примера воспользуемся сервером Microsoft Azure. Панель управления интуитивно понятна, регистрация проста, а при создании сервера мы сразу получаем доменное имя для него.
Сервис бесплатно предоставляет виртуальную машину под управлением Linux на год. 750 часов в месяц хватит для бесперебойной работы сервера. Учтите, что объем трафика на бесплатном лимите ограничен 15 гигабайтами в месяц. Бесплатные сервера устанавливают достаточно жесткие лимиты, и вы можете по аналогии с этим руководством завести еще пару серверов на других ресурсах: амазон, гугл и оракл.
Переходим по ссылке Жмем Continue to Azure portal, проходим регистрацию, заполняем поля. В процессе потребуется привязать карту, с неё спишут и сразу вернут 70 рублей. Используйте виртуальную карту qiwi или тинькофф, чтобы не нарваться на неожиданное списание.
Создаем сервер
![](https://habrastorage.org/getpro/habr/upload_files/9c7/c21/35d/9c7c2135d525159c82745e84d308c218.png)
После регистрации переходим по ссылке
И среди сервисов выбираем virtual machines
![](https://habrastorage.org/getpro/habr/upload_files/a03/563/07c/a0356307c0e96f9285703c4058b86c33.png)
В углу списка нажимаем Create, нас переводят на страницу выбора параметров машины. Далее настроим её, чтобы пользоваться бесплатно. В окне настройки есть несколько вкладок, нас в первую очередь интересуют Basics, Disk и Networking
![](https://habrastorage.org/getpro/habr/upload_files/4a8/e37/7a1/4a8e377a1b132cb6e47d51d53485c593.png)
Basics
Примечание: здесь и далее пометка (free services eligible) означает доступность для бесплатного использования
![](https://habrastorage.org/getpro/habr/upload_files/6c5/a2d/2e6/6c5a2d2e6f417ca37131765941e68cf7.png)
Имя виртуальной машины - ставим любое
В качестве региона выберите один из доступных для бесплатного использования. Учтите, что в регионе может не быть бесплатных машин, и придется попробовать с другим.
Image - Ubuntu Server 20.04 LTS
Size - Standart_B1s
![](https://habrastorage.org/getpro/habr/upload_files/afa/d84/a31/afad84a31f820411dd66f2a464639f74.png)
При выборе размера B1s может не быть в списке. Нажмите See all sizes
, отключите группировку в правом верхнем углу и поставьте сортировку по стоимости. Он будет в самом начале с пометкой free services eligible
![](https://habrastorage.org/getpro/habr/upload_files/c22/961/4ae/c229614aee328322835bca449da9eff7.png)
Способ аутентификации - SSH public key
![](https://habrastorage.org/getpro/habr/upload_files/79d/02e/50a/79d02e50aec6dbff04baeeb99d32a685.png)
Username - выставляем любой, запомните - пригодится вдальнейшем
-
SSH public key source - тут возможны два варианта:
Use existing public key если у вас уже есть сгенерированный ключ
Generate new key pair если вы не знаете, что это такое. Можете задать любое имя для ключа
![](https://habrastorage.org/getpro/habr/upload_files/5ba/049/38d/5ba04938d00cb9f2aa435e29c731ff6d.png)
Disk
![](https://habrastorage.org/getpro/habr/upload_files/a07/b30/b0c/a07b30b0c3fb41ee9697545499fe4e0a.png)
OS disk size - выставляем 64 гигабайта
Networking
![](https://habrastorage.org/getpro/habr/upload_files/4c7/938/074/4c79380742069222fcd6e81d922ac939.png)
Select inbound ports - включаем 80, 443 и 22 порты
Завершение настройки
После этого можете нажать review+create
. Вас перекинет на страницу со статусом создания виртуальной машины. Если ранее вы выбрали генерацию ssh ключа, сайт предложит сохранить его. Сохраните на компьютер, он понадобится позже.
![](https://habrastorage.org/getpro/habr/upload_files/741/3e0/608/7413e0608c12f7b0c2fd01978540f50a.png)
После появления надписи Your deployment is complete, можно перейти к странице со статусом созданной виртуальной машины. Жмём Go to resource
![](https://habrastorage.org/getpro/habr/upload_files/852/efc/9e2/852efc9e294d57741246539a8ce7f1d6.png)
Здесь нас интересует строка DNS name в правой колонке, раздел networking. Жмём configure
![](https://habrastorage.org/getpro/habr/upload_files/5b6/6e8/c83/5b66e8c8339866614d1e36d45d90b6ef.png)
Выставляем DNS name label. Пусть это будет не слишком подозрительное название - “мир рыбалки” или “кот сегодняшнего дня” вполне подойдет
IP address assignment - static
Настройка завершена. Вернитесь на предыдущий экран со статусом сервера и скопируйте DNS name, оно понадобится дальше.
Настройка проксирования
Скачиваем проект и задаем настройки для сервера
Качаем проект из репозитория на гитхабе.
Если у вас не установлен локально git, можете скачать архив и разархивировать в удобное место
![](https://habrastorage.org/getpro/habr/upload_files/ff7/2ab/c84/ff72abc84c008f8ef8d7dd9cfe194889.png)
Открываем папку с проектом 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, которое вы задавали на последнем этапе настройки сервера
![](https://habrastorage.org/getpro/habr/upload_files/38d/8a7/050/38d8a7050682380916667ea2caeabe90.png)
В папке с прокетом вы найдете файл variables.example.yml
скопируйте его и переименуйте в variables.yml
, замените в нем значения на следующие:
user: Имя пользователя на сервере - то что вы писали в Username при настройке сервера
host: Домен,оформленный для сервера (DNS name)
email: Ваша электронная почта
proxy_password: Пароль для доступа к прокси, поставьте что-то сложное
method: Оставить как в примере
local_port: Порт, на котором будет работать ваш локальный сервер. Можно оставить как в примере
fast_open: Оставить как в примере
endpoint: эндпоинт для прокси. Можно поставить что-то наименее подозрительное для провайдера или оставить как в примере
enable_firewall: yes для включения фаервола после стартовой настройки. Если на сервере уже есть ваши проекты, и вы не знаете для чего это, включение может вызвать ошибки в их работе
![](https://habrastorage.org/getpro/habr/upload_files/166/1ed/94e/1661ed94ecabc9aacdd82cf8d4109d1e.png)
Если при создании сервера вы выбрали Generate new key pair:
скопируйте скачанный ключ в текущую папку, а в variables.yml допишите строку
ansible_ssh_private_key_file: имя загруженного ключа (напр. key.pem)
Введите в терминале
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
![](https://habrastorage.org/getpro/habr/upload_files/514/6f4/8fb/5146f48fb9804c078d69fbf10f86bafc.png)
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
Скачайте последнюю версию shadowsocks и распакуйте архив
Скачайте последнюю версию v2ray, распакуйте архив, переименуйте файл внутри в v2ray.exe и сохраните в папку с shadowsocks
-
Запустите Shadowsocks.exe, заполните поля как в конфиге client-config/shadowsocks-libev.json или импортируйте из него настройки
Комментарии (17)
MrB4el
07.04.2022 19:17-2Не получится завести по аналогии, оракл не предоставляют больше для россиян виртуалки, Амазон и Майкрософт требуют рабочую карту для проверки (чего тоже у большинства больше нет). Но за гайд спасибо.
addewyd
07.04.2022 19:17-1И действительно…
В процессе потребуется привязать карту, с неё спишут и сразу вернут 70 рублей
У меня, например, только «мир», которую вынудили получить, когда пенсию оформляли.
Похоже и тут облом…
powerman
07.04.2022 19:28В сравнении с VPN:
- Незаметен для провайдера
- Меньше просадки по скоростиЭто звучит не очень реалистично.
Когда весь трафик юзера идёт на один сервер - это вполне заметно для провайдера (и даже в варианте "весь трафик, исключая .ru домены" тоже заметно).
Что до скорости, то это смотря с чем сравнивать - если с работающим по UDP Wireguard, то скорость лучше будет как раз у VPN.
lab412
07.04.2022 19:51как раз хотел сам написать что свой VPN куда проще поставить если уж так захотелось открывать всё. но будут теже проблемы с иностранными хостерами - невозможность оплаты их отсюда. про установку VPN тут была статья даже помнится недавно. кстати про оплату хостетров - тоже была
powerman
07.04.2022 20:15Вроде есть хостинги с оплатой криптой. И, скорее всего, надо привыкать к тому, что крипта - это единственный адекватный ответ на эту проблему. Все остальные способы обхода - это типичная война меча и щита, только воевать приходится против государств(а), и ничем хорошим для населения эта война закончиться не может. Крипта может быть чуть дороже, но когда ранее работавшая карта будет в очередной раз заблокирована, аккаунт на сервисе в очередной раз определён как принадлежащий пользователю из неправильной страны и заблокирован - учитывая все эти потери и проблемы комиссия крипты перестанет выглядеть дорогой.
Nordviken Автор
08.04.2022 08:39В текущих реалиях про незаметность более реалистично. Для оператора это выглядит так, будто вы качаете файлик с сайта "миркотов.рф". Китайцы уже научились блочить vpn, и энтузиасты как раз на SS выезжают
powerman
08.04.2022 14:43+1Незаметность бывает "провайдер легко определяет конкретные VPN-протоколы и блокирует их" а бывает "провайдер легко определяет использование VPN просто по факту того, что весь или значительная часть суточного трафика юзера идёт на один сервер". SS, насколько я понимаю, помогает против первого, но не второго.
Stas911
07.04.2022 21:01+2Что-то сложно выглядит. Outline еще можно посмотреть, он вроде попроще настраивается.
vconst
07.04.2022 22:28-1Такие гайды были актуальны 10 лет назад. За эти 10 лет весь инет забился ими под завязку и появилось несколько решений даже не требующих что-то самому запускать на арендованном сервере
И да, это не бесплатно, аренда сервера и приложения из аппстор стоит денег
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, только другие порты использует в отличии от решения из статьи, не нужен домен, еще проще установка, еще проще с клиентскими приложениями. Есть так же публичные бесплатные сервера.diaskzn
08.04.2022 14:40Для настройки сервера новичком, да аутлайн менеджер удобен. А вот клиент на смартфоне удобнее использовать от shadowsocks в нём настройки гибче.
kellas
08.04.2022 18:59С outline сервером можно использовать другие клиенты к shadowsocks - https://gist.github.com/eesheesh/e2da0e61a85e50ebf23651eb1921517f я так на androidtv подключался
Kiborg777
08.04.2022 15:05-1Спасибо за manual. Тем не менее, насколько я понимаю, это - инструкция на случай полного запрета VPN (или блокировки VPN трафика). Надо бы это было указать явным образом. Иначе, по большому счету, установка VPS+OpenVPN достаточна для решения проблем, существующих сейчас (по состоянию на 8.04.2022).
Для тех, кто спрашивает, как оплатить хостинг, есть два надежных варианта:
1. Крипта
2. Друг/родственник "там"
Вариант через Bankof или казахстанские/таджикские карты достаточно ненадежный - рано или поздно эти способы будут закрыты из-за расширения санкций. По-крайней мере, вероятность этого очень высокая.
smind
я вот только одного не понимаю какие есть способы кроме крипты - оплачивать аренду импортных сервисов, поделитесь?
SuAlUr
Firstvds, ihor, justhost.ru https://poiskvps.ru
pae174
У большого количества российских хостинговых компаний есть сервера в других странах. Найти можо здесь : https://vds.menu/
P45H3
SWIFT перевод например) Оплатил хетзнер 3 дня назад