Подключение модемов напрямую через PPP при помощи скриптов.

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

dmitriev
Писатель
Сообщения: 461
Зарегистрирован: 12 янв 2009, 19:36
Контактная информация:

Подключение модемов напрямую через PPP при помощи скриптов.

Непрочитанное сообщение dmitriev » 18 авг 2012, 14:09

Для подключения USB модемов существует множество программ дозвона (dial-up): wvdial, pppconfig, KPPP, Gnome-PPP, Chestnut Dialer и так далее. Имя им легион. Но вот беда: далеко не всегда они присутствуют в установочных образах дистрибутивов, а иногда оказываются недееспособными (как wvdial в Fedor'e 17 viewtopic.php?f=5&t=1789 ).

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

Olej удалось освоить этот способ, а я немного систематизировал его исследования:

1. Для чистоты эксперимента работаю в Live CD RFRemix 17.
В этом дистрибутиве бракованный дозвонщик wvdial (смотрите тему viewtopic.php?f=5&t=1789&p=4740#p4740 )
поэтому мой модем Airplus MCD-650 невозможно подключить никаким другим способом (через NM тоже не подключается).

2. Создаю файл /etc/chatscripts/pap:

Код: Выделить всё

# mkdir /etc/chatscripts
# touch /etc/chatscripts/pap
с таким текстом:

Код: Выделить всё

ABORT   BUSY
ABORT   VOICE
ABORT   "NO CARRIER"
ABORT   "NO DIALTONE"
ABORT   "NO DIAL TONE"
""   ATZ
OK   ATDT\T
CONNECT   ""
3. Создаем файл /etc/ppp/peers/sky:

Код: Выделить всё

# touch /etc/ppp/peers/sky
со следующим текстом:

Код: Выделить всё

/dev/ttyACM0
9600
crtscts
modem
noccp
novj
connect "/usr/sbin/chat -e -v -f /etc/chatscripts/pap -T '#777'"
noauth
user mobile
remotename sky
usepeerdns
defaultroute
debug
updetach
lcp-echo-interval 20
lcp-echo-failure 3
persist
maxfail 0
4. В файлах /etc/ppp/chap-secrets и /etc/ppp/pap-secrets
вписываю (пользователь - соединение - пароль):

Код: Выделить всё

mobile sky internet
5. Запускаю демон pppd:

Код: Выделить всё

# pppd call sky

ATZ
OK
ATDT#777
CONNECT
Script /usr/sbin/chat -e -v -f /etc/chatscripts/pap -T '#777' finished (pid 1646), status = 0x0
Serial connection established.
using channel 3
Using interface ppp0
Connect: ppp0 <--> /dev/ttyACM0
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MD5> <magic 0xb6c2ec55>]
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x529a0ca6> <pcomp> <accomp>]
sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MD5> <magic 0xb6c2ec55>]
rcvd [LCP ConfRej id=0x1 <pcomp> <accomp>]
sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x529a0ca6>]
rcvd [LCP ConfAck id=0x2 <asyncmap 0x0> <magic 0x529a0ca6>]
sent [LCP EchoReq id=0x0 magic=0x529a0ca6]
rcvd [CHAP Challenge id=0x1 <b1c137b7b3af3a12ade9088d51540fb0099f>, name = ""]
sent [CHAP Response id=0x1 <3ff2f076082df206fb7e7655a95ab260>, name = "mobile"]
rcvd [LCP EchoRep id=0x0 magic=0xb6c2ec55]
rcvd [CHAP Success id=0x1 ""]
CHAP authentication succeeded
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [IPCP ConfReq id=0x1 <addr 212.119.97.90>]
sent [IPCP ConfAck id=0x1 <addr 212.119.97.90>]
rcvd [IPCP ConfNak id=0x1 <addr 92.36.53.217> <ms-dns1 212.119.97.5> <ms-dns2 212.119.96.76>]
sent [IPCP ConfReq id=0x2 <addr 92.36.53.217> <ms-dns1 212.119.97.5> <ms-dns2 212.119.96.76>]
rcvd [IPCP ConfAck id=0x2 <addr 92.36.53.217> <ms-dns1 212.119.97.5> <ms-dns2 212.119.96.76>]
local  IP address 92.36.53.217
remote IP address 212.119.97.90
primary   DNS address 212.119.97.5
secondary DNS address 212.119.96.76
6. Остается вписать полученные адреса DNS-серверов в файл /etc/resolv.conf

