twixed.ru huh… nothing interesting here

29Ноя/1015

WiFi access point на Ubuntu 10.04

Сегодня я расскажу, как превратить свой ноутбук под управлением Ubuntu 10.04 в беспроводную точку доступа.
Сложностей в этом вообще никаких, кроме ограничения по производителям беспроводных адаптеров. Полного списка оборудования, поддерживающего режим работы Ad-Hoc у меня нет, но я заявляю, что Atheros AR5001 Wireless Network Adapter в этот список входит. Итак, начнем...

Для начала, нам надо будет перенастроить нашу WiFi карточку для работы с локальной беспроводной сетью в качестве точки доступа. Есть два варианта сделать это.
Начнем с первого - он полностью ручной, и поэтому сгодится для одноразового применения. Открываем консоль, и выполняем следующие команды:

sudo ifconfig wlan0 down
sudo iwconfig wlan0 essid twixed
sudo iwconfig wlan0 mode ad-hoc
sudo iwconfig wlan0 channel 1
sudo iwconfig wlan0 rate auto
sudo iwconfig wlan0 key 1122334455
sudo ifconfig wlan0 192.168.0.1 netmask 255.255.255.0
sudo ifconfig wlan0 up

Посмотрим, что же значат эти команды:
sudo ifconfig wlan0 down - отключаем наш беспроводной интерфейс
sudo iwconfig essid twixed - задаем SSID нашей будущей сети (twixed)
sudo iwconfig wlan0 mode ad-hoc - переключаем режим работы карточки
sudo iwconfig wlan0 channel 1 - устанавливаем рабочий канал
sudo iwconfig wlan0 rate auto - задаем автоматический выбор ширины канала
sudo iwconfig wlan0 key 1122334455 - задаем ключ для нашей сети
sudo ifconfig wlan0 192.168.0.1 netmask 255.255.255.0 - задаем IP-адрес и маску сети
sudo ifconfig wlan0 up - поднимаем сетевой интерфейс

Второй способ - подходит, если Вы часто перезагружаетесь, а каждый раз выполнять эти команды не хочется. Открываем файл /etc/network/interfaces и добавляем(изменяем) туда строки:

auto wlan0
iface wlan0 inet static
address 10.42.43.1
netmask 255.255.255.0
wireless-essid twixed
wireless-mode ad-hoc
wireless-channel 1
wireless-rate auto
wireless-key 1122334455

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

sudo /etc/init.d/networking restart

На этом этапе наша сеть уже должна обнаруживаться, и к ней даже можно подключиться. Но подключающимся клиентам не будут присваиваться IP-адреса и настройки сети, и, следовательно, интернет через нашу машину у них работать не будет. Для того, чтобы WiFi клиенты получали сетевые настройки, необходимо установить DHCP сервер:

sudo apt-get install -y dhcp3-server

и произвести изменения в файле /etc/dhcp3/dhcpd.conf:

option domain-name "domain.local"; # общее для всех клиентов доменное имя
option domain-name-servers 8.8.8.8, 4.4.4.4; # общие для всех клиентов адреса DNS-серверов

default-lease-time 600; # общее для всех клиентов время аренды адреса по умолчанию
max-lease-time 7200; # общее для всех клиентов максимальное время аренды

subnet 10.118.253.0 netmask 255.255.255.0 { # это локальная сеть нашего провайдера. не указываем здесь настроек, чтобы не "попасть"
}

subnet 192.168.0.0 netmask 255.255.255.0{ # настраиваем подсеть на нашем беспроводном интерфейсе
  range 192.168.0.100 192.168.0.199; # позволяем арендовать адреса в указанном диапазоне
  option routers 192.168.0.1; # указываем шлюзом нашу машину
}

Теперь клиенты получают IP адреса и настройки шлюза и DNS-серверов. Однако, наша машина все еще не выпускает их наружу, ограничивая их работоспособность только прямой связью компьютер-компьютер. Для того, чтобы клиенты смогли беспрепятственно ходить в интернет, нам остается лишь дать указание межсетевому экрану отправлять пакеты из нашей сети дальше, в интернет:

sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j MASQUERADE

Осталось закрепить результат, чтобы после перезагрузки не было необходимости вновь применять эту настройку вручную. Просто помещаем эту команду в файл /etc/network/if-up.d/iptables:

#!/bin/sh
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j MASQUERADE

и даем ей права на запуск:

chmod +x /etc/network/if-up.d/iptables

Готово!

Все настройки произведены, пользователи выходят в интернет через WiFi, и никакая перезагрузка машины не страшна. Можно спокойно пойти попить чаю.

Post to Twitter Post to Digg Post to Facebook Post to Google Buzz Send Gmail Post to LinkedIn

Комментарии (15) Пинги (0)
  1. Автор — мудак, в заголовке указано Access Point, а создает он Ad-Hoc

    • по сути, человеку, который настраивает дома раздачу интернета с ноута по воздуху, все-равно как это называется. главное, чтобы работало. а в поисковик этот самый человек с большей вероятностью забьет словосочетание «access point» или «точка доступа», которое услышал от знакомого «программиста». думаю, теперь мой поступок понятен…

      ЗЫЖ так для информации, несколько популярных запросов: «ubuntu 10.04 access point wifi», «ubuntu wifi точка доступа», «точка доступа ubuntu»

  2. Автор мудак, Ad-Hoc можно и проще сделать кликами мышки, а Access Point нужен для андроида и таму подобного.

    • ну, предположим, вы — уважаемый мышковод, оказываетесь за триста километров от целевого компьютера, под рукой у вас только кастрированный GPRS, а клиенту вот прям сейчас нужно раздать инет через вафлю. подскажите, пожалуйста, направления ваших кликов через ssh? а как быть, если на целевом компьютере вообще отсутствует графическая оболочка? бить мышкой по клаве, пока в консоли не наберется «apt-get install ubuntu-desktop»?
      и попробуйте объяснить, почему вы уверены, что девайсы под управлением Android не смогут работать в одноранговой беспроводной сети (только не поднимайте годовалую тему про китайские устройства)? и что значит «и таму подобного»?
      а вообще, почитайте, например, здесь или тут, а затем полистайте на досуге что-нибудь вроде «Linux для чайников». может быть, осознаете, что далеко не все в этом мире крутится вокруг GUI (надеюсь, расшифровку нагуглите сами).

      • Спасибо вам, автор…может мне удастся наконец подключить свой ведро-планшет…

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

  3. Боюсь что автор и правда мудак…
    Я искал тоже для того чтобы на андроиде подключится, измени заголовок уже…

    • и в чем же конкретно у вас проблема? сеть не видит? ключ не подходит? адрес не получает?
      я не раз наталкивался на форумные темы с вопросами о подключении андроид даже к «железным» беспроводным маршрутизаторам. как правило, проблема возникает на китайских устройствах из-за кривых ручек владельцев и/или китайских программистов. надо помнить, что андроид тоже линукс, и получив доступ к его консоли, можно сделать гораздо больше, нежели просто тыкая пальцем в экран.
      ЗЫЖ заголовок темы я менять не стану, потому как два комментария без конкретики среди тысяч просмотров не являются основанием для такого поступка.

  4. добрый вечер

    sudo ifconfig wlan0 essid setka
    essid: Неизвестный хост
    ifconfig: `—help’ показывает информацию по использованию.

    ubuntu 10.04

    что-то я не понял ,подскажите пожалуйста

  5. Добрый день, у меня стационарный комп с WIFI адаптером, который обнаружен, но не умею сделать его точкой доступа. Поможет ли мне ваша инструкция ?

    • Добрый день.
      По идее, дожно сработать, если драйверы встали нормально, и позволяют поднимать Ad-Hoc

      • Добрый день. Драйвера заработали, все гуд, только не могу задать пароль для точки. Выдает ошибку «Error for wireless request «Set Encode» (8B2A) : SET failed on device wlan1 ; Invalid argument.»
        Настройки интерфейса:
        auto wlan1
        iface wlan1 inet static
        address 10.254.239.1
        netmask 255.255.255.0
        wireless-essid MYPOINT
        wireless-mode Ad-Hoc
        wireless-channel 11
        wireless-rate auto
        wireless-key restricted [2] s:mypassword

        На последней строке выдает вышеуказанную ошибку. Если отбросить [2] и все, что справа, то проглатывает. Точка снаружи видна, просит пароль, но введенный пароль не принимает (что вполне естественно).
        Как задать пароль правильно?


Leave a comment

Нет обратных ссылок на эту запись.