Мобильный интернет raspberry pi

Raspberry Pi 3 и USB Modem ZTE MF823D

Мне всегда было интересно, а можно ли к миникомпьютеру Raspberry Pi 3 Model B подключить имеющийся у меня модем (USB модем LTE USB Modem ZTE MF823D) от Beeline который я проапгрейдил/отучил от SIM карты изначального заточенного под него поведения, а оператора TELE 2. Т.к. текущий тарифы куда выгоднее, к примеру за 400р целых 12Gb интернета. А в моих проектах это как нельзя кстати. Так вот ниже все что потребовалось, чтобы мой миникомпьютер научился ходить в интернет без привязки к проводному домашнему интернету.

Подключаю модем в любой свободный порт на Raspberry Pi 3, открываю консоль и вижу всю информацию по нему как опознала его система:

pi@raspberrypi:~ $ dmesg -T

[Sun Apr 9 14:16:29 2017] usb 1-1.2: new high-speed USB device number 4 using dwc_otg

[Sun Apr 9 14:16:29 2017] usb 1-1.2: New USB device found, idVendor=19d2, idProduct=1403

[Sun Apr 9 14:16:29 2017] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[Sun Apr 9 14:16:29 2017] usb 1-1.2: Product: ZTE Technologies MSM

[Sun Apr 9 14:16:29 2017] usb 1-1.2: Manufacturer: ZTE,Incorporated

[Sun Apr 9 14:16:29 2017] usb 1-1.2: SerialNumber: MF825C0ZTED00000CP&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&0

[Sun Apr 9 14:16:29 2017] usb-storage 1-1.2:1.2: USB Mass Storage device detected

[Sun Apr 9 14:16:29 2017] scsi host0: usb-storage 1-1.2:1.2

[Sun Apr 9 14:16:29 2017] usbcore: registered new interface driver cdc_ether

[Sun Apr 9 14:16:29 2017] rndis_host 1-1.2:1.0 usb0: register ‘rndis_host’ at usb-3f980000.usb-1.2, RNDIS device, 36:4b:50:b7:ef:2d

[Sun Apr 9 14:16:29 2017] usbcore: registered new interface driver rndis_host

[Sun Apr 9 14:16:29 2017] usbcore: registered new interface driver rndis_wlan

[Sun Apr 9 14:16:30 2017] scsi 0:0:0:0: CD-ROM CWID USB SCSI CD-ROM 2.31 PQ: 0 ANSI: 2

[Sun Apr 9 14:16:30 2017] sr 0:0:0:0: [sr0] scsi-1 drive

[Sun Apr 9 14:16:30 2017] cdrom: Uniform CD-ROM driver Revision: 3.20

[Sun Apr 9 14:16:30 2017] sr 0:0:0:0: Attached scsi CD-ROM sr0

[Sun Apr 9 14:16:30 2017] sr 0:0:0:0: Attached scsi generic sg0 type 5

Смотрю какое устройство сейчас в системе:

pi@raspberrypi:~ $ lsusb | grep ZTE

Bus 001 Device 004: ID 19d2:1403 ZTE WCDMA Technologies MSM

USB модем поднимает в системе устройство с присвоенным IP адрес от DHCP— сервиса (по умолчанию: 192.168.0.1) на самом модеме:

pi@raspberrypi:~ $ ifconfig usb0

usb0 Link encap:Ethernet HWaddr 36:4b:50:b7:ef:2d

inet addr:192.168.0.182 Bcast:192.168.0.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:60 errors:0 dropped:0 overruns:0 frame:0

TX packets:37 errors:0 dropped:0 overruns:0 carrier:0

RX bytes:13257 (12.9 KiB) TX bytes:7378 (7.2 KiB)

Вижу что в системе модем представился сетевой картой и получил от DHCP сервиса модема сетевой адрес: 192.168.0.182, а сам модем работает по адресу 192.168.0.1, если подключиться через VNC к Raspberry Pi 3 Model B и открыть браузер где в строке адреса указать: http://192.168.0.1 я увижу, что модем работает и интернет подается через мобильного оператора Tele2:

Клавиша Win → Internet — Chromium Web Browser: затем нажимаю Ctrl +L чтобы курсор встал в строку адреса и набираем здесь: http://192.168.0.1 и нажимаем клавишу Enter

Читайте также:  Изменить свою скорость интернета

Raspberry Pi 3 видит USB модем и может ходить через него в интернет

Так отлично, модем видит интернет от SIM карты оператора Tele2, теперь на системе Raspbian смотрю, как настроены маршруты для выхода в интернет:

pi@raspberrypi:~ $ route

Destination Gateway Genmask Flags Metric Ref Use Iface

default router 0.0.0.0 UG 202 0 0 eth0

default 192.168.0.1 0.0.0.0 UG 204 0 0 usb0

192.168.0.0 * 255.255.255.0 U 204 0 0 usb0

