раздача wifi с ноутбука linux

Expert Users

В этой статье я расскажу как я раздаю WiFi в Ubuntu 14.04, этот способ также будет работать в Debian Jessie и других версиях Linux. Для раздачи wifi нам понадобится пакет hostapd, который нужен для включения режима точки доступа на wifi адаптере, а также пакет dnsmasq в качестве dhcp сервера, для автоматического назначения IP адреса клиентам.

1. Проверка возможности создания точки доступа
Перед тем как приступать к раздаче WiFi, нужно убедиться, что ваш wifi адаптер поддерживает режим точки доступа. Для этого откройте терминал и введите команду (если команда не найдена, то установите пакет iw: “sudo aptitude install iw”):
sudo iw list

В разделе “Supported interface modes” вы должны увидеть опцию “AP”:

Если опции AP нет, то значит ваш wifi адаптер не поддерживает режим точки доступа.

2. Установка hostapd и dnsmasq
Сначала установим нужные пакеты:

Затем остановим сервисы и уберем их из автозагрузки (я запускаю их вручную только когда нужно раздать wifi):

3. Настройка dnsmasq
Откройте файл:

Найдите и пропишите следующие опции:

4. Найтройка hostapd
Откройте файл:

и добавьте следующие строки:

где измените соответствующие значения для interface (ваш интерфейс wifi),ssid (имя точки доступа), wpa_passphrase (пароль для точки доступа)

5. Скрипт запуска точки доступа
В домашней директории создайте файл start_ap.sh и добавьте содержимое:

В моем случае я выхожу в интернет через интерфейс wwan0 (3g модем), в вашем случае это может быть какой-то другой интерфейс, например eth0 или ppp0. Поэтому замените wwan0 на соответствующий интерфейс в вашей системе.

Разрешим запуск скрипта:

6. Запуск точки доступа
Запускать точку доступа и раздавать интернет по wifi теперь можно одной простой командой:

На этом у меня все. Если есть что добавить, пишите в коментариях.

Похожие записи:

Комментарии к записи “ Как раздать интернет по wifi в Ubuntu/Linux ”

root@samsung-r40-debian8:/home/constantine# sh start_ap.sh
net.ipv4.ip_forward = 1
Configuration file: /etc/hostapd.conf
nl80211: Could not configure driver mode
nl80211 driver initialization failed.
hostapd_free_hapd_data: Interface wlan0 wasn’t started
net.ipv4.ip_forward = 0

А как она будет запущена, если она остановлена? (sudo service hostapd stop)

Источник

Беспроводная точка доступа, используя Linux

Самый первый шаг, конечно же:

Мда, в исходниках уже есть 2.0. Такой он, Debian stable. Но на самом деле это нам не особо помешает — версия 1.0 у меня работает достаточно стабильно.

Настройка:

Отредактировать файл /etc/default/hostapd.conf. В нём раскомментировать строку вида Это путь к файлу конфигурации демона hostapd.
Затем идем дальше — редактировать /etc/hostapd/hostapd.conf. Предоставлю содержимое моего файла конфигурации. Предупреждаю, парсер конфигурационных опций у этого демона очень чувствителен и ругается даже на пустые строки с пробелом. На комментарии не ругается.

Сетевой интерфейс беспроводной карты
Драйвер сетевой карты — обычно для hostapd отлично работает nl80211, не вижу смысла менять, да и говорят, что он работает в большинстве случаев.
Название точки доступа, т.н. SSID
Режим работы сетевой карты — 801.11b/g/n. На самом деле — там всегда должно оставаться g, даже если карта способна на n, для настройки режима n придётся кое-что поменять, смотрите дальше:

Беспроводной канал — от 1 до 13. Для лучшей производительности рекомендуются 1, 6 или 11 канал.
Версия WPA
Пароль беспроводной точки
Дополнительные настройки WPA2:
Следующая опция устанавливает блокировку MAC-адресов. Пока не знаю, как это настроить, да и штука довольно бесполезная, но все говорят, что без блокировки эту опцию нужно выставить в ноль — что я и сделал:

Конфиг автоматически проверяется перед запуском, так что — смело пробуйте запустить hostapd. Команды управления:
Напомню — также в Debian можно использовать команды вида service hostapd start, что легче в написании.

Пару шагов для устойчивости:

Пока всё. К точке можно попробовать подключиться, но… Для успешного подключения к точке доступа нужен DHCP сервер, без него к точке полноценно не подключишься — те же операционные системы не дадут этого сделать, поскольку без получения адреса само подключение не имеет особого смысла. Вот его и настроим!

Когда я только начинал учиться настраивать сервера под свои нужды, первое, на что я тогда я наткнулся — это пакет isc-dhcp-server, его я и планировал предложить, и статья уже была готова, но… Я нашёл dnsmasq, и моя жизнь изменилась в лучшую сторону. Dnsmasq — это и кэширующий DNS, и DHCP сервер со своим набором различных фич. Как только я заглянул в его конфиг, мое зрение улучшилось, все мысли в мозгу внезапно стали упорядоченными и я достиг просветления. Реально, конфиг очень простой и понятный. Но пока подготавливаем площадку для работы dnsmasq. Что же делать?

1) Придумать, как будут выглядеть адреса в нашей локальной сети. Я выбрал адреса типа 192.168.51.x.

2) Настроить сетевой интерфейс, на котором будет работать dnsmasq. На самом деле — очень важный шаг, который пропускают многие в своих мануалах по настройке DHCP-серверов. Дело в том, что компьютеру, на котором работает DHCP-сервер, необходимо прописать статический адрес — кто выдаст адрес DHCP-серверу, если он сам не может запуститься без адреса, а адрес себе он выдать не может, потому что не запущен?
Итак, открываем для редактирования файл /etc/network/interfaces и добавляем туда абзац вида:
Сохраняем и перезапускаем наш сетевой интерфейс, на котором настроен DHCP:
Проверяем состояние, сверяем настройки с теми, что должны быть:

3) Нужно удалить любые DNS и DHCP серверы, чтобы dnsmasq мог спокойно запуститься — иначе выдаёт ошибку. У меня были установлены bind9 и isc-dhcp-server, пришлось избавиться от них. Если работаем по SSH из сети, в которой раньше адреса раздавал покойный DHCP-сервер, не перезагружаемся — выдавать адреса уже некому.

4) Нужно создать условия для работы сервера — создать пользователя для того, чтобы под ним запускать dnsmasq, прописать в системных настройках DNS-сервера, к которым dnsmasq будет обращаться и ещё пару мелочей.
Прописываем DNS сервера Гугла. Правда, первой строчкой у нас будет localhost. Это сделано для того, чтобы остальные системные приложения на нашем же сервере, когда им надо получить адрес от DNS-сервера, обращались сначала к dnsmasq, а не к Гуглу. Ну а dnsmasq достаточно умён, чтобы игнорировать эту строчку:

Нужно защитить это файл от перезаписи при каждом запуске системы. Перезаписывает его dhclient, если что. Честно говоря, блокировка от записи — лишь один из способов того, как не допустить перезапись =) Есть и другие, но этот самый простой:

Что же, если вы по каким-либо причинам считаете блокирование файла неверным путём или также хотите использовать DNS, которые столь настойчиво предлагает dhclient? Тогда, как советует merlin-vrn, нужно использовать программу resolvconf.

Если пакет resolvconf ещё не установлен, устанавливаем. Единственное, что нужно для того, чтобы прописать статический адрес DNS для системы — отредактировать /etc/resolvconf/resolv.conf.d/base, вписав туда всё, что мы бы вписали в /etc/resolv.conf:

service resolvconf reload — готово!

Добавляем группу и пользователя:

5) Ставим Dnsmasq, он запускается и готов к работе, но мы его отключаем — ещё не настроен, нечего ему тут делать:

6) Чистим оригинальный файл от стандартного конфига:
Ну а теперь мы готовы настраивать. Скажу сразу — у dnsmasq много разных опций, которые я при написании статьи подробно описывал в комментариях… Пока не понял, что топик раздулся до неприличных и нечитаемых размеров, как будто недостаточно того, что статья и так переполнена текстом и отформатирована, как кусок незнамо чего. Поэтому — я оставлю конфиг с самыми важными без длинных комментариев и всяких дополнительных опций, а конфиг с дополнительными опциями будет под спойлером.

Источник

Создаем точку доступа Wi-Fi под Linux из USB модема

ae5fc9d3

Все началось, когда я заменил материнскую плату в своем домашнем компьютере. В старой плате был встроенный USB Wi-Fi адаптер на обычном Realtek 8187, который два года исправно работал точкой доступа под Windows. В новой плате Wi-Fi модуля не было, зато у меня появился целый сервер на замечательном Intel Atom 525 с одним маленьким недостатком — в нем было очень мало PCI слотов.

Тем не менее, мне удалось подружить Debian 6.0 с чипсетами Ralink 2870/3070 и Atheros 9170, и я готов раскрыть эту страшную тайну всему миру!

Предисловие

В последние годы Wi-Fi система в ядре Linux подверглась серьезной доработке. Идея была очень простой — разбить подсистему на модули, вынести повторяющиеся процедуры MAC уровня в отдельные модули ядра и отдельные демоны и переписать заново драйвера физических устройств. Так появилась пачка компонентов, про которые можно почитать на сайте разработчиков: wireless.kernel.org/en/users/Documentation

Как это часто бывает, красивые теории подверглись воздействию суровой прозе жизни. В нашем случае это выглядит так: для каждого чипсета Ralink 2870/3070 и Atheros 9170 в ядро включены две версии драйверов — «old school», которые работают из коробки, но не могут быть запущена в режиме Master (режим для запуска Access Point) и новые «net-link style» которые все умеют но не работают из коробки. По-умолчанию взаимоисключающие драйвера пытаются запуститься одновременно с печальным результатом. Но довольно сетований, скорее за дело!

Запускаем драйвера. Wi-Fi, просто Wi-Fi

Если вы обычный пользователь, и хотите просто подключаться к имеющимся Wi-Fi сетям, то на Debian 6 (и других подобных убунтариях) вам нужно сделать следующее:

Для чипсета RT2870/3070 на коем собраны популярные Dlink DWA-140, TL-WN727N рекомендую оставить драйвер старого стиля rt2870sta, к которым не забываем скачать firmware.

apt-get install firmware-ralink wireless-tools

Далее идем в /etc/modprobe.d/blacklist.conf и блокируем запуск драйверов нового стиля:

Для Ar9170 аналогичная процедура. На нем собраны Dlink DWA-130, 160 а так же очень популярный в узких кругах TL-WN821N v2. В мои же руки попал Netgear WNA1000.

apt-get install firmware-atheros wireless-tools

Блеклистим carl9170 и вперед!

Потом идем в /etc/network/interfaces и пишем там нечто вроде:

Если у тебя, уважаемый хабраюзер уже замигал Wi-Fi и больше ничего не требуется, то смело закрывай тему.

Запускаем драйвера. Сильные духом

Итак, настойчивый хабраюзер, несмотря на скепсис признанных гуру, мы все еще хотим запустить USB Wi-Fi в режиме точки доступа.

После компиляции и инсталляции не забываем отключить старый стиль в /etc/modprobe.d/blacklist.conf

И конечно не забываем выгрузить ранее загруженные драйвера:

Драйвера нового стиля корректно выгружать так (пригодится при отладке):

Страшная тайна firmware!

Кажется все. Запускаем modprobe … и полное разочарование! В логах опять ругается на firmware. Дело в том что новые драйвера имеют и фирмваре другое. Для Ralinka идем сюда: www.ralinktech.com/support.php?s=2 и скачиваем нечто вида RT2870_Firmware_V22.
Распаковываем и пишем в /lib/firmware, удивляясь как это файл с одинаковым именем может отличаться ровно в два раза по размеру! Внимательный читатель уже отметил этот факт раньше. Дело в том, что несколько месяцев назад разработчики объединили драйвера для чипсетов rt2870 и rt3070 в один. Не мудрствуя лукаво назвали драйвера и фирмваре по имени 2870. Вы видели на странице Ралинка фирмваре 3070? И я не видел, а оно там есть! Адаптер DWA-140 сделан на чипсете 3070 и распознается драйверами rt2800usb.

С Атеросом немного проще, идем на страницу разработчиков и скачиваем свежую версию: wireless.kernel.org/en/users/Drivers/carl9170#Firmware

Чтобы точно разобраться с фирмваре, смотрим что хочет модуль драйвера, например:
modinfo carl9170 | grep firm

А потом проверяем что необходимое фирмваре есть:
ls /lib/firmware/

Далее уже привычные манипуляции с rmmod, modprobe и lsmod и ура! Мы подняли правильные драйвера, а значит пришло время набрать заветную команду
iwconfig wlan0 mode Master

Бах! Ошибка! SET failed on device wlan0 ; Invalid argument. Неужели все было проделано зря? Конечно нет. Просто у новой подсистемы свой путь, и как это часто бывает с новым и хорошим, он категорически отрицает старое и хорошее. На форумах этот вопрос обсуждают примерно так:
— Why?
— RTFM!
— Cам ты RTFW! Небо, небо не видело такого кю!

Мануал сообщает нам что отныне все настройки для точки доступа делаются через программу hostapd: wireless.kernel.org/en/users/Documentation/hostapd

Подключаем репозиторий sid в Дебиан (во всех остальных безнадежно старые версии) и ставим новые утилиты работы с радио fw и демон hostapd
apt-getinstall iw hostapd

После чего пишем iw list и видим заветные Supported interface modes: AP, а заодно и список частот.

Танцы с бубном. Hostapd

2. Все настройки сначала проверяем без шифрования! И не забываем проверять dhcpd, который тоже любит умирать при перезагрузке интерфейсов. Вот почему Linux + USB = ненависть! Лучше настройку hostapd проводить без dhcp, с фиксированным IP адресе на клиенте, и лишь в конце перейти к настройке dhcpd.

Теперь конфиг hostapd с пояснением. ( Update: поправлены комментарии, # не работает в конце строки)

Лирическое отступление

Так получилось, что ковырясь с hostapd я потерял всякую надежду запустить свой Dlink DWA-140 на чипсете Ralink 3070. Мне совершенно точно удалось запустить его в работу без шифрования, но при включении шифрования или я допускал ошибку, или действительно этот модуль плохо взаимодействует с ядерными модулями шифрования ( на форумах я видел описание проблемы и одна из версий решения указывала на модули шифрования ecb и arc4).

Финальный аккорд с включением шифрования я уже реализовал на Netgear WNA1000 на чипсете Atheros 9170, который действительно лучше работает и корректно подгружает все модули шифрования.

Теперь я думаю что можно таки было запустить Ralink с шифрованием и призываю поставить жирную точку в том вопросе счастливых обладателей DWA-140. Пишите о своих успехах или проблемах в комментариях, попробуем разобраться вместе.

Вместо послесловия

Теперь у нас в кладовке или на шкафу тихо жужжит маленький сервер с USB Wi-Fi адаптером, можно насладиться проделанной работой. Но не тут то было! В современной многоэтажке нашпигованной точками доступа со всех сторон идут помехи. Чтобы выбрать канал я советую изучить эфир программой InSSIDer

Вот так выглядел выбор канала у меня вечерком у окошка:

Источник

Настройка Wifi AP на примере Ubuntu

Этот топик является продолжением Настройка Wifi в Linux при помощи Adhoc на примере Ubuntu. Я не буду описывать настройку раздачи интернета и dhcp т.к. это есть в предыдущем типике. Как и прошлая статья, эта будет нацелена на новичка. Благодаря покупке HTC Hero, я был вынужден настроить WIFI на режим AP, ибо оказалось, что Hero Adhoc изначально не поддерживает.(Кстати HTC Hero подключился, но интеренет не работает надеюсь в новой прошивке это решится)
К сожалению в моем Dlink DWA-110 нет AP, зато есть SoftAP. Его то мы и настроим.

Для работы необходимо ядро 2.6.30 или новее.
Нам понадобится запустить терминал и перейти в режим суперпользователя командой sudo su
Установим требующиеся пакеты:
sudo apt-get install binutils hostapd libnl1 wireless-tools libiw29
Сделаем бекап стандартной конфигурации
sudo mv /etc/hostapd/hostapd.conf /etc/hostapd/hostapd-bak.conf
Узнаем наш интерфейс Wifi
ifconfig
Появится что то вроде
eth0 Link encap:Ethernet
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:77068 errors:0 dropped:0 overruns:0 frame:0
TX packets:55746 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:90178476 (90.1 MB) TX bytes:7529014 (7.5 MB)
Interrupt:31 Base address:0xc000

lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:107457 errors:0 dropped:0 overruns:0 frame:0
TX packets:107457 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:32888450 (32.8 MB) TX bytes:32888450 (32.8 MB)

Источник

Настройка точки доступа в Ubuntu

В бюджетных ноутбуках часто используются беспроводные сетевые адаптеры от компании Broadcom. Если в Windows не возникает никаких проблем при создании точки доступа на карте практически любого производителя, то в Linux про точку доступа мы уже не говорим, просто подключиться к сети через WiFi может вызвать очень серьезные затруднения. Правда, в последнее время ситуация немного улучшилась.

В этой инструкции мы рассмотрим как создать точку доступа Wifi Ubuntu, на примере карты на карте Broadcom. В других дистрибутивах действия и настройки будут похожие, только файлы и команды установки могут немного отличаться. Мы разберемся как сделать точку доступа wifi через графический интерфейс и в терминале.

Подготовка к созданию точки доступа

Для карт Broadcom есть четыре драйвера: стандартный и по умолчанию включенный b43, входящие в состав ядра brcmsmac и brcmfmac, а также проприетарный драйвер broadcom linux под названием wl. Сразу скажу что проприетарный драйвер совсем никудышный, так как не поддерживает не только режим точки доступа, но и неразборчивый режим тоже.

Стандартный b43 и brcmfmac для карты B4313 не подходят потому что не работают в режиме точки доступа, хотя эти уже поддерживают режим монитора. Посмотреть поддерживает ли ваш драйвер режим точки доступа (Master Mode) можно на этой странице. Остается только brcmsmac, который можно заставить раздать wfi linux. Сначала разберемся с драйверами ядра. Теперь, когда мы определились что будем использовать, перейдем к настройке broadcom linux. Смотрим какой драйвер загружен:

Если есть вот такие строчки, то все хорошо и драйвер загружен правильно:

brcmsmac 497481 0
cordic 1024 1 brcmsmac
brcmutil 4596 1 brcmsmac

Но если загружен b43 или broadcom-wl их нужно удалить. Например, для b43:

И запустить brcmsmac:

sudo modprobe brcmsmac

Лучше полностью удалить проприетарный драйвер broadcom linux из системы если он установлен и добавить в черный список ненужные драйверы, оставив только brcmsmac. Чтобы при перезагрузке грузился только он, для этого добавляем такие строчки в файл /etc/modprobe.d/50-blacklist.conf:

sudo vi /etc/modprobe.d/50-blacklist.conf

blacklist b43
blacklist b43-legacy

Для сетевых карт других производителей, вам следует сначала попробовать раздавать Wifi и только если не получится пробовать использовать другой драйвер.

Настройка точки доступа Wifi в Ubuntu

Чтобы создать точку доступа Ubuntu сначала нужно кликнуть по значку сети в правом верхнем углу и выбрать Параметры Wifi:

Rabochee mesto 2 043

В открывшемся меню кликните по кнопке бутерброда и выберите Включить точку доступа:

Rabochee mesto 2 044

Перед активацией компьютер предупредит вас, что вы не сможете подключится к интернету по Wifi если включёна точка доступа:

Rabochee mesto 2 045

Затем покажет имя сети и пароль от неё, который создаётся автоматически:

Rabochee mesto 2 046

Используя эти данные вы можете подключится к только что созданной точке доступа. Всё должно работать. Отключить её можно здесь же, надо только кликнуть по соответствующему переключателю.

Настройка точки доступа вручную

Для того чтобы раздать Wifi вручную нам понадобится пакет hostapd. Установите его командой:

sudo apt install hostapd

Стандартная конфигурация программы нам не подойдет, поэтому оригинальный конфигурационный файл переименовываем и создаем вот такой:

sudo vi /etc/hostapd/hostapd.conf

interface=wlp3s0
driver=nl80211
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
macaddr_acl=1
ssid=LosstAccessPoint
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=3
ieee80211n=1
wmm_enabled=1
eap_server=0
eap_message=hello
eapol_key_index_workaround=0
own_ip_addr=127.0.0.1
wpa=2
wpa_passphrase=your_password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP TKIP
rsn_pairwise=CCMP

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

sudo systemctl unmask hostapd

Затем в конфигурационном файле /etc/default/hostapd в строчке DAEMON_CONF добавьте путь к конфигурационному файлу:

sudo vi /etc/default/hostapd

Snimok ekrana ot 2020 06 08 17 24 47

С настройкой hostapd все, но запускать точку доступа еще рано, я бы даже сказал очень рано. Перейдем к конфигурации сетевого интерфейса. Нам нужно задать статический ip, DNS, режим и еще несколько настроек. Для этого идем в /etc/network/interfaces и добавляем следующие строки:

auto wlp3s0
iface wlp3s0 inet static
address 10.10.0.1
netmask 255.255.255.0

Это нужно в том числе для того, чтобы NetworkManager не трогал сетевой интерфейс Wifi. После сохранения настроек перезапустите компьютер. Осталось настроить DHCP сервер для раздачи IP пользователям, которые будут подключаться к нашей сети. Для этого используем dnsmasq:

sudo apt install dnsmasq

После установки открываем конфигурационный файл и добавляем туда несколько строк, чтобы программа слушала интерфейс wlp3s0, и выдавала адреса в диапазоне 10.10.0.x:

sudo vi /etc/dnsmasq/dnsmasq.conf

dhcp-range=10.10.0.2,10.10.0.255,255.255.255.0,12h
interface=wlp3s0
listen-address=127.0.0.1
dhcp-host=00:0f:00:5a:b6:42,10.10.0.1
cache-size=300
dhcp-authoritative
server=8.8.8.8
no-resolv
address=/backbone/10.10.0.1
dhcp-option=3,10.10.0.1
dhcp-option=1,255.255.255.0
log-queries
log-dhcp

Snimok ekrana ot 2020 06 08 17 23 54

В этом конфигурационном файле вам надо кое-что поправить, а именно MAC адрес в поле dhcp_host замените значение 00:0f:00:5a:b6:42 на своё для интерфейса wlp3s0. Его можно узнать командой:

ip addr list | grep wlp3s0

В выводе команды ищите параметр link:

Snimok ekrana ot 2020 06 08 17 23 06

Осталось настроить iptables для пропускания трафика и настроить автозагрузку всего этого, но предлагаю пойти другим путем. Мы напишем скрипт, которым можно будет в любой момент раздать Wifi в Linux, а также остановить раздачу. Вот сам скрипт:

sudo vi /usr/local/bin/wifi_access_point.sh

После сохранения скрипта дайте ему права на выполнение:

sudo chmod ugo+x /usr/local/bin/wifi_access_point.sh

И вот только теперь можно тестировать. Для чтобы раздать Wifi Ubuntu используйте:

sudo /usr/local/bin/wifi_access_point.sh start

sudo /usr/local/bin/wifi_access_point.sh stop

Вы можете добавить этот скрипт в автозагрузку, чтобы настройка точки доступа wifi linux выполнялась автоматически.

Выводы

Вот и все. Теперь вы знаете как выполняется настройка точки доступа Ubuntu и сможете раздать Wifi на своем компьютере или ноутбуке. Это довольно сложный процесс, но если разобраться, то вполне можно выполнить. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

Поделиться с друзьями
DOMA35.RU