MAZIN.UZ

Блог Дмитрия Мазина

Я рад вас видеть на моем блоге!

Полезные заметки в личном блоге Дмитрия Мазина.
                    Заходите, читайте, подписывайтесь.

Установка и настройка 3G модема в Ubuntu server

Автор: Дмитрий Мазин Опубликовано: 30 - ноября - 2011

Пропал у меня ADSL, решил поднять на выходные 3G модем. При старте системы у меня теперь автоматом поднимается 3G модем и работает через ppp.

Я спользовал 3G модем HUAWEI E153.

Первым делом нужно переключить модем в режим «только модем».

Для этого можно установить его например в Windows и зайти на него терминалом и выполнить команду:

ATZ
AT^U2DIAG=0
AT&W

Или воспользоваться утилитой под Linux, которая называется usb-modeswitch
Как ею пользоваться найдете в интернете. Вот пример как это сделать с 3G модемом Huawei E1550.

После этого мы смело вставляем модем в ПК с Ubuntu и увидим, что у нас появились USB COM порты.

Далее нам понадобится wvdial.

Устанавливаем его:

sudo apt-get install wvdial

В моем случае небыло интернета и мне пришлось сначала завести модем на ноутбуке, поднять там прокси сервер, и настроить ubuntu чтобы apt-get ходил через прокси.

Далее запускаем конфигуратор wvdial:

sudo wvdialconf

Он опросит все порты,  найдет модем и создаст файл /etc/wvdial.conf
Нам останется его только немного подправить.
Я добавил строки инициализации, чтобы он был в WCDMA сети и дозванивался с нужным APN.
Так же я установил скорость порта 460800, номер дозвона, имя пользователя и пароль.
Учтите что я настраиваю в сети MTS Uzbekistan, для других регионов настройки уточняйте у провайдеров.
Вот мой конфиг:

[Dialer Defaults]
Init1 = ATZ
Init2 = AT^SYSCFG=2,2,3fffffff,1,2
Init3 = at+cgdcont=1,»ip»,»net.mts.uz»
Modem Type = USB Modem
Baud = 460800
New PPPD = yes
Modem = /dev/ttyUSB_utps_modem
ISDN = 0
Idle Seconds = 0
Dial Attempts = 0
Phone = *99#
Password = mts
Username = mts
Stupid Mode = yes

Теперь настраиваем PPP интерфейс.

Добавляем в конец файла /etc/network/interfaces следующие строки:

# 3G Modem
iface ppp0 inet wvdial
provider wvdial
auto ppp0

Далее нужно создать скрипт, чтобы при подключении PPP Он менял default gateway, прописывал NAT и в моем случае еще рестартовал squid.

Для этого  создаем скрипты в  /etc/ppp/ip-up.d/

Скрипт routing для замены default gateway:

#! /bin/sh
#
route del default
route add default ppp0

Скрипт nat для натинга:

#! /bin/sh
#
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables —table nat -A POSTROUTING -o ppp0 -j MASQUERADE

Скрипт sqd для рестарта squid:

#! /bin/sh
#
/etc/init.d/squid restart

Если нужно, чтобы при отключении ppp маршрутизация возвращалась на eth0, то создаем скрипт в /etc/ppp/ip-down.d/

Скрипт routing для возвращения маршрутизации на eth0:

#! /bin/sh
#
route del default
route add default eth0

Вот собственно и все. Перегружаемся, проверяем что модем подключился, интернет работает.

Рестартовать соединение можно вот так:

ifdown ppp0 && sleep1 && ifup ppp0

Все.

