Подключение usb модема мегафон к linux

Обновлено: 08.07.2024

Эта статья — продолжение статьи Беспроводная точка доступа, используя Linux. Тут я опишу, что же необходимо сделать для того, чтобы раздавать интернет с 3G-модема по уже созданной по инструкции из предыдущего топика вайфай-сети.

1) Прежде всего, научить Linux работать с модемом
2) Создать NAT для раздачи интернета
3) Запихнуть всё это дело в автозагрузку
Итак, bash, wvdial и iptables под мышку — и поехали!

Подключение USB 3G-модема

Бывает и так, что в некоторых странах есть свои провайдеры 3G-интернета, которые не предоставляют настроек для подключения, используя Linux, что, в общем-то, и понятно — 'популярность' как провайдера, так и Linux даёт о себе знать. Не все конфиги есть ещё на сайтах, тем более — для отдельных программ. Итак, в Латвии, где я и проживаю. есть два провайдера — LMT и Bite. Оба они предоставляют беспроводной интернет через модемы Huawei, залоченные, естественно, на них, ну да не в этом дело. Ну так вот — необходимо обеспечить интернет всюду, где есть 3G, используя модем и сервер. Что же делать?

Прежде всего, воткнуть модем в ноут. USB-модемы определяются в Linux как устройства под адресом /dev/ttyUSB*, где * — порядковый номер устройства, обычно адрес выглядит как /dev/ttyUSB0.
Ой. Что-то он не определяется. А проблема вот такая (обмусоленная уже тысячу раз): модем — это устройство типа “два в одном”. Почему? Он совмещает в одной флешке как собственно модем, так и встроенный накопитель с драйверами модема под Windows (я уже молчу про кардридер). В Linux по умолчанию включается режим диска, а не модема Для того, чтобы включить ещё и режим модема, нужно установить пакет usb-modeswitch. После этого нужно перезагрузить udev (service udev restart) и опять подключить модем, подождать секунд 10 и опять выполнить команду на вывод списка устройств модема:

Когда вывод походит на этот, всё отлично и можно двигаться дальше. У нас есть три устройства. Нам необходимо лишь одно — под номером 0, остальные 2 мы не используем — они не для наших целей. Насколько мне известно, одно из них, скорее всего, используется для отсылки СМС, а второе — для просмотра уровня сигнала сети и прочего.

Теперь — дело за программой, которая подключит нас. Я буду использовать программу wvdial, дополнительно к ней нужно установить пакет ppp, если он ещё не установлен.Многие советуют использовать программу wvdialconf для настройки подключения, но в данном случае она нам не поможет. После установки нам нужно отредактировать файл /etc/wvdial.conf. Стираем из него всё содержание, затем разбираемся в формате файла. Я предоставлю рабочие конфиги для провайдера LMT с тарифом OKarte Internets datorā и модемом Huawei E173 и Bite с неизвестным тарифом и модемом Huawei E1550.

Вкратце — файл разделён на секции. Каждая из секций отвечает за одну комбинацию модем-провайдер. Начало секции обозначается меткой [Dialer xxx], где ххх — это название метки, по которой мы будем указывать, какие именно настройки нужны для подключения. Если нам потребуются настройки LMT, мы наберём команду wvdial lmt, и будут использоваться настройки из секции [Dialer lmt] — суть понятна. Из этих настроек нам нужно обратить внимание на следующие:


— AT-команды после InitX — те команды, которые wvdial отсылает модему перед тем, как поднять подключение.


— Здесь прописывается адрес APN, который предоставляет провайдер. Нужно обратить внимание на две последних отделённых кавычками части. Первая — IP — указывает IP-адрес для подключения, если настройки провайдера подразумевают то, что используется IP-адрес APN. Если же используется буквенный адрес вида “internet” или “internet.lmt.lv”, в первой части нужно оставить “IP”, а во второй — прописать буквенный адрес, как это сделано в примере.


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


Имя пользователя и пароль для подключения к интернету. Если их нужно оставить пустыми, оставьте там скобочки вида < >. Если нет — просто поставьте там имя и пароль, без скобочек.


Имя устройства, которое нам нужно использовать. В 99% случаев оно будет именно таким.

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

