Как мне создать точку доступа Wi-Fi, не связанную с adhoc?


13

Я хотел использовать свой рабочий стол с проводным Ethernet-соединением (eth0) для работы моего «Wi-Fi-адаптера TP-LINK TL-WN722N» (wlan0) в качестве точки доступа без поддержки (режим инфраструктуры), к которой мой Android может подключиться.

После МНОГО поиска, я наконец нашел метод (распространенный на многих сайтах), который делает большую часть того, что мне нужно ...

зависимости:

 hostapd
 bridge-utils

Я изменил "/ etc / network / interfaces"

sudo gedit /etc/network/interfaces

содержать:

# This file describes the network interfaces available on your system
# and how to activate them.

auto lo br0
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual

# Bridge setup

# for dhcp address
iface br0 inet dhcp
bridge_ports eth0 wlan0

# for static ip
# iface br0 inet static
# bridge_ports eth0 wlan0
# adapt with your network settings
# address 192.168.1.250
# netmask 255.255.255.0
# network 192.168.1.0
# broadcast 192.168.1.255
# gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
# dns-nameservers 192.168.1.1
# dns-search localdomain

### Reference ###

# Creating a Wireless Access Point with Debian Linux « Agent Oss (October 31, 2011)
# https://agentoss.wordpress.com/2011/10/31/creating-a-wireless-access-point-with-debian-linux/

Мой "/etc/hostapd/hostapd.conf" (который мне каким-то образом удалось собрать самостоятельно)

sudo gedit /etc/hostapd/hostapd.conf

содержит:

 ### Guts ###

 interface=wlan0
 bridge=br0
 driver=nl80211

 ### General ###

 ssid=____________________
 hw_mode=g
 channel=1

 ### Security ###

 macaddr_acl=0
 auth_algs=1
 ignore_broadcast_ssid=0     ## 0 visible # 1 hidden ##
 wpa=2
 wpa_passphrase=____________________
 wpa_key_mgmt=WPA-PSK
 wpa_pairwise=TKIP
 rsn_pairwise=CCMP

 ### Reference ###

 ## Created Tuesday, February 14, 2012 ## Ubuntu 11.10/12.04 ##

 # Hostapd Linux Documentation Page
 # http://linuxwireless.org/en/users/Documentation/hostapd

 # Creating a Network Bridge on Ubuntu (January 16th, 2011)
 # http://webserver.linuxportal.nl/?p=422

(Я отредактировал биты безопасности для этого поста)

Все это позволяет мне открыть Терминал и выполнить:

 sudo hostapd -B /etc/hostapd/hostapd.conf

иметь работающую точку доступа, к которой мой Android и все другие устройства WiFi могут подключаться.

Кроме того, чтобы поделиться этим методом с другими, так как информация для этой настройки очень скудна; Есть три проблемы, которые было бы неплохо решить:

  1. Эта конфигурация деактивирует сетевой менеджер и все его функции. Когда вы щелкаете по нему, выдается сообщение «устройство не управляется». (не важно, но немного раздражает меня)
  2. Этот метод может время от времени бороться с IP-адресами.
  3. Я должен использовать терминал, чтобы включить Wi-Fi. (Хорошо для меня, но не для семьи). Я разобрался, как сделать лаунчер с помощью gksu и простого скрипта, если он кому-нибудь нужен ...

Запуск wifi / хостапд без терминала

  1. (Почему сетевой менеджер не может сделать это из коробки ??)

Заранее спасибо! Я надеюсь, что все это может помочь кому-то еще; Я никогда не писал учебник раньше и практически ничего не знаю о сети ...

Возможно, связанный с сетевым мостом - без уничтожения сетевого менеджера (среди прочих).

Протестировано с использованием Ubuntu 11.10, 12.04.

Ответы:


5

Я не уверен в том, как это сделать, не затирая NM, но можно автоматически запускаться при загрузке и легко назначать IP-адреса (по крайней мере, я справился с этой же беспроводной картой). Это требует пакетов hostapdи dnsmasq(не dnsmasq-base)

/etc/hostapd/hostapd.conf:

interface=wlan0
driver=nl80211 # This works on my TL-WN722N

ssid=______

channel=6
hw_mode=g

auth_algs=1
wpa=3
wpa_passphrase=_____
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP

/ И т.д. / по умолчанию / hostapd:

# Defaults for hostapd initscript
#
# See /usr/share/doc/hostapd/README.Debian for information about alternative
# methods of managing hostapd.
#
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
DAEMON_CONF="/etc/hostapd/hostapd.conf"

# Additional daemon options to be appended to hostapd command:-
#   -d   show more debug messages (-dd for even more)
#   -K   include key data in debug messages
#   -t   include timestamps in some debug messages
#
# Note that -B (daemon mode) and -P (pidfile) options are automatically
# configured by the init.d script and must not be added to DAEMON_OPTS.
#
#DAEMON_OPTS=""

/etc/dnsmasq.conf (отличается от версии сопровождающего):

--- /etc/dnsmasq.conf.dpkg-dist 2011-09-20 00:28:30.000000000 +0100
+++ /etc/dnsmasq.conf   2012-02-13 21:03:03.713554612 +0000
@@ -82,7 +82,7 @@
 # specified interfaces (and the loopback) give the name of the
 # interface (eg eth0) here.
 # Repeat the line for more than one interface.
-#interface=
+interface=wlan0
 # Or you can specify which interface _not_ to listen on
 #except-interface=
 # Or which to listen on by address (remember to include 127.0.0.1 if
@@ -133,7 +133,7 @@
 # a lease time. If you have more than one network, you will need to
 # repeat this for each network on which you want to supply DHCP
 # service.
-#dhcp-range=192.168.0.50,192.168.0.150,12h
+dhcp-range=192.168.3.10,192.168.3.49,12h

 # This is an example of a DHCP range where the netmask is given. This
 # is needed for networks we reach the dnsmasq DHCP server via a relay

/ и т.д. / сеть / интерфейсы:

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
    address 192.168.3.1/24
    broadcast 192.168.3.255

Патч /etc/sysctl.conf (запускается sudo sysctl -p /etc/sysctl.confпосле изменения):

--- sysctl.conf 2012-05-14 18:06:57.514873009 +0100
+++ /etc/sysctl.conf    2012-05-14 18:09:27.122876525 +0100
@@ -25,7 +25,7 @@
 #net.ipv4.tcp_syncookies=1

 # Uncomment the next line to enable packet forwarding for IPv4
-#net.ipv4.ip_forward=1
+net.ipv4.ip_forward=1

 # Uncomment the next line to enable packet forwarding for IPv6
 #  Enabling this option disables Stateless Address Autoconfiguration

Наконец, настройте NAT в iptables:

sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE
sudo iptables-save | sudo tee /etc/iptables.sav

и добавить iptables-restore < /etc/iptables.savвыше exit 0в /etc/rc.local.

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


Благодарность! Я знаю, что вы имеете в виду под царапин на голове; эта вещь наверняка была боль, чтобы работать на всех. Я попробую ваш конфиг и сообщу, как он будет работать в ближайшие несколько дней. :)
Askuhn

В последние несколько дней я обнаружил, что /etc/network/interfacesфайл по какой-то причине не работает, и мой телефон не подключается должным образом. Я вернулся к тому, чтобы вручную дать wlan0 адрес при загрузке.
голландец

Моя настройка работает довольно хорошо, пока я не пытаюсь подключить более одного устройства (когда я это делаю, иногда это работает, иногда нет). Я все еще ковыряюсь, поэтому, если я придумаю что-нибудь получше, я обязательно напишу. :)
Askuhn

3

Большинство проблем возникает из-за драйверов Broadcom, по крайней мере, в ноутбуках HP. Если у вас есть контроллер сети Broadcom Проверьте, совместима ли ваша карта с b43 (ссылка 1). Если это так, круто, продолжайте читать. Стандартный драйвер Broadcom sta (wl) не поддерживает режим точки доступа. Поэтому установите b43, принимая меры предосторожности, чтобы быть в сети любыми необходимыми средствами. Включите его с помощью modprobe. Теперь следуйте инструкциям и попробуйте настроить точку доступа.

Наконец-то у меня работает hostapd, и приятным моментом является то, что мой телефон Nokia может обнаруживать созданный таким образом Wi-Fi (он может обнаруживать все что угодно, работает или нет). Теперь я должен поэкспериментировать с вашим файлом и посмотреть, смогу ли я найти мой playbook для обнаружения.

  1. http://linuxwireless.org/en/users/Drivers/b43
  2. http://pclinuxos.com/forum/index.php?topic=91991.0

Также это работало, когда я получил устройство, не управляемое в диспетчере устройств. askubuntu.com/questions/71159/…
Гиридаран Маниваннан

Рад, что это было полезно для вас! Мне понадобилось целую вечность, чтобы понять, что мне нужно, чтобы получить то, что работает для меня. Спасибо за ссылку о сетевом менеджере, я обязательно попробую :)
askuhn

И это работает! Удивительная часть: eth0 не должен быть статичным с помощью этого метода. Приобретенный ip будет для всех eth0, моста и устройства, которое вы хотите подключить!
Гиридаран Маниваннан

В последнем абзаце вы имели в виду, что playbook будет обнаружен ?
Чепанг

0

Отличные ответы выше, однако это не просто один или два чипсета, которые не поддерживают режим hostapd или AP.

Вот как можно узнать, поддерживает ли ваш драйвер и оборудование режим AP:

sudo iw list | less

Ищите раздел «поддерживаемые интерфейсы». Если это не включает «AP», вам не повезло. Если на нем написано «AP», тогда приступайте ко многим хорошим инструкциям, уже предоставленным другими авторами!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.