Комментариев к записи: 20

  1. Olim:

    > Добавляем в конец файла /etc/network/interfaces следующие строки:
    > # 3G Modem
    > iface ppp0 inet wvdial
    > provider wvdial
    > auto ppp0

    После provider надо указать имя секции в файле /etc/wvdial.conf
    Осебенно полезно если у вас несколько модемов и для каждого нужна отдельная конфигурация.

  2. Дмитрий Мазин:

    Да, согласен, но у меня модем был один и конфигурация дефолтовая.

  3. Владимир:

    ребята,помогите настроить 3G модем Novatel ex 720 (intertelecom) в Ubuntu 11.10.никак не получается,а другого инета нет((

  4. Дмитрий Мазин:

    У меня нет этого модема, поэтому помочь не могу. Принцип настройки должен быть похожий.

  5. Денис:

    ДД, сделал все как Вы написали, соединение устанавливается, но нет доступа в инет. Может что-то еще не хватает в моей системе? Сорри это мой первый сервер.
    Заранее спасибо

  6. Дмитрий Мазин:

    Что происходит когда вводишь команду wvdial?

  7. Денис:

    ДД, Дмитрий! спасибо что откликнулись!
    Пишет соединение установлено, но при вводе «apt-get upgate» пишет что нет соединения.

  8. Денис:

    если быть точным, то вот:
    —> WvDial: Internet dialer version 1.61
    —> Initializing modem.
    —> Sending: ATZ
    ATZ
    OK
    —> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    OK
    —> Sending: AT+CGDCONT=1,»IP»,»internet»
    AT+CGDCONT=1,»IP»,»internet»
    OK
    —> Modem initialized.
    —> Sending: ATDT*99#
    —> Waiting for carrier.
    ATDT*99#
    CONNECT
    —> Carrier detected. Starting PPP immediately.
    .. connection successfully established.

    (это с Webmin-а с терминала пока не знаю как копировать)

  9. Дмитрий Мазин:

    Странные у тебя команды модема…
    вот мой wvdial.conf для UCELL
    [Dialer Defaults]
    Init1 = ATZ
    Init2 = AT^SYSCFG=2,2,3fffffff,1,2
    Init3 = at+cgdcont=1,»ip»,»internet»
    Modem Type = USB Modem
    Baud = 460800
    New PPPD = yes
    Modem = /dev/ttyUSB_utps_modem
    ISDN = 0
    Idle Seconds = 0
    Dial Attempts = 0
    Phone = *99#
    Password = none
    Username = none
    Stupid Mode = yes

  10. Денис:

    вот мой wvdial.conf Мегафон Северо-запад

    [Dialer Defaults]
    Init1 = ATZ
    Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
    Init3 = AT+CGDCONT=1,»IP»,»internet»
    #Init4 = AT+zsnt=1,0,0
    Modem Type = Analog Modem
    Baud = 9600
    New PPPD = yes
    Modem = /dev/ttyUSB2
    ISDN = 0
    Phone = *99#
    Password = /n
    Username = /n
    Stupid Mode = 1
    Auto Reconnect = on
    Idle Seconds = 0

    подключение есть, но почему нет доступа к нету?

  11. Дмитрий Мазин:

    Попробуй вот так:
    [Dialer Defaults]
    Init1 = ATZ
    Init2 = AT^SYSCFG=2,2,3fffffff,1,2
    Init3 = at+cgdcont=1,”ip”,”internet”
    Modem Type = USB Modem
    Baud = 460800
    New PPPD = yes
    Modem = /dev/ttyUSB2
    ISDN = 0
    Idle Seconds = 0
    Dial Attempts = 0
    Phone = *99#
    Password = none
    Username = none
    Stupid Mode = yes

    Если все настроено как у меня указано, то поднимется автоматом. должен появится интерфейс ppp0 если авто не стоит в networks можно поднять интерфейс командой ifup ppp0

    и не забудь про шлюз по умолчанию и днс сервера в resolv.conf

  12. Денис:

    спасибо, попробую

  13. Дмитрий Мазин:

    Ну как, помогло?

  14. Денис:

    нет, то же самое! видимо что-то у меня не так настроено, буду дальше разбираться как время появится

  15. Дмитрий Мазин:

    Проверь дефолтовый гейтвей и маршрутизацию. Дефолтовый гейтвей должен быть один. См. выше я все описал.

  16. Денис:

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

  17. Дмитрий Мазин:

    Атрибуты должны быть 755
    делается командной chmod 755 filename.sh
    если пишешь на баше то первая строка должна быть
    #!/bin/bash

  18. Денис:

    Дмитрий спасибо за Вашу помощь!
    То есть я создаю текстовый файл с содержимым описанным Вами:
    #! /bin/sh
    #
    # меняем шлюз
    route del default
    route add default ppp0
    # делаем маскарадинг
    /sbin/iptables -P FORWARD ACCEPT
    /sbin/iptables –table nat -A POSTROUTING -o ppp0 -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward
    затем делаю его исполняемым командой «chmod 755 имя файла.sh» и затем его помещаю в /etc/ppp/ip-up.d/
    Верно?

  19. Денис:

    а, еще пишу этот файл в «nano»

  20. Дмитрий Мазин:

    Да, именно так. Можно в nano, можно в vi, хоть mcedit.
    У меня этот файл просто называется nat и routing без .sh ну это без разницы, будет работать и так и эдак.

Оставить комментарий