Как настроить VPN с Raspberry Pi для удаленной работы

raspberry pi vpn

Один из моих друзей собирается в длительную поездку и нуждается в VPN.

Преимущество VPN, объяснил он, заключается в том, что она позволяет ему получить доступ к домашней сети и файлам.

Это довольно стандартно.

Он также отметил, что ему будет легче входить в банковские приложения и другие сервисы, если он будет входить в систему через домашнюю сеть.

Наличие зарубежного IP-адреса бросает тревожные сигналы, и это приведет к необходимости проведения тестов Captcha и 2FA.

Это заставило меня задуматься о том, подойдет ли Raspberry Pi в данном случае.

Сначала проверьте свой маршрутизатор

Важной деталью здесь является проверка того, может ли ваш маршрутизатор выступать в качестве VPN-сервера.

Это было бы самым надежным решением. Честно говоря, это также самое простое и наименее утомительное решение.

У меня есть TP-Link Archer C7, который имеет возможность запускать VPN-сервер с помощью OpenVPN или PPTP VPN. Менее чем за пять минут я следовал инструкциям и сумел запустить его. 

Затем мне оставалось только установить OpenVPN на мои устройства и использовать файл конфигурации.

Если же у вас маршрутизатор, который не поддерживает VPN-соединения, то следуйте далее...

Что нужно для создания сервера Raspberry Pi?

Кабель Ethernet, Raspberry Pi и маршрутизатор для настройки PiVPN
Кабель Ethernet, Raspberry Pi и маршрутизатор

Прежде всего, вам понадобится Raspberry Pi. 

Идеально было бы иметь Raspberry Pi с проводным соединением ethernet, например Raspberry Pi 4, для максимальной надежности и скорости.

Если вы выберете эти устройства, то вам понадобится кабель ethernet для подключения Raspberry Pi к маршрутизатору.

А для того, чтобы обеспечить подключение Raspberry Pi через проводную сеть ethernet, необходимо отключить беспроводное соединение.

Однако PiVPN успешно работает на Raspberry Pi нулевой серии, поэтому вы можете использовать и его.

Установите PiVPN

Логотип PiVPN
Логотип PiVPN

Направляйтесь к pivpn.io для получения дополнительной информации о программном обеспечении.

Чтобы установить его, выполните команду установки curl -L https://install.pivpn.io | bash в вашем Терминале.

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

Резервирование DHCP

PiVPN - это сервер, поэтому для нормальной работы ему необходим статический IP-адрес. 

Если вы можете создать резервирование DHCP...

Не все маршрутизаторы позволяют создавать резервирование DHCP, поэтому если вы не можете найти раздел для этой настройки, перейдите к следующему разделу.

У меня есть отдельный модем и маршрутизатор, который я купил, чтобы создать резервирование DHCP для обеспечения того, чтобы PiVPN постоянно находился на одном IP-адресе.

Каждый маршрутизатор немного отличается, поэтому вам придется погуглить точные инструкции по созданию резервирования DHCP для вашего маршрутизатора.

Если вы используете TP-Link Archer C7, как это делаю я, то вам нужно перейти по ссылке Дополнительно > Сеть > Сервер DHCP.

Под Резервирование адресов раздел, я нажал на Добавить. Мне понадобился мой MAC-адрес (не отображается в PiVPN) и IP-адрес, предоставленный PiVPN.

Поиск своего MAC-адреса

поиск mac адреса raspberry pi
Обычно MAC-адрес Raspberry Pi можно узнать с помощью маршрутизатора или используя ifconfig

Существует два способа узнать свой MAC-адрес. 

Самое удобное, что мой маршрутизатор TP-Link отобразил мой MAC-адрес "DC-A6-32-88-AC-97" в таблице клиентов DHCP.

Также вы можете открыть Терминал и ввести команду ifconfig.

Поскольку вы подключены через проводной Ethernet, найдите "eth0" и в строке, где написано эфирименно там находится ваш MAC-адрес.

Если вы не можете создать резервирование DHCP,

dhcp резервирование raspberry pi vpn или статический ip-адрес

В этом меню нажмите "Нет", чтобы установить статический IP-адрес.

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

Например, мой маршрутизатор присваивает подключенным устройствам IP-адреса от 192.168.0.100 до 192.168.0.249. Таким образом, я могу назначить PiVPN IP-адрес 192.168.0.250.

Затем он попросит вас ввести IP-адрес шлюза. Вы можете оставить его по умолчанию, если у вас нет другого шлюза. Обычно это IP-адрес вашего маршрутизатора.

Наконец, нажмите OK на PiVPN, пока не перейдете на страницу "Локальные пользователи".

Местные пользователи

На странице "Выберите пользователя" я выбрал единственного и неповторимого пользователя, pi.

В последних обновлениях ОС Raspberry Pi OS у вас больше нет "pi" в качестве пользователя по умолчанию, поэтому будьте внимательны.

Нажмите OK.

Режим установки

raspberry pi vpn wireguard

Здесь он спросит вас, хотите ли вы использовать WireGuard или OpenVPN. Я выбрал WireGuard, поскольку он был рекомендован.

Порт Wireguard по умолчанию

Если вам не нужен другой порт, вы можете просто нажать OK и использовать порт по умолчанию 51820.

Поставщик DNS

выберите google для dns провайдера pivpn raspberry pi vpn

Существует множество вариантов DNS-провайдеров, но я выбрал Google из-за простоты настройки.

Публичный IP-адрес или DNS

То, что вы видите здесь, является вашим публичным IP-адресом, и это будет IP-адрес, который вы будете использовать для подключения к VPN.

Неуправляемые обновления

неуправляемые обновления pivpn

