Настройка Wi-Fi в Debian/Ubuntu в роли точки доступа/клиента |
Обновлено: 28.04.2014 - 20:04
Будет рассмотрено:
1. Настройка hostapd
2. Раздача интернета через Wi-Fi
3. Раздача DC++ и локальных ресурсов провайдера через Wi-Fi
4. Настройка и подключение к Wi-Fi сети через Ubuntu 11.04 desktop
Рассмотрим установку и настройку wi-fi адаптера под системой Linux Ubuntu 11.04. Прежде всего отмечу, что не каждый адаптер определится и будет работать "из коробки" (из коробки – так выражаются, когда при установки оборудования, система имеет уже драйвера и ничего устанавливать не требуется). Прежде всего, гаджеты noname покупать крайне не рекомендуется! Не смотрите в сторону низких цен, покупайте хотя бы самый простой, но фирменный адаптер, от известной фирмы. Будет намного меньше проблем с установкой и дальнейшим использованием. Так-же остерегайтесь зловещей надписи "for windows"
Для начала приведу схему локальной сети. Собственно на базе её и будет осуществляться раздача интернета и DC++ через Wi-Fi.
На схеме имеется шлюз (Ubuntu 11.04 server), у него 3 lan адаптера, 1 смотрит в сторону провайдера, подключается к локальной сети 10.0.0.0/8, на нём же поднимается vpn соединение ppp0, и всё это удовольствие раздаётся на 2 других интерфейса. Планируется добавить 4й интерфейс, которым собственно и будет наш Wi-Fi адаптер.
Приступим к установке. Выключаем сервер, открываем крышку, ставим нашу wi-fi плату, завинчиваем, закрываем, включаем сервер. После успешной загрузки системы, посмотрим какое оборудование у нас появилось. Выполняем команду:
lshw | less
Стрелками вверх/вниз перемещаемся к разделу PCI и ищём наше Wireles устройство.
Далее смотрим, какой драйвер использует система для работы с новым Wi-Fi адаптером (в моём случае, адаптер носит гордое имя Atheros):
dmesg | grep Atheros
Если в ответ система сообщает, что используется ath5k или ath9k, то значит можете смело читать дальше. Если же будет madwifi, то данное руководство к вам не подойдёт. Т.к. при настройке madwifi есть несколько нюансов. Следующим шагом будет установка необходимого программного обеспечения в систему. Выполняем (от имени суперпользователя, или через команду sudo) :
aptitude update
aptitude upgrade
aptitude install wireless-tools bridge-utils hostapd iw dnsmasq
reboot
Здесь сначала происходит опрос зеркал обновлений на наличие новых пакетов, далее они обновляются в системе, и последней командой происходит установка дополнительных программ для работы с wi-fi. Утилиту bridge-utils устанавливать не обязательно, она необходима для поднятия моста к нашему wireles интерфейсу, инструкция по которому не будет здесь описана, но это на случай, если вы всё таки захотите попробовать.
После перезагрузки выполните команду iwconfig и в спсике интерфейсов должен появиться интерфейс wlan0. Это и есть наш Wi-Fi, его мы и будет заставлять работать, как точка доступа, чтобы к нему могли подключаться клиенты. Теперь нужно наш адаптер перевести в режим AP (точка доступа), ну или как минимум soft-AP, это уже зависит от того, на что способен адаптер. Выполняем команду, для перевода режима:
iwconfig wlan0 mode Master
Если в ответ вы получили ошибку, не расстраивайтесь. При неудачном ручном переводе, можно попробовать запустить hostapd, который автоматически и переведёт адаптер в режим AP.
Следующим этапом будет настройка hostapd. Здесь мы зададим имя, пароль и скорость работы нашей wi-fi точки. Редактируем файл /etc/hostap/hostapd.conf
/etc/init.d/hostapd stop
nano /etc/hostapd/hostapd.conf
Приводим конфигурационный файл к следующему виду:
#интерфейс, который будем использовать
interface=wlan0
#драйвер, который будет задействован
driver=nl80211
#говорим всем клиентам, что точка умеет работать в режиме 802.11/n
ieee80211n=1
#имя нашей точки доступа для клиентов
ssid=my-wlan
#скоростной режим работы, согласно стандарта
hw_mode=g
#канал который будем использовать
#(есть одна особенность, если скорость очень плохая,
#попробуйте поменятьк каналы от 1 до 13, у каждого
#канала разный диапазон частот, и если у вас рядом с
#wi-fi много техники, то частоты могут перекрываться)
channel=1
#шифруемся WPA2
wpa=2
#пароль (не менее 8 символов)
wpa_passphrase=administrator9
#алгоритм управления ключами
wpa_key_mgmt=WPA-PSK
#алгоритмы шифрования
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP
Редактируем файл /etc/default/hostapd
nano /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf" #указываем, какой конфиг hostapd будет читать
Закрываем с сохранением. Теперь небольшая оговорка – я создавал сеть всего для 1 устройства, нетбука. Т.е. мне автоматическая раздача ip адресов совсем ненужна. По этому, всё сделал на статический вид. Редактируем файл с сетевыми интерфейсами:
nano /etc/network/interfaces
Добавляем описание интерфейса:
auto wlan0
iface wlan0 inet static
address 192.168.2.1
netmask 255.255.255.0
Перезагружаем сеть и включаем hostapd.
/etc/init.d/networking restart
/etc/init.d/hostapd start
Можете выполнить команду ifconfig и увидеть, что появился сетевой интерфейс wlan0, с адресом 192.168.2.1. Теперь можно подключиться к нашему серверу, через Wi-Fi точку доступа, указав ip адрес 192.168.2.2 и маску 255.255.255.0.
А теперь самое интересное – Настройка раздачи интернета через Wi-Fi. Собственно за этим то он и приобретался. Первым делом устанавливаем DNS сервер. Точнее нам нужен его не весь потенциал, а лишь только то, что он от нашего провайдера, клиентам по Wi-Fi рассказывал, какой ip к какому имени привязан. Спешу обрадовать, ничего настраивать не нужно, просто устанавливаете и запускаете:
aptitude install bind9
/etc/init.d/bind9 restart
Проверяем, запустился ли он:
ps -A | grep named
Теперь нужно наш сервер перевести в режим шлюза. Т.е. что-бы он разрешал через себя переводить трафик из одного интерфейса, в другой (необходимо перезагрузиться после этого):
nano /etc/sysctl.conf
Выставляем значение 1 у параметра net.ipv4.ip_forward=1 и убираем знак комментария вначале, сохраняемся и выходим.
Теперь необходимо добавить правила, по которым трафик будет ходить между wlan0 и ppp0 интерфейсами. Рекомендую сделать так:
1. Создаём файл iptables.load
nano /etc/iptables.load
который будет содержать правила:
*nat
-A POSTROUTING -s 192.168.2.0.0/24 -o ppp0 -j MASQUERADE
COMMIT
*filter
COMMIT
*mangle
-A FORWARD -p tcp -m tcp –tcp-flags SYN,RST SYN -j TCPMSS –clamp-mss-to-pmtu
COMMIT
2. Теперь необходимо, чтобы эти правила подключились во время загрузки сервера. Редактируем файл /etc/network/interfaces
nano /etc/network/interfaces
И в конце, после описания всех интерфейсов дописываем:
post-up iptables-restore < /etc/iptables.load
Сохраняемся, выходим, перезагружаем сервер и пробуем подключиться к нашей точке доступа (с указанием ip клиента 192.168.2.2 и маски 255.255.255.0, адресом шлюза и DNS сервером 192.168.2.1), и пробуем открыть сайт
Поигравшись с интернетом, наверняка захочется использовать локальные ресурсы провайдера (который подключен к интерфейсу eth0) и обмениваться файлами через DC++. Приступим к настройке. Редактируем файл iptables.load
nano /etc/iptables.load
Выглядеть он должен так:
*nat
#раздача интернета для 192.168.2.0/24 сети (wi-fi)
-A POSTROUTING -s 192.168.2.0/24 -o ppp0 -j MASQUERADE
#разрешаем ходить сети 192.168.2.0/24 (wi-fi) в сеть 10.0.0.0/8 (локальные ресурсы провайдера) через eth0
-A POSTROUTING -s 192.168.2.0/24 -d 10.0.0.0/8 -o eth1 -j MASQUERADE
#перенапрявляем 1300 порты UDP и TCP с сервера на клиента 192.168.2.2 (для DC++)
-A PREROUTING -p tcp -d 10.21.12.15 –dport 1300 -j DNAT –to-destination 192.168.2.2
-A PREROUTING -p udp -d 10.21.12.15 –dport 1300 -j DNAT –to-destination 192.168.2.2
COMMIT
*filter
COMMIT
*mangle
-A FORWARD -p tcp -m tcp –tcp-flags SYN,RST SYN -j TCPMSS –clamp-mss-to-pmtu
COMMIT
Закрываем, сохраняемся, перезагружаемся, подключаемся к wi-fi сети, проверяем интернет, проверяем локальные ресурсы провайдера, в DC++ клиенте указываем наш ip адрес 10.21.12.15 и порты TCP и UDP 1300. Собственно настройка на этом закончена.
Маленький совет – сервер можно не перезагружать, а выполнять команды
iptables -t nat -F – сбросить правила
iptables-restore < /etc/iptables.load – добавить правила из файла
И напоследок, расскажу как я настраивал Wi-Fi на нетбуке под Ubuntu 11.04.
Если не вдаваться в глубину настройки, это можно всё выполнить мышкой. На верхней панели нажимаем на сеть, выбираем настройку, заходим в wi-fi и прописывает адрес 192.168.2.2 маску 255.255.255.0 шлюз 192.168.2.1 и DNS 192.168.2.1 сохраняем всё и закрываем. Нажимаем опять на сеть и выбираем Wi-Fi сеть, вводим пароль, и подключение произойдёт.
Но есть одна особенность на Atheros адаптерах, в частности на моём, он ни в какую не хочет перадавать данные выше чем 300кб/с. Хотя минимум должен 2,3мб/с выжимать. Собственно как бороться с проблемой "Медленный Wi-Fi на Ubuntu"? Есть 2 пути решения:
1. Установка дополнительного ПО
aptitude install linux-backports-modules-net-natty-generic
где natty – это имя нашей версии ubuntu
Перезагружаемся, подключаемся, пробуем копировать. Если не выходит, значит нужно обновлять ядро. Как бы это страшно не звучало, это займет у вас меньше минуты:
2. Обновляем ядро до 2.6.39
Добавляем репозиторий с ядром:
add-apt-repository ppa:kernel-ppa/ppa
aptitude update
aptitude upgrade
Если после upgrade система отказалась обновлять ядро, делаем это в ручную:
aptitude install linux-headers-2.6.39-0 linux-headers-2.6.39-0-generic linux-image-2.6.39-0-generic
Перезагружаем сервер, смотрим версию ядра системы:
uname -a
И наслаждаемся скоростью передачи данных по Wi-Fi со скоростью почти в 2,5мб/с
Автор статьи — сайт https://rukul.ru/
------------------------
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Я уже пять лет не занимаюсь сайтом, так как работаю по 12 часов. Образование у меня среднее, и по этому нет нормальной работы. Если бы сайт приносил по 100$ в месяц, я бы добавлял по 50 статей каждый месяц. Если отправите пожертвования, я оставлю Ваши имена и фамилии в списке благодетелей !
Bitcoin: 1AP3JCZVFpHzZwcAyNztbrbFFiLdnKbY1j
Litecoin LfHXHz4k6LnDNNvCodd5pj9aW4Qk67KoUD
Dogecoin D9HHvKNFZxRhjtoh6uZYjMjgcZewwiUME9
Есть также другие кошельки.
Категория: Компьютерные советы
Комментарии |