[Tutorial] Partilhar internet via WiFi com Android (sem root)

olly

Power Member
Ando há já algum tempo a tentar criar um "hotspot" em Ubuntu para partilhar a net com o meu Android. Em ambiente windows é extremamente fácil, uma linha de comando basta, mas em linux a coisa parece tornar-se um pouco mais difícil pois o Ubuntu cria uma ligação adhoc que o Android "não vê".

As soluções passam por "tethering invertido" ou por alterar ficheiros no próprio smartphone. O problema é que isso implica ter permissões de root e, por vezes, há quem se queixe de danos "permanentes" no WiFi.

Depois de muito suar descobri um pequeno tutorial (AQUI) que permite criar o tal hotspot sem precisar de fazer root ao aparelho.

Antes de começar devo dizer que os créditos não são, de todo, meus. Apenas me limito a divulgar o tutorial para que quem, como eu, precisar dele, o possa encontrar mais facilmente.

TUTORIAL (finalmente):

Para começar vamos instalar o hostapd e o dhcp3-server digitando:
Código:
sudo apt-get install hostapd
sudo apt-get install dhcp3-server

De seguida vamos configurar o ficheiro hostapd
Código:
sudo nano /etc/hostapd/hostapd.conf

E colamos o seguinte código (ter em conta os dados a vermelho):
Código:
interface=[COLOR=#ff0000]wlan0
[/COLOR]driver=nl80211
ssid=[COLOR=#ff0000]nome_da_rede[/COLOR]
channel=1
hw_mode=g
auth_algs=1
wpa=3
wpa_passphrase=[COLOR=#ff0000]a_password_da_rede_wireless[/COLOR]
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP

Para salvar as alterações digitar Ctrl+X
Premir Y e Enter

O próximo passo será editar o ficheiro dhcp3-server:
Código:
sudo nano /etc/dhcp/dhcpd.conf

Vamos colar o código que se segue logo após a última linha:
Código:
option subnet-mask 255.255.255.0;default-lease-time 600;
max-lease-time 7200;
 
option domain-name-servers 8.8.8.8, 8.8.4.4 ;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.254;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
}

Para salvar as alterações digitar Ctrl+X
Premir Y e Enter

Digitar, na consola:
Código:
sudo nano /etc/default/isc-dhcp-server

E alteramos INTERFACES para:
Código:
INTERFACES="wlan0"

Para salvar as alterações digitar Ctrl+X
Premir Y e Enter

De regresso à consola:
Código:
sudo nano /etc/sysctl.conf

Agora vamos encontrar a linha que contém net.ipv4.ip_forward
certificar-nos que o valor está a 1 e removemos o #, ficando assim:
Código:
net.ipv4.ip_forward=1

Para salvar as alterações digitar Ctrl+X
Premir Y e Enter

Agora digitamos:
Código:
sudo nano /etc/rc.local

e antes da linha exit 0 colamos o seguinte:
Código:
sbin/iptables -t nat -A POSTROUTING -j MASQUERADE ifconfig wlan0 inet 192.168.1.1 netmask 255.255.255.0
hostapd -d /etc/hostapd/hostapd.conf & /etc/init.d/isc-dhcp-server restart

Para salvar as alterações digitar Ctrl+X
Premir Y e Enter

Para terminar basta reiniciar o pc e o Android vai conseguir encontrar a rede e ligar-se sem problemas.

NOTAS:
Até agora o único inconveniente que vi foi a rede estar sempre ativa. Se alguém souber uma forma de "ativar" e "desativar" o hotspot de forma "automática" agradeço.
Como os meus conhecimentos são algo limitados, tudo o que sugerirem para aperfeiçoar este processo será bem-vindo.
 
Última edição:
Como nota adicional, atenção que o 'wlan0' não é valido para todos... Por exemplo as placas RaLink com drivers proprietarios criam um device 'ra0' e não 'wlan0'. Tirando isso parece-me muito bom :)
 
Back
Topo