WHAT'S NEW?
Loading...

Переключение WIFI в режим точки доступа

Представьте, что вы поехали в другую страну, у вас собой есть смартфон и вам очень нужно зайти с него в интернет (например синхронизировать контакты или поставить какой-то софт). Какие есть варианты?
— Первый вариант — это мобильный интернет. К сожалению, это не всегда просто и не всегда дёшево.
— Второй вариант — WIFI. Вам повезло, если вы можете подключиться к WIFI там, куда вы прибыли, и в этом случае задача уже решена.
— Третий вариант — LAN. А что если у нас есть только LAN? Самое простое — это захватить с собой из дома небольшую точку доступа, но что если вы её не взяли с собой или у вас её нет? В этос случае вам поможет случайно захваченный с собой ноутбук или нетбук :)



Имеем


— EeePC 901 с Ubuntu 10.10
— Смартфон
— Локальная сеть

Задача


— Получить доступ в сеть со смартфона используя WIFI

Решение


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

Для решения задачи нам потребуются:
— hostapd — обеспечивает работу сетевой карты в режиме точки доступа
— dnsmasq — выступает в качестве DHCP и DNS сервера
— скрипты install.sh и start.sh для автоматизации процесса

Первый скрипт поможет установить необходимые пакеты.

install.sh
#!/bin/bash

# Install wifi hotspot daemon and dns/dhcp server
sudo apt-get install hostapd dnsmasq
# Stop installed services
sudo service hostapd stop
sudo service dnsmasq stop
# Disable autostart on boot
sudo update-rc.d hostapd disable
sudo update-rc.d dnsmasq disable


А это минимальный конфиг для hostapd.

/etc/hostapd.conf
# Define interface
interface=wlan0
# Select driver
driver=nl80211
# Set access point name
ssid=laptop-wifi
# Set access point harware mode to 802.11g
hw_mode=g
# Set WIFI channel (can be easily changed)
channel=6
# Enable WPA2 only (1 for WPA, 2 for WPA2, 3 for WPA + WPA2)
wpa=2
wpa_passphrase=wifipass


Минимальный конфиг для dnsmasq.

/etc/dnsmasq.conf
# Bind to only one interface
bind-interfaces
# Choose interface for binding
interface=wlan0
# Specify range of IP addresses for DHCP leasses
dhcp-range=192.168.150.2,192.168.150.10


И второй скрипт, который переводит сетевую карту в режим точки доступа и обратно.

start.sh
#!/bin/bash

# Start
# Configure IP address for WLAN
sudo ifconfig wlan0 192.168.150.1
# Start DHCP/DNS server
sudo service dnsmasq restart
# Enable routing
sudo sysctl net.ipv4.ip_forward=1
# Enable NAT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Run access point daemon
sudo hostapd /etc/hostapd.conf

# Stop
# Disable NAT
sudo iptables -D POSTROUTING -t nat -o eth0 -j MASQUERADE
# Disable routing
sudo sysctl net.ipv4.ip_forward=0
# Disable DHCP/DNS server
sudo service dnsmasq stop


Использование



К вы наверное уже догадались, использовать данное решение очень просто. Итак, подготовка.
1. Запускаем install.sh.
2. Создаём файл конфигурации с нашими параметрами /etc/hostapd.conf.
3. Подменяем установленный файл конфигурации /etc/dnsmasq.conf нашим, который описан выше.

А теперь использование! Для того, чтобы перевести сетевую карту в режим точки доступа необходимо:
1. Отключить «Беспроводную сеть» (Wireless network) щёлкнув правой кнопкой мыши на аплете Network Manager-а в системном трее.
2. Запустить скрип start.sh. Останов работы скрипта сопровождается отключением сервера точки доступа, а так же DHCP/DNS сервера.

Результат: у вас появится точка доступа с авторизацией по WPA2 именем laptop-wifi и паролем wifipass.

Решение было протестировано на Ubuntu 10.10, но может быть легко адаптировано под другой релиз Ubuntu или другой дистрибутив. В связи с ближайшей поездкой за границу производилась попытка найти готовое ПО реализующее данный функционал, но она не увенчалась успехом. В связи с этим и родилось вышеописанное решение.

Источник

15 комментариев: Leave Your Comments

  1. Спасибо за статью. Очень простое и эффективное решение. Я длого мучался с этой проблемой, а вот теперь все работает идеально

    ОтветитьУдалить
  2. Спасибо, рад что смог помочь.

    ОтветитьУдалить
  3. Анонимный16 января, 2012 23:50

    Скрипт работает, но требуется , чтобы карта поддерживала режим точки доступа. У меня в thinkpade стоит родная для него 4965 AG/AGN, которая его не поддерживает, а с другими картами он грузится - ограничение вендора в BIOS. На DELL и карте Broadcom всё ОК.

    ОтветитьУдалить
  4. Спасибо, я проверял этот скрипт только на своем компьютере и не знал о таких тонкостях, так что спасибо за такой подробный комментарий.

    ОтветитьУдалить
  5. Анонимный20 марта, 2012 22:12

    помогите плиз... подскажите, как раздавать по проводной локальной сети интернет получаемый по вайфаю от роутера. заранее спс

    ОтветитьУдалить
  6. Посмотрите здесь: http://ubuntu-favorite-os.blogspot.com/2010/06/blog-post.html

    ОтветитьУдалить
  7. Анонимный27 марта, 2012 13:25

    Спасибище!!!

    ОтветитьУдалить
  8. Анонимный04 апреля, 2012 08:47

    у меня такая ошибка при старте dnsmasq
    * Starting DNS forwarder and DHCP server dnsmasq
    dnsmasq: failed to create listening socket for 127.0.0.1: Адрес уже используется
    [fail]

    ОтветитьУдалить
  9. Анонимный01 мая, 2012 20:05

    Спасибо за чёткую и понятную статью. Подскажите, в чём может быть проблема - у меня на Ubuntu 11.10 дело стопорится на моменте "WPA: pairwise key handshake completed (RSN)" - после чего происходит "AP-STA-DISCONNECTED", и подключение пытается соединиться заново. За исключением названия точки доступа, IP и пароля всё указывал как в статье...

    ОтветитьУдалить
  10. Скорее всего проблема с ключами или их нет вообще или система не находит их пр подключении, почитайте например здесь о WPA PSK генерации ключей: http://www.opennet.ru/base/net/wifi_setup.txt.html

    ОтветитьУдалить
  11. У меня при подключении пишет неверное имя сервера...Как это исправить?

    ОтветитьУдалить
  12. уточню на телефоне показывает неверное имя сервера при подкл. к вайфаю.

    ОтветитьУдалить
  13. Нетбук ViewSonic с ОС Ubuntu 11.10/ за стенкой дома модем. Как подключиться через WI-FI?

    ОтветитьУдалить
  14. Скажите пожалуйста, а андроид девайсы будут видеть такую сеть??

    ОтветитьУдалить