Про различные VPN в последнее время было сказано очень многое.
Многие предпочитают делегировать вопрос создания VPN-сервера другим компаниям. Иными словами, использовать готовые VPN сервисы. Люди постоянно ищут те, что еще не заблокированы или меняют их при достижении бесплатных лимитов. Кто-то платит за такие сервисы. Плюс очевиден — отсутствие лимитов или повышение их границ. Некоторые платные сервисы не имеют бесплатных тарифов, в связи с чем привлекают к себе меньше внимания.
Другие люди, в основном IT-шники, арендуют у хостера маленькую виртуальную машину, устанавливают на ней VPN-сервер и подключаются к нему.
За несколько лет я настроил множество VPN-туннелей и не только для личных целей.
На своей виртуалке я поднимал:
🔹 L2TP+IPSec — шифрование IPsec-ом вообще считается золотым стандартом при построении site-to-site туннелей. Его могут заблокировать.
🔹 PPTP — несложная настройка, но слабое шифрование. Устройства Apple уже давно не поддерживают этот протокол. Его могут заблокировать.
🔹 OpenVPN — есть способы и вручную установить, но придется чуть-чуть попотеть. Можно и автоматически. Блокировка сложнее, потому что он может работать на любом порту, а так же может работать как по TCP, так и по UDP.
Во всех вариантах сложность установки зависит от навыков настраивающего. Я-то умею, и даже знаю как все эти VPN-ы работает, но хочется чего-то проще, раз уж я не делегирую это стороннему сервису.
При недавнем переезде с одной VPS-ки (virtual private server) на другую я решил попробовать что-нибудь другое вместо OpenVPN. He’s a 10, but:
- для добавления новых ключей нужны ручные действия
- на iOS (а может быть и на Android) подключение прерывается при уходе устройства в режим сна, и не всегда поднимается обратно
Но сабж не про OpenVPN, он про Outline.
Настройка сервера #
Во-первых в интернете уже много раз было сказано про него. Особенно акцентировалось внимание на простоту и быстроту настройки. А-ля «пять минут и готово». Ну, в целом так и есть. Давай быстро пробегусь по настройке:
☝️ Из очевидных, но важных условий — у тебя есть работающий VPS 🙈
1️⃣ Идем на оф. сайт, и скачиваем Outline Manager. Он нужен для управления Outline-сервером(-ами).
2️⃣ Нажимаем «+», выбираем «Настройте где угодно», и следуем инструкции. А именно запускаем в bash скрипт для установки сервера. Внутри скрипта будет проверка наличия Docker-а и его установка.
На этом этапе ты берешь на себя всю ответственность от запуска скриптов из интернета на своем сервере. Тут либо так, либо пользуйся чем-то другим.
3️⃣ В выводе мы получим текст с apiUrl и certSha256, который нужно ввести в Outline Manager
{
"apiUrl": "https://13.0.0.121:38848/P2qsdq......oaXH6tA",
"certSha256": "certSha256:C3690622.............31607FBCDCA78B581"
}
🤔 Я потерял токен сервера, как найти? #
Одна из первых проблем, что возникла — я не сохранил данные для добавления сервера в Outline Manager.
На нашем сервере делаем cat /opt/outline/access.txt
certSha256:C3690622.............31607FBCDCA78B581
apiUrl:https://13.0.0.121:38848/P2qsdq......oaXH6tA
Превращаем это в строку конфигурации:
{
"apiUrl": "https://13.0.0.121:38848/P2qsdq......oaXH6tA",
"certSha256": "certSha256:C3690622.............31607FBCDCA78B581"
}
Настройка клиента #
При создании в Outline Manager нового ключа тебе нужно будет отправить полученное приглашение на нужное устройство. Там будет ссылка, которую нужно открыть в браузере.
По ссылке предложат скачать клиент для нужной тебе платформы.
Плюсы #
Основные плюсы для меня:
- Простота установки и управления — в жизни прихожу к мнению, что нужно максимально упрощать всё
- Не выключается на спящем iPhone — единственный клиент, который продолжает работать даже в режиме сна, но не жрет батарейку
- Сложность блокировки — особенность протокола Shadowsocks, который работает через UDP, без установки tcp-рукопожатий.
- Маленькие системные требования — машинки с 512MB оперативной памяти вполне достаточно для сервера на 20-30 человек.
Минусы, но технические #
- Outline поднимает инстанс с Prometheus внутри контейнера, но биндит его на localhost, в связи с чем помониторить снаружи не получится — поменять listen-адрес, или выключить prometheus нельзя(без костылей).
В конечном итоге пользуюсь Outline-ом уже больше трех месяцев — полет хороший. Мой рекомендасьон. 👌
update:
В чате помогли найти описание API для Outline Server. Ссылка: https://github.com/Jigsaw-Code/outline-server/blob/master/src/shadowbox/server/api.yml
update2:
Нашел статью в которой показано, как обращаться к API Outline VPN из Python:
Ссылка:
https://habr.com/ru/articles/820437/.
🔥 А еще рекомендасьон — подписаться на мой [ Телеграм-канал]( https://t.me/etogeek), чтобы не пропускать интересные посты, новости и мои мысли.