Опыт использования собственного VPN за последний месяц — через OpenVPN
С начала марта перешел на собственный VPN. Необходимо было заменить платный публичный, который стали блокировать и включить в постоянном режиме на роутере, чтобы работало на всех устройствах по Wi-Fi. До марта хватало периодических включений публичного.
При постоянном использовании мне хотелось иметь Ping в районе 5 мс по Speedtest (как без VPN). Пиковые скорости мне не важны, в первую очередь мне важна отзывчивость и стабильность в соединении.
К требуемым показателям удалось приблизиться при развертывании VPN на сервере в Москве. Получились 7 мс, и 49 мс на сервере в Амстердаме.
При использовании через роутер скорость 60 мегабит, через телефон или компьютер 100.
Цели
1. Первое что требовалось, возможность развертывать VPN за реальные 5 минут на любом максимально дешевом VPS у любого хостера. Мне было не понятно насколько это будет разрешено хостером, и чтобы можно было быстро переезжать. Но судя по всему на виртуализации KVM — это разрешено.
2. Второе это совместимость с MacOS, iOS, Android и двумя моими роутерами Asus, один из которых работает на домашнем Билайне, второй на мобильной Yota.
3. Возможность легкого использования непрофессиональными пользователями уже готового VPN.
Сначала попробовал разные решения из статей. В основном предлагается два протокола IPSec IKEv2 и OpenVPN. Про IPSec например есть хорошая статья на данном сайте. Варианты все рабочие, но сложные и долгие. Дальше попробовал ряд готовых скриптов и готовые решения у хостеров. Минус готовых решений у хостера в том что привязка к конкретным хостерам, а я хотел иметь возможность где угодно разворачивать.
В итоге остановился на OpenVPN и вот этом скрипте с github. Скрипт актуальный, последнее изменение 3 месяца назад. Установка проходит за пару минут, нужно только подтвердить ответы на некоторые вопросы.
На выходе получается полностью сконфигурированны OpenVPN сервер со всеми сертификатами и .ovpn файлом, который необходимый для коннекта к серверу с устройств. Данный файл нативно поддерживается моими роутерами, а для телефонов и mac есть официальные приложения OpenVPN. Файл я положил на своём яндекс диске, поэтому его легко можно открыть на любом устройстве в приложении OpenVPN, один раз сохранить и пользоваться, также можно, например, по Telegram его передать.
Из проблем
Если использовать недорогие массовые VPS, то ряд сайтов не будет работать, т.к. IP может оказаться в бан листе. Например Avito, им я даже написал с просьбой разблокировать — отказали, говорят вся подсеть забанена и разбану не подлежит.
С некоторыми магазинами были проблемы типа dns-shop и street-beat. Они оба защищены Variti от ddos, поэтому предполагаю что у Variti так фильтры срабатывают.
В итоге я остановился на более дорогом хостере, где почти всё работает.
Немного теории
На официальном сайте OpenVPN даны следующие рекомендации по серверному железу:
- Память: 1 Гб и далее по 1 Гб на каждые 150 юзеров.
- Процессор: 12 герц на 1 мегабит скорости.
Соответственно VPS с 1 Гб памяти и 1 процессорным ядром — 100 мегабит тянет.
Процессор должен быть с поддержкой инструкций AES-NI, иначе надо в 4 раза больше мощности. Современные серверные, компьютерные и мобильные процессоры это поддерживают.
С роутерами не всё так сладко, мои режут скорость до 60 мегабит. Топовые модели Asus поддерживают данные инструкции и должны тянуть до 200 мегабит, судя по отзывам которые я нашёл на западных форумах.
Как установить
Иметь базовый опыт администрирования серверов
Заказать VPS с виртуализацией KMV с Ubuntu 20 у любого хостера
Зайти по SSH
Воспользоваться данным скриптом https://github.com/angristan/openvpn-install
После добавить строчку «duplicate-cn» в файле /etc/openvpn/server.conf, чтобы одним файлом можно было одновременно коннектиться с разных устройств и рестартнуть VPN командой «service openvpn restart»
Поменять SSH порт на произвольный (по желанию, для безопасности)
- Сгенерированный файл. ovpn использовать на любых устройствах
- Установить приложения из AppStore или Play Store, а для компьютера с официального сайта
В итоге
Целый месяц я работал, как из дома, так и в выездном варианте. Помимо работы использовал торренты. Всё прекрасно работает стабильно без тормозов и сбоев. Рунет стал работать даже лучше чем был до марта.
Оставил себе 2 VPN, один в РФ, второй в Нидерландах, т.к. для ряда западных сервисов нужен зарубежный IP в частности для Strava.
Один я, похоже, настроил на роутере, чтобы через ВПН шли только нужные сети, а остальное шло как обычно, напрямую. И никакой ненужной капчи, быстрая скорость и отсутствие нагрузки на впс. С мобильного при необходимости цепляюсь к своему роутеру. Роутер - Mikrotik.
Вот такой вариант интересный, а такие настройки в базе у вашего роутера есть? или что-то специфическое делали? можно например настроить инст/фб чтобы шли через vpn, а остальное так?
Можно настроить как угодно, можно много впнов иметь, можно одни сайты через один, другие-через другой.
Просто заводится список ip, в него добавляем заблоченное, а весь трафик для этого списка заворачивается в впн.
Минус-нужно добавлять руками, так как в выгрузках РКН многих блокировок нет. Плюс: банки, госуслуги и прочие не сходят с ума
пы.сы. гугл новости задрали менять ip, им менять, а мне добавлять
https://bitbucket.org/anticensority/antizapret-vpn-container/src/
Работает на любом устройстве с поддержкой OpenVPN
У Микротика в базе есть практически все, связанное с сетью. Из того, что нужно домашнему, но прошареному пользователю - это создание впн-сервера, создание нескольких впн подключений разных типов (ppoe, pptp, l2tp, ipsec и т.д.), маршрутизация, wifi-роуминг (когда несколько роутеров по квартире в одной сети), создание сетевого диска (диск по USB подключается), подключение LTE-роутера в качестве основного или резервного канала.
Так что если не пробовали его, попробуйте. В сети много подробных инструкций, как с ним работать - через веб-интерфейс все делается. Продается, например, в DNS.
Касаемо темы, определяете сеть, которую хотите перенаправить, в роутинге для нее выбираете нужное ВПН подключение, и все. У продукта Цукерберга порядка 5 сетей нужно прописать, чтобы норм работало. LinkedIn - пара IP адресов. Рутрекер вроде бы 1 IP. В общем, тут кому что нужно.
Еще один плюс такой схемы - если меняете ВПН-провайдера (или переносите свой на другой сервак), то вам не придется на всех девайсах перенастраивать, т.к. все девайсы всегда будут цепляться на ваш домашний IP (он, кстати, должен быть статический).