Como eu crio um hotspot wifi não-adhoc?

13

Eu queria usar minha área de trabalho com uma conexão ethernet com fio (eth0) para operar meu adaptador Wifi "TP-LINK TL-WN722N" (wlan0) como um ponto de acesso não adhoc (modo infra-estrutura) para o meu Android se conectar para.

Após a pesquisa MUCH, finalmente encontrei um método (espalhado em 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

para 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 eu de alguma forma consegui reunir comigo)

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

(Eu editei os bits de segurança para este post)

Tudo isso me permite abrir um Terminal e executar:

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

para ter um ponto de acesso funcional ao qual meu Android e todos os outros dispositivos Wi-Fi possam se conectar.

Além de compartilhar esse método com outras pessoas, pois as informações dessa configuração são muito escassas; existem três problemas que seria bom corrigir:

  1. Esta configuração desativa o gerenciador de rede e todas as suas funções. Quando você clica nele, ele fornece uma mensagem "dispositivo não gerenciado". (não essencial, mas um pouco chato para mim)
  2. Esse método pode ter dificuldades com endereços IP periodicamente.
  3. Eu devo usar um terminal para ativar o Wifi. (Ok para mim, mas não familiar). Eu descobri como fazer um lançador usando o gksu e um script simples se alguém precisar de um ...

  • (Por que o gerente de rede não pode fazer isso imediatamente?)
  • Obrigado antecipadamente! Espero que tudo isso possa ajudar outra pessoa; Eu nunca escrevi um tutorial antes e praticamente não sei nada sobre redes ...

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

    Testado usando o Ubuntu 11.10, 12.04.

        
    por askuhn 18.02.2012 / 03:46

    3 respostas

    5

    Não tenho certeza sobre 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 hostapd e 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 (diff contra a 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 (execute sudo sysctl -p /etc/sysctl.conf apó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.sav acima de exit 0 em /etc/rc.local .

    Essa configuração foi implementada principalmente lendo este e olhando as páginas de manual coçando minha cabeça.

        
    por dutchie 14.05.2012 / 18:11
    3

    A maioria dos problemas ocorre por causa dos drivers da Broadcom em Laptops HP, pelo menos. Se você tiver um controlador de rede broadcom Verifique se a sua placa é compatível com b43 (link 1). Se for, impressionante, continue lendo. O driver padrão da Broadcom (wl) não suportará o modo de ponto de acesso. Portanto, instale o b43 tomando medidas de precaução para estar on-line por qualquer meio necessário. Ativá-lo usando o modprobe. Agora siga as instruções e tente configurar o ponto de acesso.

    Eu finalmente consegui trabalhar com o hostapd e a parte mais legal é que o meu celular Nokia pode detectar o wifi assim criado (ele pode detectar qualquer coisa, adhoc ou não). Agora eu tenho que brincar com o seu arquivo e ver se consigo fazer com que o meu manual seja detectado.

    1. link
    2. link
    por Giridaran Manivannan 02.04.2012 / 16:54
    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 o 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ê está sem sorte. Se ele disser "AP", prossiga com as muitas boas instruções já fornecidas por outros pôsteres!

        
    por Luno 16.01.2014 / 18:49