Last Updated:

Делаем свой VPN на Streisand

vpn
У вас в стране блокируют сайты? Используйте VPN. Проще всего купить готовый доступ у компании вроде Astrill или ExpressVPN. А если вас одолевает паранойя, или чем-то не устраивают чужие решения, или в вашей стране блокируют сайты с VPN, можно сделать свой собственный сервер с кучей примочек. Сейчас расскажу, как сделать свой VPN (и Shadowsocks), для теста на пару месяцев даже денег не надо.

2023-09: Актуальная инструкция про VPN здесь.

Что понадобится

  1. Компьютер Буду показывать на примере Windows, для других систем процесс очень похож.
  2. 1-2 часа Для настройки всего софта
  3. PayPal или карта Visa / Mastercard без денег Снимут не более 0.1 доллара и вернут; нужно для активации бонусных 10 долларов провайдера (хватит на два месяца)

Что будем делать

  1. Арендуем виртуальный сервер на Vultr Можно и любой другой хостинг, главное чтобы он находился в стране, где нет блокировок интернета. Выбрал именно Vultr потому, что они дают $100 при регистрации по реферальной ссылке. Пропустите этот шаг, если вы любите другой хостинг.
  2. Установим пакет Streisand Полный готовый набор с несколькими вариантами VPN, включая ориентированный на Китай Shadowsocks
  3. Настроим свой ПК и смартфон Чтобы смотреть YouTube и пользоваться Google Play из-за Великого Китайского Фаервола, либо заходить на LinkedIn в обход Роскомнадзора.

Арендуем сервер

Сделайте всё по этой инструкции (выбирайте Ubuntu 16.04 x64) и возвращайтесь.

Устанавливаем Streisand на сервер

Внимание: инструкция написана для нового пустого сервера. Не используйте её там, где у вас уже что-то работает (блог, NAS, ещё что-нибудь). Эта инструкция сломает существующие настройки сервера. Используйте её только на новом сервере.
Будем вводить команды в терминал Putty. После каждой команды нужно нажать Enter.
  1. Создадим SSH для Streisand ssh-keygen Нажимаем Enter несколько раз.
  2. Обновляем список пакетов sudo apt-get update
  3. Устанавливаем Git sudo apt-get install git
  4. Устанавливаем нужные пакеты Python sudo apt-get install python-paramiko python-pip python-pycurl python-dev build-essential
  5. Устанавливаем Ansible sudo pip install ansible markupsafe
  6. Клонируем ветку Streisand с Github git clone https://github.com/jlund/streisand.git && cd streisand
  7. Запускаем Streisand ./streisand
  8. Выбираем пукт Localhost Вводим цифру 7, нажимаем Enter
    Внимание: инструкция написана для нового пустого сервера. Не используйте её там, где у вас уже что-то работает (блог, NAS, ещё что-нибудь). Эта инструкция сломает существующие настройки сервера. Используйте её только на новом сервере.
  9. Подтверждаем действие Вводим streisand, нажимаем Enter.
  10. Ждём 15-30 минут. Во время установки в терминале будет бегать много текста, не обращайте внимания. Когда всё закончится, вы увидите строчку вроде root@test-streisand-wtigga: ~/streisand#
  11. Установим логин и пароль для веб-интерфейса htpasswd -b -c /etc/nginx/htpasswd ваш_логин ваш_пароль
  12. Перезапустим веб-сервер service nginx reload

Откроем страницу с настройками

Откройте браузер, напишите там https://ваш_IP_адрес, например https://104.138.37.80 Браузер ругнётся на плохой сертификат. Если у вас Chrome, в левом нижнем углу будет ссылка Advanced, она позволит открыть страниу по ссылке Proceed to XXXXXX. Введите логин и пароль, которые вы задали в предыдущем шаге. Если всё сделано правильно, вы увидите вот такую страницу:
На ней перечислены все возможные способы подключения к серверу с разных устройств. Страница сгенерирована специально для вашего сервера, там указаны все необходимые логины и пароли для подключения. Делитесь ей только с теми, кому доверяете.

Shadowsocks

Рекомендую попробовать Shadowsocks, настроить проще всего. В соответствующем пункте страницы настроек уже есть пошаговые инструкции. Например, для Windows она выглядит так:
  1. Скачайте Shadowsocks for Windows Если официальный сайт не открывается, клиент можно скачать прямо с собственного сервера, ссылка так же в инструкции. Запустите Shadowsocks.
  2. Пролистайте так, чтобы QR-код из инструкции был примерно по центру экрана
  3. Нажмите правой кнопкой на значок Shadowsocks в трее рядом с часами, перейдите в Servers > Scan QRCode from Screen...
  4. Снова нажмите на Shadowsocks правой кнопкой, выберите Enable.
Вот и всё. Попробуйте зайти на заблокированный сайт.
Для Android ещё проще: установите клиент (на вашем сервере лежит копия для Android, можно без Google Play), отсканируйте QR-код с этой страницы.

Заключение

UPD: Можно отдельно поставить Shadowsocks, меньше действий. YouTube и LinkedIn открываются с телефона и компьютера, можно пить шампанское, цель достигнута. Если решите и дальше использовать этот сервер, не забудьте кинуть денег на хостинг, ведь 10 халявных долларов хватит только на два месяца. Свой сервер — как правило, равноценен или дороже готового решения, сложнее в настройке, отсутствует выбор серверов в других странах, может быть медленнее или вообще не работать. Зато "всё своё", никто не собирает ваши данные, нет ограничений на количество пользователей (зависит от того, сколько потянет арендованный сервер), доступны разнообразные протоколы. Кроме того, обладая некоторой квалификацией, на том же сервере можно поднять и другие вещи: своё облачное хранилище Nextcloud, например, или блог на Wordpress.