Como criar um ponto de acesso wifi não adhoc?


13

Eu queria usar minha área de trabalho com uma conexão Ethernet com fio (eth0) para operar meu adaptador Wi-Fi USB "TP-LINK TL-WN722N" (wlan0) como um ponto de acesso não adhoc (modo de infraestrutura) para conexão com o meu Android.

Depois de MUITAS pesquisas, finalmente encontrei um método (espalhado por muitos sites) que faz a maior parte do que eu preciso ...

Dependências:

 hostapd
 bridge-utils

Eu modifiquei "/ etc / network / interfaces"

sudo gedit /etc/network/interfaces

conter:

# 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/

Meu "/etc/hostapd/hostapd.conf" (que de alguma forma eu consegui montar)

sudo gedit /etc/hostapd/hostapd.conf

contém:

 ### 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

(Editei os bits de segurança deste post)

Tudo isso me permite abrir um terminal e executar:

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

ter um ponto de acesso em funcionamento ao qual meu Android e todos os outros dispositivos WiFi possam se conectar.

Além de compartilhar esse método com outras pessoas, já que as informações para essa configuração são muito escassas; Existem três problemas que seria bom corrigir:

  1. Essa configuração desativa o gerenciador de rede e todas as suas funções. Quando você clica nele, é exibida uma mensagem "dispositivo não gerenciado". (não essencial, mas um pouco chato para mim)
  2. Este método pode ter problemas com endereços IP de tempos em tempos.
  3. Preciso usar um terminal para ativar o Wi-Fi. (Ok para mim, mas não familiar). Eu descobri como fazer um lançador usando gksu e um script simples, se alguém precisar de um ...

Iniciando o wifi / Hostapd sem um terminal

  1. (Por que o gerente de rede não pode fazer isso imediatamente?)

Desde já, obrigado! Espero que tudo isso possa ajudar outra pessoa; Eu nunca escrevi um tutorial antes e praticamente não sei nada sobre redes ...

Talvez relacionado à ponte de rede - sem destruir o gerenciador de rede (entre outros).

Testado usando o Ubuntu 11.10, 12.04.

Respostas:


5

Não tenho certeza de como fazer isso sem prejudicar o NM, mas é possível executar automaticamente na inicialização e obter endereços IP para atribuir facilmente (pelo menos eu consegui isso com a mesma placa sem fio). Isso requer os pacotes hostapde dnsmasq(não 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

/ etc / default / 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 (difere da versão do mantenedor):

--- /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

/ etc / network / interfaces:

auto lo
iface lo inet loopback

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

Patch /etc/sysctl.conf (executado sudo sysctl -p /etc/sysctl.confapós a alteração):

--- 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

Por fim, configure o NAT em 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

e adicione iptables-restore < /etc/iptables.savacima exit 0em /etc/rc.local.

Essa configuração foi implementada principalmente pela leitura deste manual e olhando para as páginas de manual que arranham minha cabeça.


Obrigado! Eu sei o que você quer dizer com a cabeça coçando; essa coisa com certeza foi uma dor para começar a trabalhar. Vou tentar sua configuração e informar como ela será nos próximos dias. :)
askuhn

Nos últimos dias, descobri que o /etc/network/interfacesarquivo não funciona por algum motivo e meu telefone não se conecta corretamente. Voltei a dar manualmente um endereço à wlan0 na inicialização por enquanto.
23412 holandês

Minha configuração está funcionando muito bem, desde que eu não tente conectar mais de um dispositivo (quando o faço, às vezes funciona, às vezes não). Ainda estou mexendo, por isso, se eu apresentar algo melhor, certamente postarei. :)
askuhn

3

A maioria dos problemas ocorre devido aos drivers Broadcom nos laptops HP, pelo menos. Se você possui um controlador de rede broadcom Verifique se sua placa é compatível com b43 (link 1). Se for, incrível, continue lendo. O driver padrão da Broadcom sta (wl) não suporta o modo de ponto de acesso. Portanto, instale o b43 tomando as medidas de precaução para estar online de qualquer forma necessária. Ligue-o usando o modprobe. Agora siga as instruções e tente configurar o ponto de acesso.

Finalmente, eu tenho o hostapd trabalhando com isso e a parte boa é que meu telefone Nokia pode detectar o wifi criado (ele pode detectar qualquer coisa, adhoc ou não). Agora eu tenho que brincar com seu arquivo e ver se consigo detectar meu manual.

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

Também funcionou quando recebi o dispositivo não gerenciado no gerenciador de dispositivos. askubuntu.com/questions/71159/...
Giridaran Manivannan

Fico feliz que isso foi útil para você! Levei uma eternidade para descobrir o que eu precisava para conseguir algo que funcionasse para mim. Obrigado pelo link sobre gerenciador de rede, eu vou certifique-se de experimentá-lo :)
askuhn

E funciona! A parte surpreendente é que eth0 não precisa ser estático por esse método. O ip adquirido será para todos os eth0, a ponte e o dispositivo que você deseja conectar!
Giridaran Manivannan

No último parágrafo, você quis dizer que o manual seria detectado ?
tshepang

0

Excelentes respostas acima, no entanto, não são apenas um ou dois chipsets que não suportam o modo hostapd ou AP.

Veja como verificar se seu driver e hardware suportam o modo AP:

sudo iw list | less

Procure a seção "modos de interface suportados". Se não incluir "AP", você estará sem sorte. Se diz "AP", prossiga com as muitas boas instruções já fornecidas por outros pôsteres!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.