— Первый вариант — это мобильный интернет. К сожалению, это не всегда просто и не всегда дёшево.
— Второй вариант — 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 или другой дистрибутив. В связи с ближайшей поездкой за границу производилась попытка найти готовое ПО реализующее данный функционал, но она не увенчалась успехом. В связи с этим и родилось вышеописанное решение.
Источник
Спасибо за статью. Очень простое и эффективное решение. Я длого мучался с этой проблемой, а вот теперь все работает идеально
ОтветитьУдалитьСпасибо, рад что смог помочь.
ОтветитьУдалитьСкрипт работает, но требуется , чтобы карта поддерживала режим точки доступа. У меня в thinkpade стоит родная для него 4965 AG/AGN, которая его не поддерживает, а с другими картами он грузится - ограничение вендора в BIOS. На DELL и карте Broadcom всё ОК.
ОтветитьУдалитьСпасибо, я проверял этот скрипт только на своем компьютере и не знал о таких тонкостях, так что спасибо за такой подробный комментарий.
ОтветитьУдалитьпомогите плиз... подскажите, как раздавать по проводной локальной сети интернет получаемый по вайфаю от роутера. заранее спс
ОтветитьУдалитьПосмотрите здесь: http://ubuntu-favorite-os.blogspot.com/2010/06/blog-post.html
ОтветитьУдалитьСпасибище!!!
ОтветитьУдалитьПожалуйста :)
ОтветитьУдалитьу меня такая ошибка при старте dnsmasq
ОтветитьУдалить* Starting DNS forwarder and DHCP server dnsmasq
dnsmasq: failed to create listening socket for 127.0.0.1: Адрес уже используется
[fail]
Спасибо за чёткую и понятную статью. Подскажите, в чём может быть проблема - у меня на Ubuntu 11.10 дело стопорится на моменте "WPA: pairwise key handshake completed (RSN)" - после чего происходит "AP-STA-DISCONNECTED", и подключение пытается соединиться заново. За исключением названия точки доступа, IP и пароля всё указывал как в статье...
ОтветитьУдалитьСкорее всего проблема с ключами или их нет вообще или система не находит их пр подключении, почитайте например здесь о WPA PSK генерации ключей: http://www.opennet.ru/base/net/wifi_setup.txt.html
ОтветитьУдалитьУ меня при подключении пишет неверное имя сервера...Как это исправить?
ОтветитьУдалитьуточню на телефоне показывает неверное имя сервера при подкл. к вайфаю.
ОтветитьУдалитьНетбук ViewSonic с ОС Ubuntu 11.10/ за стенкой дома модем. Как подключиться через WI-FI?
ОтветитьУдалитьСкажите пожалуйста, а андроид девайсы будут видеть такую сеть??
ОтветитьУдалить