Reconectar automaticamente a conexão sem fio


13

Infelizmente, a conexão sem fio em minha casa geralmente desaparece, exigindo a reinicialização do roteador sem fio.

Para piorar, o meu pc com mídia ubuntu não se reconecta automaticamente à rede sem fio quando ele se foi e depois aparece um minuto depois. A rede em questão é configurada como "conectar automaticamente" nas configurações de rede.

Se eu selecionar manualmente minha rede sem fio, usando o ícone de conexão sem fio na parte superior direita da tela, tudo funcionará bem, até a próxima vez que a conexão sem fio for desativada.

Estou procurando uma maneira para não precisar me lembrar de fazer isso manualmente o tempo todo.


Tenho exatamente o mesmo problema. Eu ficaria satisfeito com uma solução que usava, por exemplo, um script cron a cada 5 minutos, solicitando que o Network Manager se reconectasse, se já não estiver conectado.
Marius Gedminas

@ Marius você tem esse script?
Oli

Adicione algumas informações de hardware à sua pergunta.
Jorge Castro

@ Oli: infelizmente, não.
Marius Gedminas

Respostas:


3

Eu tive um problema semelhante com o cartão Intel Wireless WiFi 5100 de meia altura do meu laptop e o driver iwlagn. Esse problema é um problema conhecido do driver iwlagn e a melhor solução é desabilitar o 802.11n na placa.

Para desativar o 802.11n neste cartão, crie / edite seu /etc/modprobe.d/options.confarquivo:

sudo -H gedit /etc/modprobe.d/options.conf

E adicione o seguinte a ele.

options iwlagn 11n_disable=1 11n_disable50=1

3

Esta é uma alternativa usando service network-manager restart:

#!/usr/bin/env bash


# 1. copy this script into
# /usr/bin

# 2. change permissions
# root:/usr/bin# chmod +x checkwifi.sh 

# 3. add to cron as root
# sudo su
# crontab -e

# add this to check your wifi every minute
# * * * * * /usr/bin/checkwifi.sh

is_ok=$(/sbin/ifconfig wlp2s0 | /bin/grep inet\ addr -c)

if [ "$is_ok" -eq 0 ] ; then

    # restart
    /usr/sbin/service network-manager restart

    # wifi is ok
    /bin/echo $(date) "wifi was restarted" >> /user/user/Dropbox/wifi.log
    /bin/echo $(/sbin/ifconfig wlp2s0) >> /home/user/Dropbox/wifi.log

else

    # wifi is ok
    /bin/echo $(date) "wifi is ok" >> /home/user/Dropbox/wifi.log
    /bin/echo $(/sbin/ifconfig wlp2s0) >> /home/user/Dropbox/wifi.log

fi

3

Isso parece ser publicado em toda a rede, sem boas soluções. Acho que a melhor solução / solução alternativa é verificar a conectividade com a Internet e, se não houver, reconectar. Fiz isso através de um teste de ping no google.com e simplesmente o fiz reiniciar a rede. O código não é testado (a parte de reinicialização e a parte cron, se a instrução for testada), então esperarei que ele se desconecte em algum momento. Eu tenho um Ubuntu Server 12.10, portanto, não há GUI, e é difícil conectar monitor e teclado toda vez que a rede sem fio é ligada.

Cron parte feita via webmin para Idk muito sobre isso. O script é o seguinte:

# edited by dim_voly for networking restart on no pingback every 5 mins

#!/bin/bash
# Name of File: networkingCron
# Purpose: to check if the internet is up (via ping test to google) and if not, restart networking service
# this script is invoked via cron, ideally every 5 mins.

#check if there is internet via ping test
if ! [ "`ping -c 1 google.com`" ]; then #if ping exits nonzero...
   sudo service networking restart #restart the whole thing
   echo Networking service restarted due to no ping response from google.com
fi

echo Script 'networkingCron' completed, if no message above then there was no network restart.

# dunno how to restart the wifi only since that is the only active connection that server uses.

# also I don't think those echos go anywhere

Certifique-se de executar como root e verifique se o script possui permissões de execução (u + x).

links:


2

Versão mais moderna do script @DougD

#!/bin/bash    
wlan=$(/sbin/ifconfig wlan0 | grep inet\ addr -c)
if [ "$wlan" -eq 0 ]; then    
    /sbin/ifdown wlan0 && /sbin/ifup wlan0
else    
    echo interface is up    
fi

2

Basta criar um novo arquivo vi /root/checkwanupe adicionar este conteúdo:

#!/bin/bash    
wlan=`/sbin/ifconfig wlan0 | grep inet\ addr | wc -l`    
if [ $wlan -eq 0 ]; then    
    /sbin/ifdown wlan0 && /sbin/ifup wlan0
else    
    echo interface is up    
fi

Em seguida, chmod 555 /root/checkwanupadicione-o ao seu crontab:

crontab -e
*/15 * * * * /bin/bash /root/checkwanup

Fonte: http://sirlagz.net/2013/01/10/script-wifi-checker-script/


adicionar LANG=Cou grep inet\ addrpode falhar.
Mawi12345

1

Você pode querer usar o wpa_supplicant em vez do gerenciador de rede, mas isso realmente não importa quando você está no centro de mídia. O wpa_supplicant não é tão flexível quanto o gerenciador de rede, mas depois não desiste depois de tentar três vezes. dê uma olhada nesta resposta .


1

Aqui está a minha versão - funciona com o NetworkManager:

#!/bin/bash    
wlan=`/sbin/ifconfig wlan0 | grep inet\ addr | wc -l`    
if [ $wlan -eq 0 ]; then   
    /usr/bin/nmcli nm wifi off && /usr/bin/nmcli nm wifi on 
fi
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.