Tự động kết nối lại kết nối không dây


13

Không may kết nối không dây trong nhà tôi thường biến mất, yêu cầu khởi động lại bộ định tuyến không dây.

Làm cho điều này trở nên tồi tệ hơn là máy tính ub Ubuntu của tôi, không tự động kết nối lại với mạng không dây khi nó bị mất, và sau đó xuất hiện khoảng một phút sau. Mạng được đề cập là thiết lập là "kết nối tự động" trong cài đặt mạng.

Nếu tôi chọn thủ công mạng không dây của mình, sử dụng biểu tượng không dây trong tầm nhìn của màn hình, mọi thứ sẽ hoạt động tốt, cho đến lần không dây tiếp theo bị hỏng.

Tôi đang tìm kiếm một cách để tôi không phải nhớ làm điều này bằng tay mọi lúc.


Tôi có chung vấn đề đó. Tôi hài lòng với một giải pháp được sử dụng, ví dụ: tập lệnh cron cứ sau 5 phút yêu cầu Trình quản lý mạng kết nối lại, nếu nó chưa được kết nối.
Marius Gedminas

@Marius bạn có kịch bản như vậy không?
Oli

Vui lòng thêm một số thông tin phần cứng cho câu hỏi của bạn.
Jorge Castro

@Oli: thật đáng buồn, không.
Marius Gedminas

Câu trả lời:


3

Tôi gặp vấn đề tương tự với thẻ Intel Wireless WiFi 5100 nửa chiều cao của máy tính xách tay và trình điều khiển iwlagn của trình điều khiển. Vấn đề này là một vấn đề đã biết với trình điều khiển iwlagn và cách khắc phục tốt nhất là vô hiệu hóa 802.11n trên thẻ.

Để tắt 802.11n trên thẻ này, hãy tạo / chỉnh sửa /etc/modprobe.d/options.conftệp của bạn :

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

Và thêm vào sau đây.

options iwlagn 11n_disable=1 11n_disable50=1

3

Đây là một thay thế bằng cách sử dụng 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

Điều này dường như được đăng trên tất cả các mạng mà không có giải pháp tốt. Tôi đoán cách khắc phục / giải pháp tốt nhất là làm cho nó kiểm tra kết nối internet và nếu nó không ở đó thì hãy kết nối lại. Tôi đã làm điều này thông qua một bài kiểm tra ping đến google.com và sau đó tôi chỉ đơn giản là làm cho nó khởi động lại mạng. Mã không được kiểm tra (phần khởi động lại và phần cron, nếu câu lệnh được kiểm tra), vì vậy tôi sẽ chỉ chờ nó ngắt kết nối tại một số điểm. Tôi có Ubuntu Server 12.10, vì vậy không có GUI và rất khó để kết nối màn hình và bàn phím mỗi khi kết nối không dây.

Phần cron được thực hiện qua webmin để Idk nhiều về nó. Kịch bản như sau:

# 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

Đảm bảo chạy dưới quyền root và đảm bảo tập lệnh đã thực thi quyền (u + x).

liên kết:


2

Phiên bản hiện đại hơn của tập lệnh @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

Chỉ cần tạo một tệp mới vi /root/checkwanupvà thêm nội dung này:

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

Sau đó chmod 555 /root/checkwanupvà thêm nó vào crontab của bạn:

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

Nguồn: http://sirlagz.net/2013/01/10/script-wifi-checker-script/


thêm LANG=Choặc grep inet\ addrcó thể thất bại.
Mawi12345

1

Bạn có thể muốn xem qua việc sử dụng wpa_supplicant thay vì trình quản lý mạng, nhưng điều đó không thực sự quan trọng khi ở trung tâm truyền thông. wpa_supplicant không linh hoạt như trình quản lý mạng nhưng afaik không từ bỏ sau khi thử ba lần. có một cái nhìn tại câu trả lời này .


1

Đây là phiên bản của tôi - nó hoạt động với 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.