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

Я хотел использовать мой рабочий стол с проводным Ethernet-соединением (eth0) для работы моего "Wi-Fi-адаптера TP-LINK TL-WN722N" (wlan0) в качестве точки доступа, не поддерживающей режим ad-hoc (в режиме инфраструктуры), к которой подключался мой 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.

3 ответа

Я не уверен в том, как это сделать, не затирая 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 patch (запустить 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,

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

Большинство проблем возникает из-за драйверов 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

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

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

sudo iw list | less

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

Другие вопросы по тегам