Kablolu olduğunda wifi (kablosuz) otomatik olarak devre dışı bırakılsın mı?


26

Kablolu bir Ethernet kablosunu taktığımda Wifi / kablosuz bağlantımı otomatik olarak devre dışı bırakmanın en iyi yolu nedir? Kabloyu daha sonra prizden çıkardığımda yeniden etkinleştirilmesini istiyorum.

Ayrıca, bazen kablolu bağlantıyı diğer kablosuz kullanıcılarla (veya tam tersi) paylaşmak istiyorum. Bu ayarları bir şekilde muaf tutabilsem iyi olurdu.

NetworkManager kullanan 11.10 Oneiric kullanıyorum.

Yanıtlar:


31

Aşağıdaki komut dosyası, daha /etc/NetworkManager/dispatcher.d/99-disable-wireless-when-wiredçok işe yaramaktadır; kablolu veya kablosuz ile paylaşmak istediğimde bile kablosuz özelliğini devre dışı bırakır.

Bunu yapmak için terminalde aşağıdaki komutu çalıştırın:

sudo nano /etc/NetworkManager/dispatcher.d/99-disable-wireless-when-wired

Ve aşağıdaki kodu metin editörüne yapıştırın.

#!/bin/sh
myname=${0##*/}
log() { logger -p user.info -t "${myname}[$$]" "$*"; }
IFACE=$1
ACTION=$2

release=$(lsb_release -s -c)
case ${release} in
    trusty|utopic) nmobj=nm;;
    *) nmobj=radio;;
esac

case ${IFACE} in
    eth*|usb*|en*)
        case ${ACTION} in
            up)
                log "disabling wifi radio"
                nmcli "${nmobj}" wifi off
                ;;
            down)
                log "enabling wifi radio"
                nmcli "${nmobj}" wifi on
                ;;
        esac
        ;;
esac

Sonra kaydedin ve çıkın.

NetworkManager el kitabında belgelendiği gibi, komut dosyasında aşağıdaki koşulları unutmayın :

Her komut dosyası şöyle olmalıdır:

  • düzenli bir dosya,
  • kök tarafından sahip olunan,
  • Grup veya başkaları tarafından yazılamaz,
  • ayarlanmamış
  • ve sahibi tarafından çalıştırılabilir.

Bunun yerine nmcli radio wifi off(veya nmcli nm wifi offdaha eski NetworkManager sürümleri için) de vardır rfkill block wifi. Ancak, rfkillbunun yerine kullanılırsa nmcli, NetworkManager'ın daha yeni sürümleri önyükleme sırasında wifi özelliğini yeniden açacaktır.


Komut hangi konfigürasyonu istediğinizi nasıl söyleyebilir? Neden hiçbiri sadece rfkill unblock wifibağlantı kurduktan eth0ve paylaşmak istediğinizi, sonra rfkill block wifiişiniz bittikten sonra yapmıyor?
vali

@waltinator: Bir bağlantı açıldığında, NetworkManager CONNECTION_UUIDbu bağlantı için tanımlayıcıya adlandırılmış bir ortam değişkeni belirler . Komut dosyasının yalnızca "standart" kablolu bağlantıyı bildirdiğim bağlantı için WiFi özelliğini devre dışı bırakma, ancak eth0farklı bir bağlantı tarafından etkinleştirilirse etkin bırakma gibi bir şey yapabileceğini düşünüyordum . Denemedim bu yüzden işe yarayıp yaramadığını bilmiyorum. Ancak sadece manuel olarak kontrol etmeyle ilgili meseleniz iyi bir şey.
Richard Hansen,

1
eth0|usb0)USB bağlantısı etkinleştirildiğinde / devre dışı bırakıldığında WiFi'yi devre dışı bırakmak / etkinleştirmek için de kullanın .
krlmlr

1
En kullanışlı! Bunun yerine rfkill kullanmak yerine, ben komutları kullanılır nmcli nm wifi offve nmcli nm wifi on. Fakat nmcli komutlarının daha iyi olduğuna inanmak için özel bir nedenim yok. NetworkManager yolunda her şeyi yapmak istedim.
Jesse Hallett

3
Switch ifadesi "eth * | usb * | en *)" ifadesini okumalıdır, çünkü udev197 ile başlayarak "Öngörülebilir Ağ Arabirim İsimleri" [1] tanıtılmıştır. Böylece ağ kartları eno1 / ens1 olarak adlandırılmış ve benzerdir ve eski eth * ve usb * adlarıyla aynı değildir. [1] freedesktop.org/wiki/Software/systemd/…
doublehelix
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.