Настройка 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?
Прежде всего, вам понадобится Raspberry Pi.
Идеально было бы иметь Raspberry Pi с проводным соединением ethernet, например Raspberry Pi 4, для максимальной надежности и скорости.
Если вы выберете эти устройства, то вам понадобится кабель ethernet для подключения Raspberry Pi к маршрутизатору.
А для того, чтобы обеспечить подключение Raspberry Pi через проводную сеть ethernet, необходимо отключить беспроводное соединение.
Однако PiVPN успешно работает на Raspberry Pi нулевой серии, поэтому вы можете использовать и его.
Установите 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-адрес.
Самое удобное, что мой маршрутизатор TP-Link отобразил мой MAC-адрес "DC-A6-32-88-AC-97" в таблице клиентов DHCP.
Также вы можете открыть Терминал и ввести команду ifconfig.
Поскольку вы подключены через проводной Ethernet, найдите "eth0" и в строке, где написано эфирименно там находится ваш MAC-адрес.
Если вы не можете создать резервирование DHCP,
В этом меню нажмите "Нет", чтобы установить статический 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.
Режим установки
Здесь он спросит вас, хотите ли вы использовать WireGuard или OpenVPN. Я выбрал WireGuard, поскольку он был рекомендован.
Порт Wireguard по умолчанию
Если вам не нужен другой порт, вы можете просто нажать OK и использовать порт по умолчанию 51820.
Поставщик DNS
Существует множество вариантов DNS-провайдеров, но я выбрал Google из-за простоты настройки.
Публичный IP-адрес или DNS
То, что вы видите здесь, является вашим публичным IP-адресом, и это будет IP-адрес, который вы будете использовать для подключения к VPN.
Неуправляемые обновления
Я включил автоматическое обновление, потому что мне нужны были обновления безопасности.
Время добавления профилей клиентов
Отлично! Вы добрались до меню "Установка завершена".
Настройка PiVPN на Raspberry Pi - это половина дела. Следующая половина - это настройка клиентских профилей, чтобы вы могли подключать к нему компьютеры, телефоны и другие устройства.
Вот как:
Откройте Терминал и введите "pivpn add".
Введите имя для клиента. Вы можете использовать что-то вроде "клиент1", "клиент2" или что-то более интуитивное, например "смартфон", "телевизор" и т. д.
Нажмите Enter.
Когда все будет готово, вы увидите сообщение об этом.
PiVPN создал бы файл .conf, который можно использовать с приложениями Wireguard.
Однако есть еще более простой способ получить конфигурацию на свой телефон.
Настройка телефона Android
В том же терминале введите pivpn -qr
Затем введите клиента, который вам нужен. Сейчас есть только один под названием "смартфон".
Итак, введите "smartphone" и нажмите Enter.
Если все прошло успешно, вы увидите QR-код, который можно отсканировать с помощью приложения Wireguard на смартфоне.
Однако, если этого не происходит, он будет выглядеть искаженным. Это происходит потому, что кодировка вашего терминала неправильная.
Если это произошло с вами, вы можете скопировать файл smartphone.conf на свой телефон и указать на него приложению Wireguard.
Другой способ - попытаться войти в 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 [email protected]:/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 работает, если ваш 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 и имя хоста. Вот руководство.
Buen dia espero se encuentren bien, tengo una consulta a ver si me pueden ayudar, estoy en venezuela, yo quisiera trabajar por internet pero necesito que no me detecten, mi IP va a estar en estados unidos, lo que quiero es preguntar... como configuro el raspberry para poder conectarme con la ip residencial alla en eeuu y trabajar en venezuela sin ser detectado y no me baneen las paginas, ademas de eso configurar mi navegador gracias.
Джон,
Para eso necesitarias tener una raspberry pi en EEUU configurada como servidor VPN (En la casa de un amigo o familiar) y tu PC o LAPTOP en Venezuela tendria q tener el cliente vpn. De esa manera te conectarias desde venezuela a eeuu via vpn y ya serias visto como si estuvieras alla.
[...] можно также использовать в качестве VPN-сервера с помощью таких настроек, как OpenVPN или WireGuard. Для повседневного использования можно использовать любую из этих настроек, и обе они делают [...].
[...] Конечно, можно просто превратить Raspberry Pi в VPN, о чем мы уже писали ранее. [...]