Ещё раз расскажу о том, как правильно запускать подключение вручную. Достаточно одной команды — wvdial xxx, где ххх — это название провайдера из конфигурационного файла (для меня это либо lmt, либо bite.) Однако — при запуске wvdial ”занимает собой” всю консоль, не давая возможности запустить что-либо ещё. Кроме того — если вы запустите wvdial в окне SSH и тут же разорвёте сессию, то и wvdial завершится. Нужно либо постоянно держать сессию открытой, либо использовать screen, который в данном случае решает сразу две проблемы довольно эффективно — что и советую.
Что в идеале нужно? Также научиться просто и легко запускать эти программы. В использовании мной описанной схемы есть свои нюансы:

1) Соединение нужно каждый раз запускать вручную.
— Достаточно немного изменить конфигурационные файлы системы, а именно — тот же /etc/network/interfaces:

Для меня этот способ не подходит — он рассчитан на то, что провайдер не меняется, но большая вероятность, что это понадобится кому-то ещё. Да и не особо-то надёжно это работает, по моему опыту, лучше настроить udev. Для себя же я не нашёл подходящих решений — для этого надо было бы определять принадлежность вставленной сим-карты тому или иному провайдеру, а решение с использованием этого становится очень сложным.
Ну а если всё же надо быть постоянно подключённым, даже если что-то глючит и модем отключается от сети? Ну тогда поможет следующий скрипт. Он смотрит, есть ли wvdial в списке процессов, а если нет, то делает ifup ppp0, что в совокупности с вышеупомянутыми настройками в interfaces должно вызывать wvdial заново:

2) При включении ноутбука, если модем был подключен во время загрузки системы, иной раз случаются зависания, которые выражаются в следующем — при попытке подключения, используя wvdial, выходят строчки вида
, и подключиться не удаётся. Лечится на один раз просто — нужно лишь вынуть и воткнуть модем, а затем запустить соединение вручную, но вы же понимаете, что при отсутствии физического доступа к компьютеру эта задача усложняется до невозможности.
— Пока что я не могу предоставить нормального решения, поскольку сам ещё не занялся этим. Предполагают, что это из-за того, что программа usb-modeswitch не отрабатывает корректно, если модем вставлен в компьютер при запуске системы. Видимо, нужно покопаться с udev или указать какие-либо особые параметры для usb-modeswitch.

3) В условиях плохого приёма соединение часто обрубается
— Всё довольно просто. Дело в том, что у портов ЮСБ есть ограничение на отдаваемый ток, при превышении которого, насколько я помню, порт отрубается. Видимо, в условиях плохого приёма сигнала сети модем пытается повысить мощность приёмника и передатчика, и случается так, что модем начинает потреблять больший ток, чем выдерживает порт — порт отключается, модем выключается, соединение отрубается насовсем. Посоветовать могу лишь, к примеру, просто-напросто взять USB-хаб с внешним питанием ну или же купить отдельный адаптер питания для модема и впаять его в кабель.

  • Использование двух модемов
  • Зависание одного порта, которое выражается в том, что порт остаётся в /dev, даже если модем уже отключен.
  • И тому подобные казусы, при которых внезапно назначается другой порт.

После того, как интернет появился на нашем сервере, остаётся лишь настроить раздачу интернета с модема по Wi-Fi сети.

Если у компьютера есть два сетевых интерфейса, это ещё не означает, что из коробки можно спокойно раздавать интернет с одного на другой. Однако — не всё так сложно, чаще всего требуется всего пара настроек. Конечно, эти настройки сложно запомнить, не вникая в суть каждой строчки, но ведь для этого есть эта статья! Я нашёл наиболее подходящий для этой ситуации и безглючный скрипт, не могу не дать ссылку на него, поскольку найденный на нём скрипт самый короткий и ясный из тех, что я встречал — остальные умудряются растянуть пару правил iptables на несколько страниц… Прежде всего, посмотрю, что в нём надо бы изменить под мои нужды:

Найденный скрипт

Хм-хм. Этот скрипт уже староват — iptables ругается на одну из команд и не хочет выполнять, да и тот путь, которым в статье скрипт пытаются поместить в автозагрузку, тоже работает не всегда на моей практике. Более того, есть проблема — этот скрипт отлично подходит для ситуации, когда ничего не собирается меняться. Если бы так и было, я бы поставил iptables-persistent и на этом закончил бы статью. А вот я собираюсь иногда получать интернет по интерфейсу ppp0, иногда — по eth0, а иногда — вообще по wlan1, причём менять интерфейс хочу одной консольной командой. Так, eth1 в примере — внешний интерфейс, а eth0 — внутренний. Заменим их переменными, чтобы при необходимости можно было поменять одну строчку, а не редактировать весь текст. Также я хочу, чтобы при перезапуске компьютера последний выбранный внешний интерфейс сохранялся. Что тогда? Нужно всё поменять!
Задачи:
  1. Принимать первый аргумент командной строки в качестве названия внешнего интерфейса, проверяя подлинность имени, используя команду ifconfig;
  2. Добавить сохранение выбранного интерфейса в какой-нибудь файл в /etc и сделать ключ выбора последнего интерфейса, а лучше — при отсутствии имени интерфейса как аргумента.
  3. Запихнуть это всё красиво в автозагрузку и в $PATH.