192.168.1.0 * 255.255.255.0 U 202 0 0 eth0

  • сеть 192.168.0.0/24 → от DHCP-сервиса модема
  • сеть 192.168.1.0/24 → от DHCP-сервиса моего Mikrotik“а

Проверяю, а есть ли интернет через интерфейс USB модема:

pi@raspberrypi:~ $ ping -I usb0 ya.ru

PING ya.ru (213.180.204.3) from 192.168.0.182 usb0: 56(84) bytes of data.

64 bytes from www.yandex.ru (213.180.204.3): icmp_seq=1 ttl=53 time=815 ms

64 bytes from www.yandex.ru (213.180.204.3): icmp_seq=2 ttl=53 time=395 ms

64 bytes from www.yandex.ru (213.180.204.3): icmp_seq=3 ttl=53 time=395 ms

Да есть но вот время отклика меня как-то смущает.

Проверяю, а есть ли интернет через интерфейс eth0 самой платы:

pi@raspberrypi:~ $ ping -I eth0 ya.ru

PING ya.ru (93.158.134.3) from 192.168.1.124 eth0: 56(84) bytes of data.

64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=1 ttl=57 time=5.40 ms

64 bytes from www.yandex.ru (93.158.134.3): icmp_seq=2 ttl=57 time=4.27 ms

Из данного вывода видно, что доступ в сеть интернет наиболее стабильно будет вести при использовании интернет локальной сети чем USB модема, но это и так изначально было понятно. Просто я хотел рассмотреть и альтернативную возможность, так сказать резервный интернет. Что очень хорошо, что система Raspbian самостоятельно определила USB-модем и его ни как не пришлось настраивать, за исключением что нужно настроить на максимальную безопасность фаервола (либо через ufw, либо через iptables) и сервис удаленного подключения из вне, а лучше соединение c ним вести через VPN сеть.

Итак, что я имею сейчас, интернет через USB модем от миникомпьютера возможен. Пока на этой ноте я прощаюсь, я уже задумал следующие заметки:

  • Это настройка фаервола
  • Это настройка VPN клиента для безопасного подключения к миникомпьютеру Raspberry Pi 3 Model B удаленно.

А пока я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником — ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог — это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору.

Источник

Raspberry Pi. Установка и настройка комплекта MTC Коннект 4 (модем Huawei E171) на Raspbian

Соответственно одной коммерческой задаче мне придется использовать 3G-модем вместе с Raspberry. В качестве 3G-дейвайса был выбран комплект МТС Коннект 4 (дело было в г.Обнинск, выбирать особо не пришлось). Цель — поднять соединение с авто подключением и реконнектом при дропе.

Читайте также:  Технические составляющие сети интернет

Исходная точка:
1. Raspberry Pi (версия не важна).
2. Raspbian Debian Wheezy Version: January 2014 Release date: 2014-01-07.
3. Плата питается от блока питания 5V 1A. Не пытайтесь запустить RPi от USB (USB отдает всего 500 мА максимум). При питании от USB RPi будет постоянно перезагружаться из-за нехватки питания.
4. Подключение к интернету.

Первым делом я подцепил модем к моноблоку с Windows на борту, поставил Коннект-менеджер с модема и подключился к интернету, дабы удостовериться, что соединение есть и все любые последующие проблемы будут только из-за того, что у меня кривые руки. Коннект есть, трафик считается, гугл открывается, можно работать уже на Raspberry.

Как ни странно, но после подключения модема к USB он определяется как диск. Для переключения его в режим модема необходимо установить usb-modeswitch. Заодно подтянем и все необходимое, а после совершим reboot:

sudo apt-get update sudo apt-get install usb-modeswitch minicom ppp sudo reboot

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

$ lsusb Bus 001 Device 005: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard
$ ls /dev/ttyUSB* /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2

Вот и отлично. Можно начинать работать. под ttyUSB2 у меня клавиатура. Для начала, подключимся к модему через терминал minicom и узнаем его модель посредством AT-команды ati0. Делается это просто — набираем команду и нажимаем Enter:

$ sudo minicom -D /dev/ttyUSB0 < ati0 Manufacturer: Model: E171 Revision: 21.157.00.01.143 IMEI: ************* [естественно, что там цифры, но свой IMEI я не покажу] +GCAP: +CGSM, +DS, +ES

Для выхода из minicom следует нажать Ctrl + A затем Q и подтвердить выход. Теперь мы точно удостоверились в модели модема на случай, если придется прыгать с бубном.

Кстати, мы приблизились к первой проблеме — если мы сейчас выключим и включим Raspberry, то при вводе команды lsusb мы увидим следующее:

$ sudo shutdown -h now [передергиваем питание и ждем пока загрузится RPi] $ lsusb Bus 001 Device 005: ID 12d1:155b Huawei Technologies Co., Ltd.

