Настроим GPRS от оператора мобильной связи BeeLine для Linux для модема подключённого с помощью Bluetooth, IrDA, USB или RS-232 кабеля.
Предположим, мы уже имеем настроенный виртуальный или физический интерфейс связи нашего компьютера с GPRS модемом.
Будем отталкиваться от того, что виртуальный или физический интерфейс связи с нашим модемом имеет имя rfcomm0, ircomm0, tty* и тому подобное.
# aptitude install ppp
Озаботимся созданием конфигурации GPRS подключения.
В каталоге /etc/ppp/peers/ создаем файл с настройками соединения: beeline.gprs:
# mkdir -p /etc/ppp/peers/
# touch /etc/ppp/peers/beeline.gprs
# touch /etc/ppp/peers/beeline.gprs
# интерфейс Bluetooth (указать иное, если требуется)
/dev/rfcomm0 115200
# указываем не сжимать передаваемые данные
nobsdcomp
nodeflate
connect '/usr/sbin/chat -v -f /etc/ppp/peers/beeline.gprs.chat'
noauth
# автоматическое получение сетевых настроек
noipdefault
usepeerdns
defaultroute
debug
nodetach
/dev/rfcomm0 115200
# указываем не сжимать передаваемые данные
nobsdcomp
nodeflate
connect '/usr/sbin/chat -v -f /etc/ppp/peers/beeline.gprs.chat'
noauth
# автоматическое получение сетевых настроек
noipdefault
usepeerdns
defaultroute
debug
nodetach
В каталоге /etc/ppp/peers/ создаем диалоговый файл beeline.gprs.chat:
# touch /etc/ppp/peers/beeline.gprs.chat
ABORT "BUSY"
ABORT "NO CARRIER"
"" "AT"
"OK" "AT&FV1E0&D2&S0&C1S0=0"
"OK" "ATS7=60+CBST=,,1;+DS=3,0;&K3"
"OK" 'AT+cgdcont=1,"IP","internet.beeline.kz"'
"OK" "ATDT*99***1#"
TIMEOUT 30
CONNECT
ABORT "NO CARRIER"
"" "AT"
"OK" "AT&FV1E0&D2&S0&C1S0=0"
"OK" "ATS7=60+CBST=,,1;+DS=3,0;&K3"
"OK" 'AT+cgdcont=1,"IP","internet.beeline.kz"'
"OK" "ATDT*99***1#"
TIMEOUT 30
CONNECT
Устанавливаем GPRS соединение:
# /usr/sbin/pppd call beeline.gprs
Вывод, сопутствующий соединению и указывающий на его осуществление примерно следующий:
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/rfcomm0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x7d65487d> <pcomp> <accomp>]
rcvd [LCP ConfRej id=0x1 <magic 0x7d65487d> <pcomp> <accomp>]
....
PAP authentication succeeded
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
....
local IP address local.ip.address
remote IP address remote.ip.address
primary DNS address primary.dns.ip
secondary DNS address secondary.dns.ip
Script /etc/ppp/ip-up started (pid 4646)
Script /etc/ppp/ip-up finished (pid 4646), status = 0x0
....
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/rfcomm0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x7d65487d> <pcomp> <accomp>]
rcvd [LCP ConfRej id=0x1 <magic 0x7d65487d> <pcomp> <accomp>]
....
PAP authentication succeeded
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
....
local IP address local.ip.address
remote IP address remote.ip.address
primary DNS address primary.dns.ip
secondary DNS address secondary.dns.ip
Script /etc/ppp/ip-up started (pid 4646)
Script /etc/ppp/ip-up finished (pid 4646), status = 0x0
....
Вывод команды ifconfig укажет на наличие работающего сетевого интерфейса:
....
ppp0
Link encap:Point-to-Point Protocol
inet addr:ip.address P-t-P:ptp.ip.address Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:64 (64.0 B) TX bytes:82 (82.0 B)
....
ppp0
Link encap:Point-to-Point Protocol
inet addr:ip.address P-t-P:ptp.ip.address Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:64 (64.0 B) TX bytes:82 (82.0 B)
....
Вот и все, доступ в интернет через провайдера GPRS настроен.
Разорвать соединение можно элементарно:
# killall pppd
Написать скрипты, запускающие и прерывающие соединение в одну команду не составит труда.