Ubuntu: Раздаем интернет на Palm через Bluetooth – за 10 шагов

Смысл данной статьи: заставить КПК Palm, имеющий интерфейс Bluetooth выходить в интернет через настроенное соединение в Linux. Хотя правильнее будет сказать – заставить Linux раздавать интернет на Palm через Bluetooth.
Итогом всех манипуляций будет это:


Шаг 1
Убедимся, что у нас установлены пакеты ipmasq и dnsmasq:

apt-get install ipmasq dnsmasq

gksudo gedit /etc/bluetooth/hcid.conf

В редакторе ищем строку, определяющую имя Bluetooth на ПК name “%h-%d” и меняем на что-то более осмысленное, например: name “ubuntu”;
Затем строку security user; меняем на security auto. Также убедитесь, что строки auth enable и encrypt enable закомментированы. Сохраняем и закрываем.

Шаг 2

gksudo gedit /etc/bluetooth/pin

Смените 1234 на что-то другое (ЦИФРЫ!), сохраните и закройте.
NB: В моем случае файл открылся пустым, так что я не менял 1234, а просто прописал новый пароль и сохранил. Не пугайтесь.

Шаг 3

sudo nano /proc/sys/net/ipv4/ip_forward

Замените 0 на 1 и сохраните (Ctrl+X, нажмите ‘Y’, нажмите Enter)

Шаг 4

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

NB: Подразумевается, что сетевой интерфейс в Ubuntu, раздающий интернет – eth0, если у вас другой, например, eth1, поменяйте его на свой в вышеприведенной строке

Шаг 5

sudo iptables -A FORWARD -i ppp0 -j ACCEPT

Шаг 6

sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

Шаг 7
Найдем IP нашего DNS-сервера:

cat /etc/resolv.conf

Терминал нам выдаст нечто вроде этого: nameserver 192.168.0.1. Этот IP-адрес и является адресом DNS.
Теперь создадим файл PPP-соединения между Palm и компьютером.

gksudo gedit /etc/ppp/peers/palm

Содержимое palm:

115200
192.168.2.1:192.168.2.2
local
ms-dns 192.168.0.1
noauth
debug

NB: Видите строчку ms-dns 192.168.0.1? Если у вас другой DNS-адрес, его нужно менять именно тут.

Шаг 8

dund --nodetach --listen --persist --msdun call palm

Эта команда запустит демона Bluetooth LAP (Lan access over PPP) в не-демоническом :0) режиме и вы сможете наблюдать процесс Bluetooth-соединения вашего КПК и ПК.

Шаг 9
Теперь настроим Palm:
а) Prefs – Connection – New…
б) Name: LinuxBT (например), Connect to: PC, Via: Bluetooth.
в) Жмите Tap to Find, и из списка выберите свой ПК (помните, мы его назвали для примера ubuntu)
г) Введите свой заданный пароль, нажмите ОК.
д) Идем в Prefs – Network
е) Service: Linux, User Name/Password – пустые, Connection: LinuxBT.
ж) Жмите Connect.

Наш dund будет выводить строки процесса соединения, в моем случае соединение установилось сразу и ничего дополнительно настраивать не пришлось!

Шаг 10
Создадим шелл-скрипт расшаривания интернет-соединения и сделаем так, чтобы он запускался автоматически во время загрузки

gksudo gedit /etc/init.d/start_bluetooth.sh

Содержимое start_bluetooth.sh:

#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i ppp0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
killall -v dund
dund --listen --persist --msdun call palm

Сохраним и закроем. Затем выполним:

sudo chmod -v 755 /etc/init.d/start_bluetooth.sh
sudo ln -sv /etc/init.d/start_bluetooth.sh /etc/rc2.d/S98start_bluetooth

Готово!

9 thoughts on “Ubuntu: Раздаем интернет на Palm через Bluetooth – за 10 шагов”

  1. у меня в свойствах соединения (правой кнопкой по апплету NetworkManager) – eth2,
    его и подставлять в
    “sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE”?

    Относительно “sudo iptables -A FORWARD -i ppp0 -j ACCEPT”.
    В gnome-netstatus-applet 2.12.2 соединение имеет имя ppp0.
    И при установке connect на Palm в выводе dund ошибка:
    “Cannot determine ethernet address for proxy ARP dund”

    Может, нужно поменять ppp0 в “sudo iptables -A FORWARD -i ppp0 -j ACCEPT”?
    На что?

  2. Михаил, да. В вашем случае нужно eth0 поменять на eth2 везде. Про “Cannot determine ethernet address for proxy ARP dund” – проверьте, установлен ли у вас пакет “ipmasq” и “dnsmasq” (выполните “apt-get install ipmasq dnsmasq”).

  3. Спасибо!
    Действительно не было ipmasq
    Теперь ошибка:
    sudo iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT
    Bad argument `–state’

  4. Понял: это из- замены — на длинное тире.

    Взял команды отсюда:

    Блог / Хабрацентр им. alfsoft http://alfsoft.habrahabr.ru/blog/31440/ Thu Dec 25 2008 23:37:51 GMT+0300 (MSK)
    sudo iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT

  5. Да, да. Сейчас стали слишком умные типографы в движках сайтов, которые заменяют символы на другие. Там должно стоять два знака “-” подряд.

  6. Получилось!
    Спасибо, гуру!
    А где Вы нашли этот рецепт?
    Или сами придумали?
    Можно попросить расписать смысл шагов, что делает каждый?

    Да, ошибка “Cannot determine ethernet address for proxy ARP” осталась.
    Но это не помешало выходу в интернет на Palm.
    Очень рад, и не надо тратиться на wi-fi.

    Первая неудача была из-за неустановленного ipmasq. И надо определять _своего_ имя сетевого интерфейса.

  7. Еще наблюдение. dund “подвешивает” интернет на десктопе.
    И даже ^C, потом dund -K не помогают. приходится перезагружаться.
    Как “переключить” интернет без перезагрузки?
    Можно ли разделить интернет между Palm’ом и десктопом, есть возможность быть в интернете параллельно?

    Серьезно подвис интернет. Перезагрузка не помогала, помогло удаление ipmasq.
    Что-то не так?

  8. К сожалению, не знаю. Я тоже собирал мануал из англоязычных источников, переделывал его немного, разбирался в чем-то. Но в вашем случае я не знаю, чем помочь, к сожалению. У меня заработало все нормально с ipmasq.

  9. Подскажите, может вы в курсе как сие под маком провернуть. А то вот как задался вопросом, так вот уже третий день бьюсь все никак не выходит 🙁

    Есть Mac OS X, версии 10.5.6 и собственно сам Palm Tungstent T3.

    Толи в маке что не так настраиваю, то ли на пальме не то творю 🙂 Скорее первое, потому как коннектить вроде получается, палм пишет signing on, что-то мурыжит, а потом вылетает error: timeout (0x1212), в скобках еще и другой код проскакивал.

    Заранее благодарен за любую помощь в решении вопроса.

Leave a Reply

Your email address will not be published.