Tips & tricks — Подключение к интернету с помощью мобильного через NAP
Раньше, когда я использовал Гном, подключиться к интернету через блютуз, используя BlueMan и NetworkManager проблем не составляло. BlueMan прекрасно интегрировался с NetworkManager'ом; подключение осуществлялось выбором пункта "Точка доступа на <имя_телефона>" в меню NM и все прекрасно работало.
С переходом на OpenBox и wicd такая лафа исчезла - BlueMan соединение устанавливал, но вот интерфейс почему-то не получал адреса и, соответственно, не устанавливались маршруты.
Как я это поборол - под катом.
Устав искать решение по интеграции Blueman с Wicd, я решил пойти другим путем - скриптовым.
Все оказалось на удивление просто.
Для начала нужно убедиться, что у нас установлены все необходимые пакеты для работы блютуза - это вы можете посмотреть в руководстве к своему дистрибутиву.
Теперь нам нужно найти свой телефон:
Нашли. Посмотрим, поддерживает ли телефон необходимую нам функцию доступа к сети:
Поддерживает. Вот и отлично. Можно попробовать и связь поднять:
Вывод ifconfig и route:
Интерфейс поднялся. Отлично. Попробуем получить адрес:
Вывод ifconfig и route:
Осталось только объединить эти команды:
Убить это чудо тоже легко:
Вот и все.
С переходом на OpenBox и wicd такая лафа исчезла - BlueMan соединение устанавливал, но вот интерфейс почему-то не получал адреса и, соответственно, не устанавливались маршруты.
Как я это поборол - под катом.
Устав искать решение по интеграции Blueman с Wicd, я решил пойти другим путем - скриптовым.
Все оказалось на удивление просто.
Для начала нужно убедиться, что у нас установлены все необходимые пакеты для работы блютуза - это вы можете посмотреть в руководстве к своему дистрибутиву.
Теперь нам нужно найти свой телефон:
[magnus@archius ~]$ hcitool scan
Scanning ...
34:7E:39:ED:32:AD Magnus
34:7E:39:ED:32:AD Magnus
Нашли. Посмотрим, поддерживает ли телефон необходимую нам функцию доступа к сети:
[magnus@archius ~]$ sdptool browse 34:7E:39:ED:32:AD
Browsing 34:7E:39:ED:32:AD ...
Service Name: Network Access Point Service
Service Description: Personal Ad-hoc Network Service which provides access to a network
Service RecHandle: 0x10000
Service Class ID List:
"Network Access Point" (0x1116)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 15
"BNEP" (0x000f)
Version: 0x0100
SEQ8: dd 6
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Network Access Point" (0x1116)
Version: 0x0100
Service Name: Network Access Point Service
Service Description: Personal Ad-hoc Network Service which provides access to a network
Service RecHandle: 0x10000
Service Class ID List:
"Network Access Point" (0x1116)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 15
"BNEP" (0x000f)
Version: 0x0100
SEQ8: dd 6
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Network Access Point" (0x1116)
Version: 0x0100
Поддерживает. Вот и отлично. Можно попробовать и связь поднять:
[magnus@archius ~]$ sudo pand --connect 34:7E:39:ED:32:AD --ethernet bnep0 --nodetach --service NAP
pand[4053]: Bluetooth PAN daemon version 4.80
pand[4053]: Connecting to 34:7E:39:ED:32:AD
pand[4053]: bnep0 connected
pand[4053]: Connecting to 34:7E:39:ED:32:AD
pand[4053]: bnep0 connected
Более подробную информацию смотрите в man pand
Вывод ifconfig и route:
[magnus@archius ~]$ ifconfig -a
bnep0 Link encap:Ethernet HWaddr 00:16:CF:FF:7C:42
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
[magnus@archius ~]$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
Destination Gateway Genmask Flags Metric Ref Use Iface
Интерфейс поднялся. Отлично. Попробуем получить адрес:
[magnus@archius ~]$ sudo dhclient bnep0
Вывод ifconfig и route:
[magnus@archius ~]$ ifconfig -a
bnep0 Link encap:Ethernet HWaddr 00:16:CF:FF:7C:42
inet addr:10.0.66.2 Bcast:10.0.66.15 Mask:255.255.255.240
inet6 addr: fe80::216:cfff:feff:7c42/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1400 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:693 (693.0 b) TX bytes:1147 (1.1 Kb)
inet addr:10.0.66.2 Bcast:10.0.66.15 Mask:255.255.255.240
inet6 addr: fe80::216:cfff:feff:7c42/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1400 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:693 (693.0 b) TX bytes:1147 (1.1 Kb)
[magnus@archius ~]$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.66.0 * 255.255.255.240 U 0 0 0 bnep0
default 10.0.66.1 0.0.0.0 UG 0 0 0 bnep0
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.66.0 * 255.255.255.240 U 0 0 0 bnep0
default 10.0.66.1 0.0.0.0 UG 0 0 0 bnep0
Осталось только объединить эти команды:
[magnus@archius ~]$ sudo pand --connect 34:7E:39:ED:32:AD --ethernet bnep0 --nodetach --service NAP && sudo dhclient bnep0
Убить это чудо тоже легко:
[magnus@archius ~]$ sudo pand -K
Вот и все.