Что же вышло в итоге?
Комментарии писал на английском — так привычнее. Если будут просьбы — могу и перевести.

Ну и не забываем обязательную часть:Окей, скрипт у нас готов. Как можно понять, вариантов вызова четыре — firewall (используется последний интерфейс), firewall наш_интерфейс, firewall info (выводит текущий интерфейс, на котором настроен NAT) или firewall help. Осталась лишь автозагрузка и $PATH.


Для того, чтобы вызывать скрипт командой firewall, не указывая местоположение, нужно запихнуть его в одну из папок, указанных в PATH. Я предпочитаю /usr/local/bin по религиозным соображениям. Полный путь к скрипту будет /usr/local/bin/firewall, а вот вызвать из консоли его всегда можно будет просто командой firewall.

Автозагрузка

А теперь — автозагрузка, с ней посложнее. Я сразу опишу создание скрипта автозагрузки, в который можно будет запихнуть всё, что угодно. Он будет стартовать вместе с системой, нооо…

  1. Первая проблема — это LSB headers. Это заголовок файла автозагрузки. Нужен он потому, что компоненты автозагрузки должны выполняться в определённом порядке, поскольку часть из них зависят друг от друга. Предположим, у вас есть два скрипта в автозагрузке — один из них должен будет монтировать сетевую папку, а второй — делать в неё резервную копию файлов. Естественно, что сначала нужно выполнить первый, а потом — второй, поскольку второй зависит от первого. Для указания таких зависимостей и используются заголовки загрузочного файла. Впрочем, будет достаточно того заголовка, который я выложу в образце файла автозагрузки.
  2. Вторая проблема — любой скрипт в автозагрузке при запуске системы вызывается командой /etc/init.d/script start, а при выключении компьютера — командой /etc/init.d/script stop. Нужно добавить условия для обработки этих случаев.


Опять же, дать права на исполнение:В файле автозагрузки лучше указывать полный путь к исполняемому файлу, поскольку иначе при загрузке иногда возникают проблемы вида “firewall: command not found”.

ПОЖАЛУЙСТА ПОМОГИТЕ! Очень срочно! Я видела здесь подобные темы и решения, но ни одно мне не подошло. Помогите поставить usb-modeswitch или что еще понадобится, чтобы этот модем заработал. Дело очень срочное!

В networkmanager соединение Mobile Broadband создается? Выбрать модем можно?


Это не винда, тупое копирование на авось нихера не поможет.

Нервозность не помогает вообще нигде. Успокойся.

А теперь по порядку: что за модем, 4g или 3g и точную модель. Так же точную версию дистрибутива, битность и DE (Cinnamon, KDE и т.п.)


И как пишут выше, большинство моделей работают из коробки. Посмотри настройки сети в networkmanager-gnome или что там у тебя.


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