Я включил автоматическое обновление, потому что мне нужны были обновления безопасности. 

Время добавления профилей клиентов

Используйте pivpn add для добавления клиента, затем используйте pivpn -qr для получения QR-кода для сканирования телефоном
Используйте pivpn add чтобы добавить клиента, затем используйте pivpn -qr чтобы получить QR-код для сканирования телефоном

Отлично! Вы добрались до меню "Установка завершена".

Настройка PiVPN на Raspberry Pi - это половина дела. Следующая половина - это настройка клиентских профилей, чтобы вы могли подключать к нему компьютеры, телефоны и другие устройства.

Вот как:

Откройте Терминал и введите "pivpn add".

Введите имя для клиента. Вы можете использовать что-то вроде "клиент1", "клиент2" или что-то более интуитивное, например "смартфон", "телевизор" и т. д.

Нажмите Enter.

Когда все будет готово, вы увидите сообщение об этом.

PiVPN создал бы файл .conf, который можно использовать с приложениями Wireguard.

Однако есть еще более простой способ получить конфигурацию на свой телефон.

Настройка телефона Android

В том же терминале введите pivpn -qr

Затем введите клиента, который вам нужен. Сейчас есть только один под названием "смартфон".

Итак, введите "smartphone" и нажмите Enter.

Если все прошло успешно, вы увидите QR-код, который можно отсканировать с помощью приложения Wireguard на смартфоне.

Проблемы с кодировкой приводят к появлению беспорядочного QR-кода PiVPN
Проблемы с кодировкой приводят к появлению беспорядочного QR-кода PiVPN

Однако, если этого не происходит, он будет выглядеть искаженным. Это происходит потому, что кодировка вашего терминала неправильная.

Если это произошло с вами, вы можете скопировать файл smartphone.conf на свой телефон и указать на него приложению Wireguard.

проволочная защита pivpn qr-код
Приложение Wireguard для Android сканирует QR-код

Другой способ - попытаться войти в Raspberry Pi по ssh и выполнить команду qrencode -t ansiutf8 < /home/pi/configs/smartphone.conf (измените "smartphone" на то, как вы назвали своего клиента).

QR-код был успешно сгенерирован, когда я использовал ssh на компьютере с Windows.

Настройка WireGuard на вашем компьютере

Вам нужно сделать две вещи. Загрузить приложение WireGuard для компьютера, а также получить файл .conf с Raspberry Pi.

Вы можете скачать Приложение WireGuard для Windows, Linux и Mac здесь.

После этого создайте новый профиль с помощью команды pivpn add

Введите имя вашего файла конфигурации. Я использовал msi-pcчто порождает msi-pc.conf файл.

Для того чтобы скопировать файл на компьютер, проще всего скопировать его с помощью команды. На ОС Raspberry Pi должен быть включен SSH-доступ.

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

pscp.exe [имя пользователя]@[your-pi-ip-address]:/home/pi/configs/[файл wireguard].conf [local-dir]

Вот каким оказался мой:

pscp.exe pi@192.168.0.241:/home/pi/configs/msi-pc.conf

В приложении нажмите "Добавить туннель" и найдите свой файл .conf.

Активируйте и готово!

Настройка переадресации портов на маршрутизаторе

Если вы выполнили все шаги до этого момента, вы сможете включить тумблер в приложении Wireguard, но не сможете выйти в интернет.

Это связано с тем, что вам нужно настроить маршрутизатор таким образом, чтобы он направлял трафик, обращающийся к порту 51820, на ваш Raspberry Pi.

Для этого перейдите в меню переадресации портов на маршрутизаторе. На моем маршрутизаторе TP-Link Archer оно было доступно в разделе Дополнительно > Переадресация NAT > Виртуальные серверы.

Вы поймете, что находитесь в нужном месте, когда он спросит вас о внешнем и внутреннем порте и внутреннем IP-адресе.

Этот экран, по сути, спрашивает: "Если мы получаем трафик из Интернета, используя порт 51820, на какое устройство мы его отправим и на какой порт?

В этом случае внешние и внутренние порты являются 51820, по умолчанию Wireguard. Протокол UDP и Внутренний IP это IP-адрес вашего Pi.

Как узнать, что моя VPN работает?

тестирование vpn, если работает

Вы будете знать, что ваша VPN работает, если ваш IP-адрес изменится.

Для того чтобы проверить VPN-соединение моего смартфона, я сначала нашел свой IP-адрес, прежде чем подключиться к VPN.

VPN сообщает, что мой адрес XXX.XX.88.241.

Я подключился к VPN, и мой IP-адрес изменился на XXX.XXX.169.39.

Таким образом, если ваш IP-адрес изменился, это означает, что вы успешно подключились.

Существует множество сервисов. Вы даже можете просто набрать в Google "what is my IP address", и Google, возможно, сможет сказать вам об этом на странице результатов поиска. Или еще, я использовал whatismyip.com.

Что произойдет, если мой IP-адрес в Интернете изменится?

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

Вопрос в том... как найти свой новый IP-адрес, когда вы не дома и отчаянно нуждаетесь в подключении к VPN?

Наше программное обеспечение PiCockpit позволяет легко узнать ваш публичный IP-адрес.

На скриншоте выше это мой публичный IP. Если он когда-нибудь изменится, вы можете обновить файлы .conf с новым адресом конечной точки.

PiCockpit также позволит вам перезагружать и диагностировать проблемы с Raspberry Pi удаленно через веб-интерфейс.

Следуйте этому руководству, чтобы установить PiCockpit.

В качестве альтернативы вы также можете получить динамическую службу DNS и имя хоста. Вот руководство.

Комментировать