Представьте, что вы поехали в другую страну, у вас собой есть смартфон и вам очень нужно зайти с него в интернет (например синхронизировать контакты или поставить какой-то софт). Какие есть варианты?
— Первый вариант — это мобильный интернет. К сожалению, это не всегда просто и не всегда дёшево.
— Второй вариант — WIFI. Вам повезло, если вы можете подключиться к WIFI там, куда вы прибыли, и в этом случае задача уже решена.
— Третий вариант — LAN. А что если у нас есть только LAN? Самое простое — это захватить с собой из дома небольшую точку доступа, но что если вы её не взяли с собой или у вас её нет? В этос случае вам поможет случайно захваченный с собой ноутбук или нетбук :)
— EeePC 901 с Ubuntu 10.10
— Смартфон
— Локальная сеть
— Получить доступ в сеть со смартфона используя WIFI
Данное решение выработано исходя из того, что иметь постоянно настроенный и включенный WIFI на нетбуке в режиме точки доступа не является целесообразным, поэтому реализовано оно в виде скрипта, который включает этот режим временно.
Для решения задачи нам потребуются:
— hostapd — обеспечивает работу сетевой карты в режиме точки доступа
— dnsmasq — выступает в качестве DHCP и DNS сервера
— скрипты install.sh и start.sh для автоматизации процесса
Первый скрипт поможет установить необходимые пакеты.
install.sh
А это минимальный конфиг для hostapd.
/etc/hostapd.conf
Минимальный конфиг для dnsmasq.
/etc/dnsmasq.conf
И второй скрипт, который переводит сетевую карту в режим точки доступа и обратно.
start.sh
К вы наверное уже догадались, использовать данное решение очень просто. Итак, подготовка.
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 или другой дистрибутив. В связи с ближайшей поездкой за границу производилась попытка найти готовое ПО реализующее данный функционал, но она не увенчалась успехом. В связи с этим и родилось вышеописанное решение.
Приятных экспериментов!
Donations are welcome.
UPDATE:
— Обновлённый скрипт на GitHub https://github.com/giner/helplinux/tree/master/scripts/wifi-host-ap
— Первый вариант — это мобильный интернет. К сожалению, это не всегда просто и не всегда дёшево.
— Второй вариант — 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 или другой дистрибутив. В связи с ближайшей поездкой за границу производилась попытка найти готовое ПО реализующее данный функционал, но она не увенчалась успехом. В связи с этим и родилось вышеописанное решение.
Приятных экспериментов!
Donations are welcome.
UPDATE:
— Обновлённый скрипт на GitHub https://github.com/giner/helplinux/tree/master/scripts/wifi-host-ap