А я чужие мысли читать не умею. :(


Чуваки вы чо? Танямаузер в августе прошлого года заходила срочно искала ответ и не нашла ответ. Тред не актуален. Надо бы ей было тогда на форум Минта обратится.


было дело холиварил за x232d и тема сдесь есть с рабочим решением - только нихера оно не рабочее, а usb-modeswitch говно полное - не догоняю почему он по дефолту в базовой части.

amd_amd ★★★★ ( 29.01.18 15:58:32 )
Последнее исправление: amd_amd 29.01.18 15:59:10 (всего исправлений: 1)

usb-modeswitch говно полное - не догоняю почему он по дефолту в базовой части.

Дальше, настраивается программа дозвона. В программе дозвона прописыватся логин и пароль, а также путь к блочному устройству типа /dev/ttyUSB0

В общих чертах, как-то так. Кстати в KDE есть хорошая утилита под названием kppp.


Народ! У меня стоит Gnome Nautilus 2.24.1. Как установить на него Мегафон модем. Просто я Linux вообще не знаю. Помогите установить.


>У меня стоит Gnome Nautilus 2.24.1

i lol'd. Дистрибутив-то какой скажи, не томи?

а как посмотреть.Я зашел справка о программе там nautilus 2.24.1


установи network-manager-gnome, modem-manager, usb-modeswitch
перезагрузись и просто воткни модем в комп - он сразу определится и выйдет в интернеты

Думаешь так просто? Как установить? Можешь помочь? Просто принесли ноут. А там стоит вот это.

Там же наверно ставится как-то через терминал?


Как-как.. Пуск-Панель управления-Установка и удаление программ.

Дистрибутив, версию графического окружения, модель ноута и модема, тип подключения к инету всё это может влиять на способ и список устанавливаемого. Телепаты, которые безошибочно определят всё это без твоей помощи - В ОТПУСКЕ!


открой терминал и напиши в нём
uname -a
что выведет, сюда кидай


Вы таки верите что получится через форум таки запустить этот модем? учитывая что человек знает 0? Я предлагаю топикстартеру начать с гугла.


Что за модем? Хуявей ставится мгновенно без шаманства.

USB Модем Huawei E1750


Вставь его в привод, он подмонтируется как диск. На нем есть скрипт установки (что-то типа install.sh), запусти его под рутом. Дальше все как в винде.

Слушай! Все конечно понятно. Я уже все это видел на модеме в папке Linux. Тока объясни как запустить под рутом.


>Что за модем? Хуявей ставится мгновенно без шаманства.

Мне usb mode switch понадобился в своё время. В остальном — да, проще, чем в Windows XP. В последней я его так и не завёл, вообще :) (E1550, ЕМНИП, модем)

Там есть файл jre-1_5_0_15-linux-i586.bin


Этот установщик ставит нафиг не нужную мутную приблуду на джаве. Во всех не слишком древних дистрибутивах штатными средствами E1750 заводится, был бы usbmodswitch.


А вот у меня на дачке он завелся и без mode switch'a. Просто сразу встал и сразу заработал. Я даже немного удивился.


>нафиг не нужную мутную приблуду на джаве

Все лицом к пользователю же.

Там еще есть файл install.Как его запустить под рутом?


Ждем телепатов для определения дистрибутива.


Смешной )))
Я пишу, что этот install не нужен, а ты спрашиваешь у меня, как его запустить.

Я бы рекомендовал такой путь:
1. Выяснить, что у тебя за дистрибутив.
2. Выяснить, как в нем настраивается сеть.
3. Настроить соединение.
Если не получается, то:
4. Выяснить, как в твоем дистрибутиве ставятся программы.
5. Установить usb mode switch.
6. Настроить соединение.


SUSE Linux Выпуск 11 Ядро Linux 2.6.32.9-0.2.3-pae GNOME 2.24.1

у мегафона есть своя приблуда - гугли MobilePartner

У мегафона на модеме который я пытаюсь установить есть папка для установки на linux. Там даже readme есть. Так вот там написано в этом файле запустить файл install под root. Тока мне никто не может объяснить как его установить.


В терминале введи:


>у мегафона есть своя приблуда

На самом деле это приблуда хуявея, а мегафон всего лишь ее раскрасил.


Заходи в папку с intall'ом и запускай его.

пишу cd /media/Megafon Internet он мне пишет -bash: cd: /media/Megafon: No such file or directory


cd /media/Megafon\ Internet


Пробел стоит заэкранировать обратным слэшем:

Не в обозревателе файлов, там где строка адрес. написано /media/MegaFon Internet


Можно поступить ещё проще, написав /media/MegaFon и нажав TAB.


Ну и пиши в консоли

зашел. запустил. говорит ошибка. The Datacard_verify file dont'e exist


>The Datacard_verify file dont'e exist

Это китайцы или ты малограмотны? Скопируй сюда всю строчку.


Please input the absolute path for install.

(по-моему можно и просто пустой дать, он использует этот по умолчанию)

ALT Linux 5.0.2 например установить и вообще нет проблем с модемом кроме проблем с оператором (у мегафона всегда все перегружено, если не после 3 ночи) , ну и проблем с дистрибутивом тоже. сырой еще и от КДЕ 4 воротит (. ) , 3.5 лучше поставить. был такой ALT 4.1 самый проверенный дистрибут, но там свистки не работают, а статьи в инете бред не оправдывающий мучения. (работает и в 4.1 после напильника, но такого лучше не делать), в пятой версии настраивать ничего не надо под модем. и flash и модем работают одновременно. деруться иногда zerocd с cdrom, но это мелочь для нас не виндозников. вообщем полет вполне нормальный. ALT 5 платформы попроще и помельче выбирай, остальное легко доставляется. например с LXDE