Код: Выделить всё

nameserver 212.119.97.5
nameserver 212.119.96.76
7. Можно открывать браузер и работать!
_______________________________________________

Примечание: Название соединения (sky), имя пользователя (mobile) и пароль (internet), а также порт (/dev/ttyACM0) приведены для моего соединения Skylink и моего модема. Не копируйте их слепо!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Подключение модемов напрямую через PPP при помощи скриптов.

Непрочитанное сообщение Olej » 18 авг 2012, 14:53

dmitriev писал(а):Для подключения USB модемов существует множество программ дозвона (dial-up): wvdial, pppconfig, KPPP, Gnome-PPP, Chestnut Dialer и так далее. Имя им легион. Но вот беда: далеко не всегда они присутствуют в установочных образах дистрибутивов, а иногда оказываются недееспособными (как wvdial в Fedor'e 17 viewtopic.php?f=5&t=1789 ).
И это - неработоспособность wvdial в Fedor'e 17 - нужно бы разобрать до конца, что они там намудрячили? потому как в предыдущих Fedora 16 и менее - всё оно работало. :-(
dmitriev писал(а): Примечание: Название соединения (sky), имя пользователя (mobile) и пароль (internet), а также порт (/dev/ttyACM0) приведены для моего соединения Skylink и моего модема. Не копируйте их слепо!
А в случае моего модема (AnyDATA модель ADU-510A) и провайдера (МТС Коннект 3G, Украина):
Имя пользователя: mobile
Пароль: internet
Порт: /dev/ttyUSB0
а "Название соединения" - выбирается произвольно, только оно проходит через несколько настроечных файлов и должно везде совпадать.
Важно, что "Имя пользователя" и "Пароль" - определяются политикой и тарифным планом провайдера (добивайтесь от него! ;-) ), а "Порт" опредеяется моделью USB модема, независимо от того, от какого провайдера пришёл модем и чей логотип на нём написан ;-) .

В этих случаях (Skylink & МТС Коннект) имя пользователя и пароль - одинаковы для всех пользователей этого тарифного плана (а, может быть, и провайдера вообще).
Но это совсем не обязательно для всех провайдеров (или всех тарифных планов), мне попадался контрактный модем PEOPLEnet (Украина - "Приватбанк" - Коломойский ;-) ), где для каждого пользователя - индивидуальные имя пользователя и пароль:

login: 80922518464@people.net.ua
passwd: 000000

- в login 8092 - префикс оператора у всех одинаковый, далее 7 цифр ХХХХХХХ - № телефонный на который зарегистрирован модем/карточка.
- passwd - это 6 цифр, и кой-где в интернет утверждается, что достаточно действительно оставить 000000

Хорошо бы вообще собрать в одном месте (под одной крышей) правила образования имён пользователей и паролей - для разных провайдеров + их тарифных планов.
Я встречал в описаниях подключений много частных советов на этот счёт ... но каждый "писатель" ковыряется со своим оператором и со своим тарифным планом (да ещё и в разные годы! ;-) ), и получается это разрозненно и противоречиво...
Ох, хорошо бы собрать это вместе!

Кстати!
Для других провайдеров, особенно для сетей GSM/GPRS модемов (это обсуждалось в Установка и настройка USB-модемов), 2-х параметров "Имя пользователя" и "Пароль", зависящих от провайдера, может быть недостаточно. Вот какие ещё параметры называет Network Manager при настройке нового соединения, но они нисколько не отличаются от тех параметров, которые требуется вписать в настроечные файлы PPP:
mtc.gif
(27.04 КБ) 23823 скачивания

dmitriev
Писатель
Сообщения: 461
Зарегистрирован: 12 янв 2009, 19:36
Контактная информация:

Re: Подключение модемов напрямую через PPP при помощи скриптов.

Непрочитанное сообщение dmitriev » 18 авг 2012, 18:13

Нужно еще иметь возможность как-то разрывать соединение.
Как это можно сделать, кроме как выдернуть модем из USB или убить процесс командой killall pppd?

