Вообще у нас уже поднималась тема здесь:На заметку - Бесплатный и простой VPN без регистрации для PC, Android и iOS
Но в этой теме немного о другом!)
Оригинальная статья здесь:
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
VPN через SSH
На данный момент DPI (Deep packet inspection) умеет блокировать не только конкретные ресурсы, но и протоколы обмена информацией. При этом есть протокол, который вряд ли заблокируют - SSH. Блокировка данного протокола невозможна без катастрофических последствий для всей инфраструктуры.SSH (secure shell) - протокол для удалённого управления операционной системы на основе TCP.
Похож на telnet, но все пакеты шифруются, что делает его безопасным.
SSH "из коробки" работает с шифрованием, поэтому мы можем не беспокоиться за безопасность своего трафика.
Существуют разные инструменты для реализации VPN через SSH, я остановлюсь на
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
. Преимущества sshuttle:- не требует ничего от сервера (просто запущенный ssh сервер)
- Работает везде, в том числе OpenWRT и Windows (должно работать)
- Поддерживает тунелирование DNS запросов
VPS
Для того, чтобы поднять VPN для себя хватит любого самого дешёвого сервера с белым IP. Но мы хотим всё сделать бесплатно, поэтому отбрасываем этот вариант.Есть Корейский
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
, который позволяет внутри докера запускать свой код на различных языках программирования. По сути
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
, но
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
позволяет официально запускать ssh сервер из их контейнера, а следовательно предоставляет белый IP адрес.Goorm.io
Проходим простую регистрацию.Кстати goorm.io пропускает для регистрации временные почты.
Регистрация
Далее переходим в
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
, и создаём новый контейнер.На выбор есть 4 региона расположения сервера (точнее расположения амазоновского инстанса на котором будет запущен ваш контейнер). Нам нужно выбрать ближайший к нам, чтобы пинг был меньше (если вам конечно не принципиально в какой стране у вас будет VPN).
Пресет контейнера выбираем "blank". Можно ещё выбрать версию убунты в контейнере, правда выбор слишком скромный. Либо 18.04, либо 16.04.
Жалко, что в пресете c PyTorch не выдаётся GPU...
Остальные настройки оставляем дефолтными. Создаём контейнер и через несколько секунд оказываемся в ide.
В верхнем меню выбираем Container -> SSH Configuration
Откроется модал в котором будет команда для подключения по SSH.
Можно подключиться через терминал, чтобы автоматически добавить хост в доверенные.
Состояние контейнера сохраняется после его выключения. Поэтому для себя я создал ещё одного пользователя с удобным для меня паролем и подключаюсь через него.
SSHUTTLE
С настройкой сервера закончили, теперь про клиента:В
Вы должны зарегистрироваться, чтобы увидеть внешние ссылки
есть команды для установки утилиты практически на любую операционную систему. Здесь приведу только пример для Арча.
Код:
sudo pacman -S sshuttle
После установки выполним следующую команду:
Код:
sshuttle -r sshuser@IP:PORT -x IP 0/0 -v --dns
Вместо IP и PORT подставляете данные от своего контейнера. Сначала вам потребуется ввести пароль от вашего, локального root юзера, а затем пароль от пользователя запущенного контейнера.
Открываем любой определитель IP адреса и видим, то, что IPv4 изменился, а IPv6 - нет
Разработчики sshuttle утверждают, что IPv6 поддерживается, но конкретно у меня - IPv6 не поменялся. К сожалению большинство сайтов определяют регион по IPv6, в том числе и DPI проверяет трафик, идущий через IPv6.
Но это можно исправить.
IPv6
Возможно есть более удобный способ исправить данную проблему. Моё решение - отключить IPv6 на стороне браузера, т.е. запретить ему использовать IPv6 в принципе.Покажу, как это сделать на примере Firefox.
Открываем страницу about:config и в поиске вводим: network.dns.disableIPv6
и переключаем его на "true".
После перезапуска браузера видим, что всё работает.
Если всё ещё не работает, то проверьте, не включен ли у вас QUIC (HTTP/3). QUIC использует UDP, а sshuttle не умеет работать с таким трафиком.
В Google Chrome вводим в адресную строку chrome://flags, далее находим #enable-quic и выбираем значение «Disabled».
В Firefox вводим в адресную строку about:config, находим network.http.http3.enabled и устанавливаем значение «false».
И все сайты заблокированные со стороны РФ, так же работают.
Бенчмарк
Контейнер может работать 24/7, если у вас открыта вкладка в браузере с его ide. А в платной подписке его можно заставить работать всегда при любых условиях.Но я не думаю, что кому - то нужен VPN, который работает постоянно, даже когда вы не у компьютера.
Для бесплатного VPN скорость достаточная. Важно, что она стабильная.
Выводы
К сожалению в текущих реалиях, даже платная подписка на хороший VPN не гарантирует, что он будет работать стабильно, так как его могут в любой момент заблокировать.С другой стороны можно купить дешёвый VPS, или использовать как в статье бесплатные VPS.
Данный способ будет работать и с любым платным VPS сервером.)
Последнее редактирование: