Как мне создать точку доступа 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 могут подключаться.
Кроме того, чтобы поделиться этим методом с другими, так как информация для этой настройки очень скудна; Есть три проблемы, которые было бы неплохо решить:
- Эта конфигурация деактивирует сетевой менеджер и все его функции. Когда вы щелкаете по нему, выдается сообщение "устройство не управляется". (не важно, но немного раздражает меня)
- Этот метод может время от времени бороться с IP-адресами.
-
Я должен использовать терминал, чтобы включить Wi-Fi.(Хорошо для меня, но не для семьи).Я разобрался, как сделать лаунчер с помощью gksu и простого скрипта, если он кому-нибудь нужен...
- (Почему сетевой менеджер не может сделать это из коробки??)
Заранее спасибо! Я надеюсь, что все это может помочь кому-то еще; Я никогда не писал учебник раньше и практически ничего не знаю о сети...
Возможно, связанный с сетевым мостом - без разрушения сетевого менеджера (среди прочих).
Протестировано с использованием 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 для обнаружения.
Отличные ответы выше, однако это не один или два чипсета, которые не поддерживают режим hostapd или AP.
Вот как можно узнать, поддерживает ли ваш драйвер и оборудование режим AP:
sudo iw list | less
Ищите раздел "поддерживаемые режимы интерфейса". Если это не включает "AP", вам не повезло. Если на нем написано "AP", тогда приступайте ко многим хорошим инструкциям, уже предоставленным другими авторами!