Наш модем снова стал накопителем, сменился ID устройства (с 12d1:1506 на 12d1:155b, где 12d1 — ID вендора) и снова превратился в cdrom. И так будет всегда, если RPi будет включаться с уже вставленным модемом, т.е. до подачи питания. На данном этапе это лечится передергиванием модема (вынул-всунул) и в принципе, может и не критично. Конкретно в моей ситуации, такое поведение ОС меня не устраивает, поэтому буду добиваться однозначного определения модема при включении.

Для решения данной проблемы необходимо создать файл /etc/udev/rules.d/41-usb_modeswitch.rules:

$ sudo nano /etc/udev/rules.d/41-usb_modeswitch.rules

и пишем в него следующую строчку (если у вас другой модем, не забудьте вставить туда свои ID производителя и устройства):

ATTRS=="12d1", ATTRS=="155b", RUN+="usb_modeswitch '%b/%k'"

Важно задать правило для udev именно для ID, по которому у нас определяется модем как накопитель, а не наоборот. Т.е. 12d1 155b — это накопитель, 12d1 1506 — это модем. В файл rules вписываем ID накопителя

Для надежности и достоверности теста можно передернуть питание. Включаем RPi и сразу смотрим на вывод

Читайте также:  Домашняя группа windows 10 интернет

. Если определился как модем — то все отлично, если нет — то вам в список полезных ссылок=))

Есть два пути — ручная настройка или использование сторонних разработок. Для простоты выберем второй вариант.

Создадим папку, скачаем в нее Sakis3G, разархивируем и дадим права на выполнение данной утилиты

$ mkdir ~/3g $ cd 3g/ $ wget http://sourceforge.net/projects/vim-n4n0/files/sakis3g.tar.gz $ tar -xzvf sakis3g.tar.gz $ sudo chmod +x sakis3g

Далее, запустим Sakis3G в интерактивном режиме для установления соединения:

sakis3g имеет графическое меню. В принципе, оно должно быть понятно. Для установления соединения будем выбирать следующие пункты

Connect with 3G / USB device / Mobile Connect / Interface #0 /

В следуюющем окне под названием «Please select APN» просят выбрать из двух вариантов:
1. (internet.mts.ru) — это настройки, я так понимаю, зашитые в модем
2. Custom APN…

Можно не заморачиваться и выбрать первый пункт. Параметры будут указаны автоматически.

При выборе второго пункта, придется в последующем вводить параметры APN:
1. APN: internet.mts.ru
2. APN_USER: mts
3. APN_PASS: mts
и только после этого будет осуществляться попытка соединения.

Указанные мною параметры APN — для Калининградской области. Для другого региона узнайте их у своего оператора, как это и советует программа.

После подключения появится сообщение о том, что ваш модем подключен к сети. Жмем ОК и попадаем в главное меню. Можно выйти, получить информацию о соединении или отключиться от сети.

Если просмотреть все пункты в во всех меню sakis3g, то нигде нельзя будет найти опции — авто реконнект при потере соединения. К сожалению нужна еще одна утилита.

Скачаем утилиту umtskeeper, разархивируем в каталог ~/3g:

$ mkdir ~/3g $ cd ~/3g $ wget http://zool33.uni-graz.at/petz/umtskeeper/src/umtskeeper.tar.gz $ tar -xzvf umtskeeper.tar.gz $ chmod +x umtskeeper

ВАЖНО! umts_keeper уже идет вместе с sakis3g. Поэтому можно качать только umts_keeper и не делать предыдущий шаг.

Для автоматического подключения и реконнекта при дропе необходимо запустить umtskeeper с соответствующими параметрами (в моем случае с МТС и ID модема 12d1:1506):

# ./umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:1506' APN='CUSTOM_APN' CUSTOM_APN='internet.mts.ru' SIM_PIN='0000' APN_USER='mts' APN_PASS='mts'" --sakisswitches "--sudo --console" --devicename 'Huawei' --log --silent --nat 'no'

После этого ждем, пока не загорится диод на модеме, сообщающий, что все хорошо и интернет есть. Завершить работу umtskeeper можно нажатием Ctrl+C.

Действие данной утилиты с данными параметрами происходит безмолвно, поэтому смотрим лог:

$ tail /var/log/umtskeeper.log -f

Для авто подключения при запуске RPi воспользуемся одним из вариантов, а именно — редактированием /etc/rc.local:

куда внесем запуск umtskeeper (не забудьте указать путь, специфичный вашей Raspberry). Не забываем в конце поставить & для запуска в фоне:

/home/pi/3g/umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:1506' APN='CUSTOM_APN' CUSTOM_APN='internet.mts.ru' SIM_PIN='0000' APN_USER='mts' APN_PASS='mts'" --sakisswitches "--sudo --console" --devicename 'Huawei' --log --silent --nat 'no' &

Перезагружаемся и проверяем.

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

Источник

Оцените статью
Adblock
detector