Как превратить Raspberry Pi в роутер с поддержкой WireGuard VPN клиента

Если вдруг у вас есть Raspberry Pi, вы уже с ним наигрались и хотите найти ему полезное применение, то в этой статье я расскажу как быстро и просто превратить его в роутер, который может работать c VPN сервером по протоколу WireGuard. В виду того, что вычислительные возможности Raspberry Pi выше, чем у среднестатистического роутера, вы получите большую скорость Интернет при работе через VPN.
Ранее я публиковал статью, в которой рассказывал, как настроить WireGuard VPN клиент на роутере ASUS RT N56U. Вы можете сказать, что можно купить более мощный роутер или вообще роутер, который поддерживает WireGuard из коробки, но мне хотелось обойтись устройствами, которые были у меня в наличии. К тому же, что-то сделанное своими руками часто приносит большее удовольствие, так как ты начинаешь лучше разбираться в теме, да и греет душу мысль о том, что ты сэкономил деньги и можешь потратить их на что-то другое.
Как возникла идея
Купив себе Raspberry Pi 4 пару лет назад , я поигрался с ним, и как всегда, когда угасает интерес к вещи, положил на полку и забыл.
Когда я пытался установить VPN клиент на своей коллекции старых роутеров (TP-Link WR-841N, TP-Link WR-702N), и у меня это не выходило из-за их низких технических характеристик, я уже начал рассматривать Raspberry Pi в качестве альтернативы. У него было все для того, чтобы стать хорошим роутером: компактный размер, Ethernet разъем, встроенный модуль WiFi, производительный SoC и большой объем оперативной памяти, но мне попался ASUS RT N56U, и я решил использовать его.
На свой роутер АSUS я поставил прошивку OpenWRT и WireGuard клиент. Все работало, я даже написал статью о своем уcпешном опыте, но уж очень меня растраивала скорость Интернета через VPN. Да, она была больше, чем при использовании OpenVPN, достаточна для просмотра 4К видео, но WireGuard клиент на компьютере выдавал результат в несколько раз больше, так как производительность компьютера в разы выше производительности роутера.
Raspberry Pi 4 — это полноценный компьютер, отличающийся компактностью, на который можно установить множество операционных систем, такие как различные дистрибутивы Linux и даже Windows, поэтому я решил сделать из него роутер.
Поиск решения
Итак, задача о превращении Raspberry Pi 4 в роутер с поддержкой WireGuard была поставлена, и я принялся за ее решение.
Так как у мне удалось заставить свой роутер ASUS работать с протоколом WireGuard, используя прошивку OpenWRT, я и сейчас решил использовать ее.
OpenWRT – это Linux дистрибутив, основная задача которого – обеспечение работы роутера. Он имеет обширную библиотеку пакетов, позволяющую подстроить роутер под свои нужды.
WireGuard — это программное обеспечение и протокол, который проще и быстрее, чем OpenVPN и IPSec.
Первым делом я изучил видео и статьи в Интернете о том, как люди решали задачу, подобную моей. Но нужной мне полноценной инструкции от А до Я, я не нашел.
Больше всего меня увлекло эмоциональное и захватывающее видео от NetworkChuck, хотя оно подразумевало установку OpenVPN клиента, а не WireGuard, и подразумевалась настройка из командной строки, а не из GUI OpenWRT.
Как это часто бывает, видео немного устарело, и мне приходилось решать что-то уже по-своему, но когда я дошел до шага установки драйвера для WiFi USB адаптера, я не смог его установить, ни для одного из имеющихся у меня адаптеров.
Предлагаемое на форумах решение в виде компиляции исходного кода драйверов для OpenWRT мне с одной стороны показалось интересным и позволяющим получить новые знания, но с другой – нудным и менее универсальным. Хотелось какое-то другое решение.
У меня есть дорожный роутер TP-Link WR-702N, у которого всего лишь один разъем Ethernet и один встроенный модуль WiFi, я подумал, что ничто не мешает мне сделать что-то похожее из моего Raspberry Pi. Не знаю, для кого как, но для меня, когда я вижу, что задачу можно решить – это вдохновляет и мотивирует.
В итоге я нашел решение для своей задачи. Оно решает проблему подключения устройств из локальной сети к VPN, позволяет узнать новое применение вашему Raspberry Pi, разнообразить свой досуг или удивить друзей и знакомых необычным применением малинки.
Что понадобится
- Raspberry Pi 4.
- Роутер с доступом в Интернет.
- Ethernet кабель.
- Сетевой адаптер питания на 5В 3A с кабелем USB type C.
- MicroSD карта. Достаточно и 4GB.
- Адаптер MicroSD-SD и ноутбук с кардридером или USB MicroSD кардридер.
Решение задачи
- Заходим на страницу официального сайта OpenWRT, посвященную Raspberry Pi и загружаем свежий образ OpenWRT для Raspberry Pi 4. На момент написания статьи это версия 22.03.2
- Записываем образ OpenWRT на Micro SD карту. Я делал это в Windows при помощи программы balenaEtcher.
- Соединяем Ethernet кабелем компьютер и Raspberry Pi . Включаем Raspberry Pi. По умолчанию Raspberry Pi 4 c установленным OpenWRT имеет статический IP адрес 192.168.1.1, не имеет пароль для входа, также по умолчанию отключен WiFi интерфейс. Поэтому нужно включить и настроить WiFi, а также желательно поменять IP адрес и установить пароль.
- Настраиваем WiFi. Network->Wireless->Edit->Interface Configuration. Вводим настройки на владках General Setup, Advanced Settings.