Короче. Что-то установилось. Теперь когда втыкаешь модем появляется зеленое окошко инициализация. Дальше пишет проверка пинкод,но при этом не отображается окошко для ввода пина. Я ввожу пин в это серое окошко оно исчезает. И теперь на экране висит серое окно без кнопок,без всего и в заголовке Мегафон интернет


>при этом не отображается окошко для ввода пина.

Я ввожу пин в это серое окошко оно исчезает.

Моя твоя не понимать.

Ну как бы кнопки есть, но их не видно. Глюк!


Молодец. Теперь, чтобы избавиться от этой кривой поделки, почитай в свеженастроенном интернете, как через yast поставить usb-modeswitch и как через network manager нормально подключаться без серых окон с кнопками-угадайками. Ну или подожди, пока сусеводы набегут и подскажут.


Как уже ранее писали в прошлой теме, твой модем, скорее всего, эмулирует проводное подключение, являясь по сути роутером, так как сам по себе создает NAT. А modem manager gui — для истинных модемов, которые лишь служат аппаратной прокладкой между компом и сетью. Хотя это не точно.

Вот рабочий совет, как это настроить: посмотри на сайте мегафона, какие настройки сети нужно выставлять в том случае, если этот модем, именно эту модель (которой внутри роутер, вероятно) подключать в роутер и настраивать подключение на этом роутере, который уже будет раздавать сеть на иные компы — обычно роутеры на Linux или *BSD, так что настройки подходят и для десктопных вариантов этих систем.

Перезагрузи ОС, подключи модем и посмотри

, как говорили — там из вывода многое понятно. Если тебе этот вывод — китайская грамота, то кинь его сюда. Vsevolod-linuxoid ★★★★★ ( 10.07.20 03:27:31 )
Последнее исправление: Vsevolod-linuxoid 10.07.20 03:38:06 (всего исправлений: 3)

Теперь приходит уведомление о том, что необходимо выполнить вход в эту сеть, и перебрасывает на 192.168.0.1

кроме модема какие сетевые интерфейсы есть у твоего компьютера?

Ось видимо не видит сам модем, не видит его и modem manager gui.

нещитово. давай dmesg при подключении модема. лог NetworkManager. твои заявления по ценности (в решении этой проблемы) стремятся к нулю. логи давай (если действительно тебе нужна помощь с модемом).

ip a: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 link/ether 4c:ed:fb:78:5e:23 brd ff:ff:ff:ff:ff:ff 3: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 02:31:2e:0e:d0:44 brd ff:ff:ff:ff:ff:ff inet 192.168.0.175/24 brd 192.168.0.255 scope global dynamic noprefixroute usb0 valid_lft 86095sec preferred_lft 86095sec inet6 fe80::ed8a:4676:bec1:1b81/64 scope link noprefixroute valid_lft forever preferred_lft forever ip r: default via 192.168.0.1 dev usb0 proto dhcp metric 20100 169.254.0.0/16 dev usb0 scope link metric 1000 192.168.0.0/24 dev usb0 proto kernel scope link src 192.168.0.175 metric 100



Выложи ещё раз с нормальной разметкой. Но по сути, у тебя уже сейчас всё работает — то есть модем реально эмулирует проводной интерфейс и раздает dhcp.

Ты пробовал заходить на 192.168.0.1 и смотреть там настройки? Может, модем видит, что у тебя другая ОС, и потому отключает её от инета до подтверждения, что абонент абонент.


Если ты ещё не понял, то подробно.

Ubuntu видит модем абсолютно адекватно. Этот модем создан для работы без драйверов, поэтому любая ОС видит его как USB Ethernet адаптер.

Достигается это за счет того, что он по своей сути является роутером. Он получает по 4G интернет от провайдера, а потом раздает его по DHCP другому устройству — тому, которое считает его USB Ethernet адаптером.

Причина, почему это работает под Windows, но перестало работать под Linux, скорее всего в лаунчере Мегафона на Windows. Модем опрашивает подключенное устройство, есть ли у него этот лаунчер, берет из него параметры типа логина/пароля абонента и дает интернет.

На Linux это не работает. Но на сайте заявлено, что эта модель работает под macOS — под неё этого лаунчера тоже нет, поэтому скорее всего есть иной способ настройки. Или войти в веб-интерфейс этого модема(роутера), или авторизоваться в личном кабинете. можешь спросить в техподдержке. Только скажи, что у тебя макось — с линуксом пошлют.

Читайте также: