March 11, 2021

Скрипты для автоматического подключения к бесплатным VPN

Суть работы приложения autovpn в следующем: он загружает список бесплатных VPN серверов, ищет в них VPN сервера из страны, которую вы указали, и подключается к нему. В результате весь ваш трафик начинает идти через VPN - это очень быстрый и автоматический способ поменять свой IP и обойти блокировки.

Благодаря особенностям работы VPN, весь трафик (а не только запросы веб-браузера), идёт через VPN сеть, то есть если вы используете сетевые инструменты, они также поменяют свой IP.

Автор autovpn удалил исходный код, в результате Rupert Edwards (автор TorIptables2) переписал код autovpn и назвал программу autovpn2. Программа выполняет всё то же самое.

В этой статье мы познакомимся с autovpn2.

Глядя на работу autovpn2, я всегда задавался вопросами:

  • действительно ли нужно каждый раз заново скачивать файл со списком VPN серверов?
  • почему обязательно нужно указывать страну, почему программа не может выбрать просто любой VPN из списка?
  • почему нет поддержки подключения к VPN через прокси (а также скачивание списка VPN через прокси) - это ещё лучше для анонимности
  • почему autovpn2 использует Python 2? Да, из-за отсутствия зависимостей, autovpn2 спокойно работает даже на Python 2 без модулей (как он присутствует в Kali Linux). Но ведь может наступить момент, когда Python 2 всё-таки полностью удалят с дистрибутивов

В общем, я учёл все эти замечания и ещё раз переписал autovpn (в этот раз на Bash) и назвал его autovpn3. Скриптом я тоже поделюсь в этой статье.

Автоматическое подключение к бесплатным VPN с помощью autovpn2

autovpn2 - это клиент VPN Gate (на основе OpenVPN) для Linux, подключает вас к случайному бесплатному VPN в стране по вашему выбору, который указывается двухбуквенным кодом страны.

Программа может помочь вам скрыть ваш реальный IP адрес от посещаемых сайтов, а также открыть сайты, которые заблокированы в вашей стране.

Ключевые особенности программы:

  • перенаправляет весь трафик в системе через VPN (а не только трафик веб-браузеров, как это делают некоторые плагины)
  • использует бесплатные VPN
  • получаемые настройки VPN ни к чему не привязаны - вам не нужно регистрироваться, вводить почту или выполнять какие-либо подобные действия
  • всё выполняется автоматически: поиск бесплатных VPN серверов, получение настроек, запуск OpenVPN клиента с указанием полученных настроек

Программа autovpn2 очень проста для использования, она позволяет быстро, без ручной настройки OpenVPN клиента подключиться к VPN и скрыть свой IP адрес от посещаемых сайтов, а также обходить блокировки.

Поскольку OpenVPN перенаправляет весь трафик через VPN сервер, то любые инструменты, которые вы используете, будут выходить в интернет через VPN сервер.

Программу можно запускать без опций:

sudo autovpn2

В этом случае будет выполнен поиск бесплатных VPN серверов из US (США).

Вы можете указать двухбуквенный код страны (ISO 3166-2), в этом случае будет выбран VPN из указанного государства.

Пример поиска VPN сервера из Японии и автоматическое подключения к нему:

sudo autovpn2 JP

Чтобы проверить свой IP и к какой стране он принадлежит, вы можете использовать этот онлайн сервис или любой другой.

Если сразу после запуска программа быстро завершает свою работу без подключения к VPN, это может означать:

  • вы неправильно ввели код страны
  • отсутствуют VPN из выбранной страны

Список бесплатных VPN серверов вы найдёте на этой странице: https://www.vpngate.net/en/

Если вывод программы завершился строкой содержащей «Initialization Sequence Completed», то это означает, что соединение успешно установлено и теперь вы выходите в сеть через VPN:

Для остановки VPN нажмите CTRL+c, будет выведено сообщение:

[autovpn2] try another VPN? (y/n)

Скрипт autovpn2 спрашивает, попробовать ли другой VPN?

Если вы хотите попробовать другой VPN, то нажмите «y», если вы хотите выйти, то нажмите «n».

Как поменять страну по умолчанию в autovpn2

Если не указать страну, то по умолчанию будут искаться VPN сервера в США. Вы можете это изменить, для этого откройте файл autovpn2.py. Если вы переместили скрипт в $PATH, то откройте его следующим образом:

sudo gedit /usr/local/bin/autovpn2 

Нужно изменить строку 21 и 45, указав в них двухбуквенный код желаемой страны (большими буквами) вместо «US».

autovpn3 - дополнительные функции по управлению подключениями к бесплатным VPN

Как я уже написал, на мой взгляд, в autovpn могло бы быть побольше функций.

Дополнительные особенности в autovpn3 по сравнению с autovpn2:

  • список VPN кэшируется и скачивается заново только когда это действительно нужно, благодаря этому переподключение к новому серверу происходит намного быстрее;
  • можно указать страну для поиска VPN серверов в ней, либо использовать VPN из случайно выбранной страны
  • добавлена поддержка подключения к VPN через прокси (а также скачивание списка VPN через прокси) - это ещё лучше для анонимности
  • написана на Bash, у вас не возникнет проблем с Python 2, не требует компиляции
  • можно сохранить список VPN серверов и использовать его без повторной загрузки
  • быстрая смена VPN сервера

Инструкция по установке и сам скрипт на этой странице: https://kali.tools/?p=6362

В программе уже сделана оптимальная настройка, подходящая для большинства пользователей, поэтому вы можете просто начать работать со скриптом:

sudo ./autovpn3.sh 

Посмотрим на настройки (они прямо в начале скрипта):

country='' 

Первой настройкой вы можете выбрать страну, из которой должен быть VPN сервер, например, JP, KR, US, TH. То есть двухбуквенный код, буквы обязательно большие. Если оставите пустым, то будет выбираться VPN сервер из любой страны. То есть скрипт не принимает код страны в качестве опции - страну нужно прописывать в коде.

Если вам не понравился выбранный VPN сервер, то нажмите Ctrl+c и программа предложит попробовать снова с другим VPN. В этом случае список серверов не скачивается заново - используется один и тот же. Но если вы закроете программу и запустите её опять, то заново будет скачен список VPN серверов. Если вас это устраивает, то установите значение на 0. Если вы хотите, чтобы при повторном запуске программы использовался старый список, то установите значение на 1. Если список отсутствует, то он будет скачен заново независимо от настроек. При перезагрузке компьютера, список удаляется в любом случае:

useSavedVPNlist=0 

Все настройки прокси мы рассмотрим в другой статье, где мы будем подключаться к бесплатным VPN через прокси, в том числе через сеть Tor:

proxy=0
proxyIP=''
proxyPort=8080
proxyType='socks' # socks or http

Скрипт выбирает случайный VPN сервер из всего списка (если не указана страна) или из списка для указанной страны. Если вас это устраивает, то установите значение на 0, если вы хотите, чтобы всегда использовался первый сервер, то установите значение на 1. Возможно, показатели первого сервера более высокие (лучше скорость, меньше пинги и т.п. - на самом деле, я это не проверял):

useFirstServer=0 

Путь до файла, где сохраняется скаченный список VPN серверов. По умолчанию он хранится в папке /tmp/, которая очищается при каждом перезапуске компьютера. Вы можете выбрать более стабильное расположение, если хотите (имеет смысл при «useSavedVPNlist=1»):

vpnList='/tmp/vpns.tmp' 

В следующей статье мы будем подключаться к VPN через прокси и через сеть Tor. В том числе, мы будем использовать autovpn3 для подключения через прокси и Tor к бесплатным серверам VPN.