dmitriev
Писатель
Сообщения: 461
Зарегистрирован: 12 янв 2009, 19:36
Контактная информация:

Re: Подключение модемов напрямую через PPP при помощи скриптов.

Непрочитанное сообщение dmitriev » 18 авг 2012, 18:20

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

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Подключение модемов напрямую через PPP при помощи скриптов.

Непрочитанное сообщение Olej » 18 авг 2012, 18:36

dmitriev писал(а):Олег, вы картинку запостили длиной 1200 пикс. Она в окно браузера не влезает - приходится с прокруткой смотреть. Это не есть хорошо!
Так там содержательная часть: 3 пункта перечисления - они в нескролингуемой части ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Подключение модемов напрямую через PPP при помощи скриптов.

Непрочитанное сообщение Olej » 18 авг 2012, 18:42

dmitriev писал(а):Нужно еще иметь возможность как-то разрывать соединение.
Как это можно сделать, кроме как выдернуть модем из USB или убить процесс командой killall pppd?

Код: Выделить всё

# killall pppd
- это совершенно нормальный (корректный) способ завершения.

Или если вам не нравится killall (что он убивает вслепую), то можно эквивалентно:

Код: Выделить всё

bash-4.2$ ps -A | grep pppd
17816  ?    00:00:00 pppd
bash-4.2$ sudo kill 17816

dmitriev
Писатель
Сообщения: 461
Зарегистрирован: 12 янв 2009, 19:36
Контактная информация:

Re: Подключение модемов напрямую через PPP при помощи скриптов.

Непрочитанное сообщение dmitriev » 18 авг 2012, 18:44

Olej писал(а):
dmitriev писал(а):Олег, вы картинку запостили длиной 1200 пикс. Она в окно браузера не влезает - приходится с прокруткой смотреть. Это не есть хорошо!
Так там содержательная часть: 3 пункта перечисления - они в нескролингуемой части ;-)
Картинка не должна превышать 750 пикселей в длину.
Просто ее нужно уменьшить в Гимпе. Вы же сами об этом писали в соответствующей теме!

dmitriev
Писатель
Сообщения: 461
Зарегистрирован: 12 янв 2009, 19:36
Контактная информация:

Re: Подключение модемов напрямую через PPP при помощи скриптов.

Непрочитанное сообщение dmitriev » 27 авг 2012, 08:11

Не безинтересным есть вопрос использования не одного из многих выбранного наугад диалера wvdial, а настройки классической и традиционной связки ppp+chat в качестве диалера ... Зачем? А для настройки модема в таком Linux как Android :lol: , где нет ни NM, ни wvdial ...
А есть там возможность создавать и редактировать файлы, необходимые для запуска PPPD скриптами?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Подключение модемов напрямую через PPP при помощи скриптов.

Непрочитанное сообщение Olej » 27 авг 2012, 12:58

dmitriev писал(а):
Не безинтересным есть вопрос использования не одного из многих выбранного наугад диалера wvdial, а настройки классической и традиционной связки ppp+chat в качестве диалера ... Зачем? А для настройки модема в таком Linux как Android :lol: , где нет ни NM, ни wvdial ...
А есть там возможность создавать и редактировать файлы, необходимые для запуска PPPD скриптами?
Да, именно таким образом, через PPPD экпериментирующий народ описывает запуск USM-модемов из-под Android.
Например вот это: Соединяем с МТС Украина (MTS UA) Edge модемом HUAWEI Mobile broadband Model E1550 и AnyData ADU-510A.
В коплекте Android, многие пишут, нет программы chat (для ARM процессора), но её берут дополнительно (есть много мест), например здесь: http://kenzo.net.od.ua/droid/ppp/chat.

dmitriev
Писатель
Сообщения: 461
Зарегистрирован: 12 янв 2009, 19:36
Контактная информация:

Re: Подключение модемов напрямую через PPP при помощи скриптов.

Непрочитанное сообщение dmitriev » 27 авг 2012, 13:49

Тогда для нашей статьи нужно рассмотреть процедуру установки программ и процесс подключения для Андроида.
В этом случае статья получится действительно интересная и полезная.
Поскольку у меня нет ни одного девайса с Андроидом, может быть вы сможете это проделать?

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей