自动重新连接无线连接


13

不幸的是,我家中的无线连接经常消失,需要重新启动无线路由器。

更糟糕的是,我的ubuntu媒体PC消失后不会自动重新连接到无线网络,然后在一分钟后出现。该网络在网络设置中设置为“自动连接”。

如果我使用屏幕右上角的无线图标手动选择我的无线网络,则一切正常,直到下一次无线中断。

我正在寻找一种方法,因此不必记住总是手动进行此操作。


我有完全一样的问题。我对所使用的解决方案感到满意,例如,每5分钟发出一个cron脚本,要求Network Manager重新连接(如果尚未连接)。
Marius Gedminas 2010年

@Marius,你有这样的脚本吗?
奥利(Oli)

请向您的问题添加一些硬件信息。
豪尔赫·卡斯特罗

@Oli:可悲的是,没有。
Marius Gedminas

Answers:


3

我的笔记本电脑的Intel Wireless WiFi 5100半高卡和驱动程序iwlagn驱动程序也有类似的问题。此问题是iwlagn驱动程序的已知问题,最佳解决方法是禁用卡上的802.11n。

要在此卡上禁用802.11n,请创建/编辑/etc/modprobe.d/options.conf文件:

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

并添加以下内容。

options iwlagn 11n_disable=1 11n_disable50=1

3

这是使用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

这似乎没有很好的解决方案在网上发布。我猜最好的解决方法是使它检查互联网连接,如果没有,请重新连接。我通过对google.com的ping测试做到了这一点,然后我只是让它重新启动了网络。代码未经测试(重新启动部分和cron部分,如果已对语句进行了测试),所以我将只等待它断开连接。我有一个Ubuntu Server 12.10,没有GUI,每次无线塞满时都很难连接显示器和键盘。

Cron部分是通过webmin完成的,因此非常了解。脚本如下:

# 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

确保以root用户身份运行,并确保脚本具有执行(u + x)权限。

链接:


2

@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

只需创建一个新文件vi /root/checkwanup并添加以下内容:

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

然后chmod 555 /root/checkwanup将其添加到您的crontab中:

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

资料来源:http : //sirlagz.net/2013/01/10/script-wifi-checker-script/


添加,LANG=C否则grep inet\ addr可能会失败。
Mawi12345

1

您可能想看看使用wpa_supplicant而不是network-manager,但是在媒体中心上这并不重要。wpa_supplicant并不像网络管理器那样灵活,但是afaik在尝试了三遍之后并没有放弃。看看这个答案


1

这是我的版本-适用于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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.