- Устанавливаем пароль. System->Administration.

- Меняем IP адрес и убираем Ethernet интерфейс из LAN, чтобы использовать Ethernet интерфейс в качестве WAN. Network->Interfaces->Edit->LAN.

- Отключаем Raspberry Pi от сетевой карты компьютера.
- Подключаемся к точке доступа, созданной на Raspberry Pi. Открываем в браузере URL c адресом IP, который вы назначили Raspberry Pi.
- Настраиваем WAN порт Raspberry. Network->Interfaces->Add New Interface. В качестве WAN порта мы будем использовать Ethernet разъем Raspberry Pi. Так как разъем будет использоваться как WAN порт, а доступ к Raspberry Pi будет осуществляться через WiFi, при неверных настройках, которые нарушат работу интерфейса WiFi вам прийдется заново записать образ OpenWRT на microSD карту.

- Выключаем Raspberry Pi. Подключаем WAN порт Raspberry Pi к LAN порту домашнего роутера. Включаем Raspberry Pi.
- Убеждаемся, что доступ в интернет есть. Network->Diagnostics.

- Настраиваем файервол для WAN интерфейса. Network->Interfaces->WAN->Edit->Firewall Settings.

- Заходим на сайт https://www.myip.com/ чтобы узнать свой внешний IP адрес.
- Устанавливаем WireGuard. System->Software. Обновляем список пакетов (Update lists. ), находим пакет luci-i18n-wireguard-en и устанавливаем его.
- Перегружаем Rasperry Pi. System->Reboot.
- Устанавливаем WireGuard на VPS сервер. Как это сделать я подробно расписал в своей статье.
- Добавляем Wireguard интерфейс. Network->Interfaces->Add New Interface. -> Create Interface

- Вводим данные на вкладке General Settings. Здесь необходимо ввести Private Key, Public Key, IP Address для созданного WireGuard интерфейса, который теперь находится на Raspberry Pi. Public Key можно посмотреть в секции Peer в конфиграционном файле /etc/wireguard/wg0.conf на VPS сервере с установленным WireGuard или получить из имеющегося Private Key.

- Заходим на вкладку Peers. Нажимаем Add Peer. Вводим оставшиеся данные для WireGuard. Это параметры интерфейса WireGuard, который находится на удаленном сервере.

- Удостоверяемся, что WireGuard интерфейс работает. RX и TX должны содержать ненулевые значения.

- Настраиваем Firewall. Network->Firewall->Add.

- Настраиваем маршрутизацию. Network->Routing->Add. В поле Targetвводится IP адрес вашего сервера WireGuard фомате CIDR (/32).

- Настраиваем DNS. Network->Interfaces->WAN->Edit->Advanced Settings.

- Проверяем работу VPN. Заходим на сайт https://www.myip.com/ и смотрим на свой внешний IP. Если он отличается от того, что был до включения VPN, то VPN работает.
- Если все устраивает, то можно сделать резервную копию micro SD карты при помощи программы Win32 Disk Imager. Это позволит хранить всю настроенную OpenWRT для вашего Raspberry Pi на локальном диске компьютера и быстро развернуть уже настроенный OpenWRT в случае, если собьются настройки.
Надеюсь, что я вас не сильно утомил, и вы теперь наслаждаетесь результатами своего труда.
Сравнение с решением от NetworkChuck
Мое решение отличается от решения NetworkChuck следующим:
1. Я использую только один WiFi интерфейс, который работает в качестве точки доступа, а не два, один из которых (встроенный) работает в качестве WiFi клиента к точке доступа, предоставляющей доступ в Интернет, а второй (USB WiFi адаптер, желательно с антенной) в качестве точки доступа.
2. Я выполняю все настройки, используя исключительно GUI OpenWRT.
3. Для VPN я использую WireGuard, а не OpenVPN.
У решения от NetworkChuck есть ряд преимуществ:
1. Так как не нужен проводной доступ роутеру, раздающему Интернет, решение подходит для публичной точки доступа в кафе или в аэропорту (если конечно публичная точка доступа позволит это сделать).
2. Так как для организации точки доступа используется USB WiFi адаптер с антенной, покрытие созданной WiFi сети будет шире и стабильнее.
У моего решения тоже есть ряд преимуществ:
1. Неподготовленному пользователю проще выполнить все в GUI OpenWRT по приведенным скриншотам, чем вводить все в комадной строке.
2. Cкорость Интернет, у моего решения будет выше и стабильнее, так как я подключаю Raspberry Pi к роутеру с Интернет через проводное соединение и использую WireGuard вместо OpenVPN.
Оставляю вам возможность проверить решение от NetworkChuck, если у вас окажется USB WiFi адаптер, для которого вы сможете установить драйвер в OpenWRT.
Анализ результатов
У меня дома не было лабораторных условий для проведения эксперимента.
Подключившись к VPN серверу, установленному на VPS от PulseHeberg и проверив скорость Интернета, я получил заветные цифры. Если учитывать, что у меня Интернет от провайдера с заявленной скоростью 100 МБ/c, я не уже не вижу смысла улучшать скорость соединения.

Я надеюсь, что вы получите результат не хуже моего. Буду признателен, если вы в комментариях напишете, какие результаты получились у вас. Желательно указать версию Raspberry PI, версию OpenWRT, заявленную скорость интренет вашего провайдера, на каком хостинге располагается WireGuard VPN сервер, и полученные вами результаты в SPEEDTEST.
Выводы
Raspberry Pi подходит для создания компактного роутера с поддержкой WireGuard. Скорость Internet через Wireguard VPN на Rapsberry Pi практически такая же как и при работе без него.
Теоретически можно попробовать сделать роутер и из Raspberry Pi 3, но я не проверял и думаю скорость VPN будет значительно ниже.
К спорным моментам можно отнести:
- Cтоимость Raspberry Pi (роутер, на который можно поставить OpenWRT все-таки стоит дешевле).
- Доступность Raspberry Pi в контексте происходящих сейчас событий.
- Мощность антенны встроенного модуля WiFi (я считаю, что у обычного роутера антенна получше).
Сфера применения Raspberry Pi не ограничивается домашним роутером с VPN, я находил и другие интересные решения, способные удивить вас и ваших знакомых. Я думаю, что это тема моей следующей статьи.
Как сделать роутер из raspberry pi

Безопасность

Интернет

Интернет-маркетинг

Браузеры

Chrome

Internet Explorer

Firefox

Opera

Другие браузеры

Книги

Пиринговые сети

Поисковики


Другие поисковики

Поисковая оптимизация

Программы

Каталоги

Инструменты безопасности

Мониторинг сайтов, RSS

Перевод

Поиск и загрузка

Воспроизведение аудио, видео

Специализированный поиск

Другие программы

Интернет-маркетинг

Безопасность в Интернете

Методы и инструменты

Поисковые системы

Поисковая оптимизация

Научно-популярные
ПРОЕКТЫ:





Ссылки:


| Как с Raspberry Pi сделать маршрутизатор Wi-Fi |
|
Хотите иметь отдельную сеть Wi-Fi для своих гостей? Или домашнюю сеть, которая работает с альтернативной конфигурации DNS? Вам больше не придется покупать новый Wi-Fi маршрутизатор, чтобы сделать это — Вы можете превратить свой Raspberry Pi (RPi) в Wi-Fi маршрутизатор. Мы проведем Вас через процесс настройки RPi сети Wi-Fi. USB Wi-Fi адаптер (например, Edimax EW-7811Un — беспроводной 802.11b/g/n нано USB адаптер — крошечный и дешевый) SD-карта с установленной ОС Raspbian (руководство, если Вам нужно) Прежде, чем мы приступим, хотим указать на важность покупки правильного USB Wi-Fi адаптера. Как Вы, возможно, почувствовали с другими типами устройств, что не все они plug-n-play. Иногда Вам было необходимо загрузить драйвер, чтобы заставить их работать. В то время как драйверы, как правило, легко доступны для компьютеров Windows, — это совсем другой мир для Linux и RPi. Вот почему очень важно купить Wi-Fi адаптер, который упоминает «Linux» в описании продукта или пакета. Автор использует Edimax — беспроводной 802.11b/g/n нано USB адаптер, потому что он дешевый и с ним очень легко работать. Рекомендую Вам сделать то же самое — это поможет сэкономить много головной боли.
Убедитесь, что Wi-Fi адаптер работает на Raspberry Pi Вставьте адаптер USB Wi-Fi в один из свободных портов USB на RPi. Подайте питание на RPi. В этот момент Вы должны либо подключиться к RPi с помощью кабеля Ethernet, или использовать клавиатуру и монитор для доступа к RPi. Если нужна помощь с внешним подключения к RPi, то прочитайте статью, как удаленно получить удобный защищенный доступ к RPii с помощью проводного подключения к сети. После загрузки и регистрации Вы должны убедиться, что RPi нашел свой новый беспроводной адаптер. Чтобы посмотреть, какая периферия найдена операционной системой при загрузке, выполните следующую команду: dmesg | more Вы можете использовать пробел, чтобы прокрутить страницу вниз за один раз — в конце увидите что-то похожее на следующие строки [ 3.282651] usb 1-1.2: new high-speed USB device number 4 using dwc_otg Это означает, что операционная система признала USB Wi-Fi адаптер с помощью одного из встроенных драйверов (можете вернуться к терминалу, нажав Q). Все, что осталось, это настроить подключение Wi-Fi. Устновка программного обспечения маршрутизатора Для того, чтобы RPi выступал как Wi-Fi роутер и точка доступа, необходимо установить некоторое дополнительное программное обеспечение на RPi. Вам необходимо следующее программное обеспечение: hostapd hostapd является службой (демоном) пользователя для серверов точек доступа и аутентификации. Это означает, что он может превратить Ваш RPi в точку доступа и другие компьютеры смогут подключиться. Он также будет заниматься безопасностью таким образом, чтобы можно было настроить Wi-Fi с паролем. isc-dhcp-server isc-dhcp-server является реализацией Internet Systems Consortium DHCP-сервера. DHCP-сервер отвечает за назначение адресов компьютерам и устройствам, подключенным к точке доступа Wi-Fi. Чтобы установить ПО для DHCP выполните следующую команду: Далее необходимо программное обеспечение для HostAPD. Потому, что драйвер точки доступа нашего USB-модуля не поддерживает родное приложение HostAPD, нам необходимо установить специальную версию, собранную с драйвером, который необходим. Это может быть сделано с помощью следующих команд, выполненных одна за другой: wget https://github.com/jenssegers/RTL8188-hostapd/archive/v1.1.tar.gz Это займет немного времени. Для настройки DHCP-сервера откройте файл /etc/dhcp/dhcpd.conf в Вашем любимом текстовом редакторе. Вы можете открыть его в нано с помощью команды: sudo nano /etc/dhcp/dhcpd.conf # If this DHCP server is the official DHCP server for the local Теперь файл должен выглядеть следующим образом:
Далее нам нужно указать сеть и сетевые адреса, которые DHCP-сервер будет обслуживать. Это делается путем добавления следующего блока конфигурации в конец файла: subnet 192.168.10.0 netmask 255.255.255.0 < Это позволит DHCP-серверу раздавать IP-адреса с 192.168.10.10 по 192.168.10.20 в собственной локальной сети. Специалисты по конфигурации сетей могут изменить эти значения, если хотят использовать другие сетевые адреса и/или другие серверы DNS. Приведенная конфигурация будет использовать DNS-серверы Google на 8.8.8.8 и 8.8.4.4. Чтобы сохранить файл, нажмите Ctrl+O, чтобы записать файл на диск — потом можно выйти из нано, нажав Ctrl+X. Если нано спросит, хотите сохранить измененный буфер, то нажмите «Y», а затем нажмите Enter для подтверждения имени файла. Следующий файл для редактирования /etc/default/isc-dhcp-server , который Вы можете открыть в нано помощью следующей команды: sudo nano /etc/default/isc-dhcp-server Это позволит DHCP-серверу раздавать сетевые адреса через беспроводной интерфейс. Сохраните файл и выйдите из нано . На последнем шаге настройки DHCP-сервера необходимо настроить статический IP-адрес для адаптера беспроводной сети. Это делается в файле /etc/network/interfaces — перед его открытием убедитесь, что интерфейс WLAN не работает. Сделайте это с помощью следующих команд: sudo ifdown wlan0
Это позволит беспроводному адаптеру взять адрес 192.168.10.1 в нашей новой локальной сети. Не забудьте закомментировать последние 3 строки файла. На этом настройка DHCP-сервера завершена, однако, мы все еще не можем подключиться к нашей новой сети, потому что не установлена точка доступа. Это делается путем настройки программы hostapd. Настройка HostAPD Чтобы настроить HostAPD, откройте файл /etc/hostapd/hostapd.conf в текстовом редакторе. Вы можете открыть его в нано с помощью следующей команды: sudo nano /etc/hostapd/hostapd.conf Стандартная конфигурация создаст новую беспроводную сеть под названием wifi с паролем YourPassPhrase. Вы можете изменить параметр «ssid = wifi» по имени WiFi SSID, которое хотите, а в параметре «wpa_passphrase = YourPassPhrase» указать код доступа. Это завершает конфигурацию программного обеспечения HostAPD нашей точки доступа. Следующим будет разрешение NAT. Включенне NAT Следующим шагом, прежде чем мы сможем запустить точку доступа, является настройка трансляции сетевых адресов (Network Address Translation — NAT). Это позволит убедиться, что наш сетевой трафик может достигнуть Интернета, используя соединение через Ethernet-кабель RPi с интернет-маршрутизатором. Откройте etc/sysctl.conf з: Теперь создадим фактическую трансляцию между портом локальной сети под названием eth0 и беспроводной картой под названием wlan0 . sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE Теперь с настроенным NAT настало время для первого запуска точки доступа. Теперь Вы готовы запустить DHCP-сервер и приложение HostAPD точки доступа. Это можно сделать командой: sudo service isc-dhcp-server start В этот момент Вы должны быть в состоянии найти беспроводную сеть на ноутбуке, подключиться к ней и выйти в Интернете! Завершенне. В то время, как очень хорошо, что теперь у Вас есть своя RPi, которая работает как беспроводная точка доступа, но не все так хорошо, потому что Вы должны вводить логин каждый раз, когда перегружаетесь, чтобы запустить программное обеспечение HostAPD и DHCP. Чтобы избежать этого, выполните следующие команды: Чтобы избежать необходимости настраивать NAT каждый раз, когда перезагружаете RPi, можете сделать следующее. Выполните данную команду для резервного копирования NAT конфигурации: Добавьте следующее в конец файла /etc/network/interfaces для восстановления конфигурации, когда поднимется сетевой интерфейс: up iptables-restore < /etc/iptables.ipv4.nat Файл должен выглядеть так:
В этот момент попробуйте перезагрузить RPi, чтобы убедиться, что все работает как положено — можно перезагрузить с помощью команды: sudo reboot Надеюсь, Вы снова увидите свою новую точку доступа в онлайн. После того, как она поднимется, Вы сможете подключиться к ней и получить доступ к Интернету. (Источник EN: raspberrypihq.com) Останні статті за темою:
Wifi роутер на Raspberry Pi
Роутер должен не только раздавать интернет не только из Ethernet-порта, но и из одного WiFi-адаптера на другой. Это бывает очень полезно в путешествиях. Например, в гостинице легко оказаться в номере, куда местная точка доступа плохо добивает. А мощный WiFi-адаптер поймает даже слабый сигнал и раздаст его на все имеющиеся планшеты и телефоны. Это также может помочь сэкономить деньги там, где плата за интернет берётся с каждого устройства отдельно. Подготовительные шагиПрактически каждую команду из этой статьи нужно запускать под super user’ом. Можно запустить под super user’ом Midnight Commander и спокойно редактировать им системные файлы и выполнять любые команды.
Обновление пакетовВсе мануалы по Raspberry Pi начинаются тем, что советуют обновить всё, что можно. Следуя канону, напишу эти команды и я:
Можно ещё обновить сам Raspberian.
Удалённый доступ к Raspberry PiЕсли у вас не включён SSH, то стоит его включить в настройках Raspberry Pi. Запустить настройки можно командой:
Там идём в раздел Advanced Options -> SSH. И включаем их.
Raspberry PI config utility Для подключения к Raspberry Pi через ssh можно использовать mRemoteNG, а можно утилиту ssh , она есть и в Linux и Windows.
Здесь 192.168.1.2 — это IP-адрес Raspberry, который выдал ей роутер моей локальной сети. Чтобы узнать, какой IP-адрес получила ваша Raspberry можно зайти в Admin-интерфейс вашего домашнего роутера или посмотреть информацию об интерефейсах на самом Raspberry через команду ifconfig . Для удалённого доступа к рабочему столу Raspberry я пытался настроить VNC. Потратил много времени в итоге ничего хорошего не вышло. Проще использовать XRPD.
После выполнения этой команды больше ничего настраивать не надо. Для подключения к Raspberry из Windows берём mstsc или программу вроде mRemoteNG и подключаемся к Raspberry Pi 2 используя логин и пароль юзера Raspberrian.
Доступ по rdp через MRemote Кстати, удобно настраивать Raspberry Pi, если подключить его к локальной сети через Ethernet-кабель. Таким образом настройки WiFi-адаптеров не отрубят вас от Raspberry. При настройке роутера удобно после каждого шага делать бэкап SD-карточки, для этого можно воспользоваться чем-нибудь вроде Acronis True Image или линуксовой утилиты dd: так будет легко откатиться назад, если что-то пошло не так. При настройке роутера потребуется править несколько конфигурационных файлов. Мне показалось удобным создать папку, вроде /home/pi/vrouter и накидать туда soft-link’и на все нужные конфиги. Это стоит делать по ходу установки, потому что сами конфиги появляются только после установки соответсвующих программ.
Настройка интерфейсов (Старые версии Raspberrian до Stretch)Чтобы у знать, какие интерфейсы у нас есть, выполним команду ifconfig .
Если вместо wlan0, eth0 и т.п. вы видите что-то вроде «wlx00e01ce3030f» или «enxb822ebfb32ad», у вас включены «predictable network interface names» их можно выключить в raspi-config . На выводе команды видны следующие интерфейсы:
Роутер подключён к сети 192.168.1.0 раздаёт интерентет в сеть 10.0.0.0 Раздавать интернет соит имеено с адаптера wlan0. Таким образом мы сможем отключить второй адаптер, если захотим использовать eth0, как источник интеренета и wlan1 нам окажется без надобности. Изменим конфигурацию интерфейсов следующим образом:
Смысл этой конфигурации в том, что eth0 и wlan1 настраиваются автоматически. А wlan0 имеет статический IP-адрес 10.0.0.1. По этому IP-адресу можно будет подключаться к Raspberry Pi по SSH или VNC даже если остальные адаптеры будут выключены. Wlan1 берёт настройки подключений к интернету из /etc/wpa_supplicant/wpa_supplicant.conf . Этот файл может понадобиться в будущем, для добавления новых сетей. Вот пример wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network= < ssid="ASUS" psk="password123" key_mgmt=WPA-PSK >network= Настройка интерфейсов в Raspberrian StretchВ Raspberrian Stretch сильно изменилась настройка интерфейсов и, думаю, что этот момент ещё будут дорабатывтаь и менять дальше. На текщуй момент (4 апреля 2018 года) управлять интерфейсами нужно через /etc/dhcpcd.conf и через wpa_supplicant. Погрузиться в эту тему можно вот с этого поста https://raspberrypi.stackexchange.com/a/37921/32956. Установим статический IP для интерфейса wlan0. Для этого нужно в конец файла добавить сдедующие 2 строки:
Остальные интерфейсы будут подключаться к интернету автоматически. На текущий момент в Stretch есть такая проблема, что wpa_supplicant всё равно пытается подключить wlan0 к доступной WiFi сети и получить IP. Это нам не нужно, потому что wlan0 будет использоваться hostapd и должен иметь статический IP 10.0.0.1. Есть два способа, как можно запретить wpa_supplicant подключать wlan0 к сети.
заменить на
Где b8:27:eb:53:4d:fd — это mac-адрес встроенного адаптера (его можно узнать с помощю команды ifconfig ). DnsmasqDnsmasq — это DHCP-сервер, который будет раздавать IP-шники в нашей новой сети. Установить его очень просто:
Dnsmasq сам подымет свой сервис, а вам останется его сконфигурировать. Стоит сказать, что dnsmasq.config хорошо документирован.
interface=wlan0 обозначает интерфейс, на котором dnsmasq будет ожидать входящих DHCP-запросы. Wlan1 и eth0 — интерфейсы, которыми мы ловим интернет. Sysctl.confВключим пресылку пакетов, для этого поправим файл /etc/systcl.conf:
По умолчанию, все настройки в этом файле закомментировны. Для настройки роутера важно, чтобы были раскоментированы следующие настройки:
IptablesНастроим NAT. Пусть настройки iptables устанавливаются при запуске Raspberry, для этого поправим файл rc.local .
Заведём две переменные: SOURCE — адаптер-источник интернета — и DEST — адаптер, раздающий интернет. Так нам будет удобно удобно поменять назначение адаптеров.
В будушем, чтобы изменить источник интернета с wlan1 на eth0 нам потребуется всего лишь поменять ЮSOURCE=wlan1 на SOURCE=eth0 . Другие файлы конфигурации менять не прийдётся. Hostapdhostapd — это утилита, которая будет делать точку доступа из WiFi-адаптера. Она переводит WiFi-адаптер в master mode и сама поднимает bridge между адаптерами. hostapd можно запускать из консоли командой hostapd [path_to_config] . Но нам нужно, чтобы wlan0 становился точкой доступа сразу же после загрузки Raspberry. Потому нам нужно запустить hostapd, как сервис. Для этого мы настроим путь до конфига hostapd в файле /etc/default/hostapd .
Теперь настроим конфиг hostapd.conf . Именно с ним возникают различные сложности.
Для начала можно попробовать использовать конфиг для простой сети без авторизации с дефолтным драйвером:
Если у вас получилось подключиться к интернету с такой конфигурацией, значит можно настраивать авторизацию. А если подключиться не вышло, то, вероятно, проблема с драйвером. Нужно найти описание вашей сетевой карты и изучить, как установаить драйвер вашей сетевоей карты в Raspberrian. Найти информкцию по вашему адаптеру вам поможет https://wikidevi.com. Мой конфиг выглдяит следующим образом.
Посмотреть активен ли сервис hostapd можно с помощю команды service —status-all . Failed to update rate sets in kernel moduleПри запуске hostapd у меня он выдавал ошибку Failed to update rate sets in kernel module. Вылечить её конфирурированием я никак не смог, потому собрал hostapd из исходников. На момент написания статьи (RASPBIAN WHEEZY) в репозиториях Raspberian лежал hostapd 1.0, а из исходников я собрал версию 2.4. Вместе с RASPBIAN JESSIE в репозиториях появился hostapd 2.3, таким образом 2.3 вы можете поставить просто выполнив apt-get install hostapd . Сборка hostapd из исходников.Я собирал hostapd по этому мануалу: http://quadfinity.blogspot.ru/2014/09/compile-latest-hostapd-v2.3-on-Raspberry-Pi-or-ODROID.html Однако я бы советовал зайти на страницу https://w1.fi/cgit/hostap/refs/tags и посмотреть, что там есть за версии. На момент написания этой статьи версия hostap_2_4 неплохо работала.
Версии hostapd PerformanceНа мой взгляд, быстродействие WiFi-роутер на Raspberry зависит не сколько от самой Raspberry, сколько от WiFi-адаптера, который был использован для раздачи интерента. Например, китайский No-Name адаптер дал мне скорость в ≈20 мегабит/с, а Asus N14 чуть больше 30 мегабит/с. Стоит ещё учесть, что WiFi-адаптер может потреблять много энергии, больше, чем способен дать USB-порт Raspberry Pi. В этом случае адаптер может понизить скорость, понизив своё энергопотребление. Побороться с этим можно спомощю USB-хаба с дополнительным питанием, либо использовав специальный USB-кабель. Стоит обратить на некоторые опции, в hostpad.conf , которые могут улучшить быстродействие:
Превращение Raspberry Pi в WiFi роутер (маршрутизатор)Технология WiFi в нашей время является одной из самых популярных технологий для осуществления беспроводной связи. Но в подобных условиях особенно остро стоит проблема перехвата пользовательской информации. И если вы хотите защитить свои данные от несанкционированных посягательств на них со стороны других лиц, то для использования технологии WiFi желательно использовать свой собственный роутер (маршрутизатор). И в данной статье мы рассмотрим создание своего собственного WiFi роутера на основе платы Raspberry Pi. Ранее на нашем сайте мы также рассматривали создание ретранслятора WiFi сигнала на основе модуля ESP8266. Что такое OpenWrtOpenWrt (Open Wireless Router) – это операционная система с открытым исходным кодом на основе Linux, которая была разработана для встраиваемой электроники. Она позволяет разработчикам модифицировать (настраивать) программное обеспечение на совместимых сетевых устройствах. Благодаря ей нам доступен следующий функционал:
В данном проекте мы рассмотрим установку программного обеспечения OpenWrt на плату Raspberry Pi, которую будем использовать в качестве роутера, работающего мостом между роутером от вашего интернет-провайдера и вашим компьютером. Необходимые компоненты
Принципы работы нашего проектаОсновное устройство, которое предоставляет нам доступ в сеть интернет, это WiFi роутер от провайдера, но вместо непосредственного подключения наших устройств к этому роутеру мы будем подключать к нему нашу плату Raspberry Pi с помощью сетевого (LAN) кабеля. И в этом случае наша плата Raspberry Pi с загруженной в нее операционной системой (ОС) OpenWrt будет работать как точка доступа WiFi для всех ваших остальных устройств. В данной статье мы рассмотрим как установить и настроить OpenWrt на плату Raspberry Pi, чтобы эффективно использовать ее в качестве персонального WiFi роутера. Принцип работы нашего проекта роутера наглядно представлен в следующем видео: Установка OpenWrt на плату Raspberry Pi и настройка точки доступа WiFi1. Вначале необходимо скачать файлы образа самой последней стабильной версии OpenWrt с ее официального сайта. Выберите модель платы Raspberry Pi, которую вы будете использовать, и скачайте файл образа EXT4 (мы рекомендуем использовать плату Raspberry Pi 3-й или 4-й серии). 2. После успешного скачивания последней сборки ОС OpenWrt нам необходимо поместить ее на SD карту, но для этого нам понадобится два дополнительных инструмента: SD Card Formatter для очистки SD карты и Balena Etcher для записи файла образа на SD карту. Их можно скачать с их официальных сайтов. 3. После того как вы скачаете и установите эти программы, вставьте SD карту в модуль чтения для нее и затем в компьютер. Откройте SD Card Formatter > выберите SD карту > нажмите на format. 4. Откройте программу Balena Etcher Tool и выберите в ней “Flash from file option”. 5. Выберите файл образа (image file), который вы загрузили с официального сайта OpenWrt на шаге 1. 6. Нажмите на кнопку Select Target и выберите вашу карту. 7. И, наконец, нажмите на кнопку Flash Button. После этого OpenWrt будет смонтирована на вашу SD карту и теперь ее можно будет вставлять в плату Raspberry Pi. 8. Перед загрузкой Raspberry Pi нам необходимо указать IP шлюз по умолчанию (default gateway) для нашего роутера от провайдера. Для этого подключите ваш Wi-fi роутер к компьютеру, откройте CMD (командную строку) и выполните в ней следующую команду: |









