ワイヤレス接続を自動的に再接続する


13

残念ながら、私の家の無線接続は頻繁に消えてしまい、無線ルーターを再起動する必要があります。

さらに悪いことに、ubuntuメディアpcは、ワイヤレスネットワークがなくなったときに自動的に再接続せず、約1分後に表示されます。問題のネットワークは、ネットワーク設定で「自動的に接続」として設定されています。

画面の右上にあるワイヤレスアイコンを使用してワイヤレスネットワークを手動で選択すると、次にワイヤレスがダウンするまで、すべて正常に動作します。

方法を探しているので、常に手動でこれを行うことを覚えておく必要はありません。


私はまったく同じ問題を抱えています。5分ごとにcronスクリプトを使用して、Network Managerがまだ接続されていない場合に再接続を要求するソリューションに満足します。
マリウスゲドミナス

@Mariusそのようなスクリプトはありますか?
オリ

質問にハードウェア情報を追加してください。
ホルヘカストロ

@オリ:悲しいことに、いいえ。
マリウスゲドミナス

回答:


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を介して行われるため、Idkはそれについて詳しく説明します。スクリプトは次のとおりです。

# 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

必ずルートとして実行し、スクリプトに実行(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

network-managerの代わりにwpa_supplicantを使用することを検討したいかもしれませんが、メディアセンターにいるときは実際には問題になりません。wpa_supplicantはnetwork-managerほど柔軟ではありませんが、3回試してもあきらめません。見ていこの答えを


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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.