systemowy sposób na wyłączenie WLAN, jeśli sieć przewodowa jest dostępna?

3

Chciałbym obniżyć wlan0, jeśli kabel Ethernet jest podłączony. Korzystam z systemu Ubuntu - który używa systemd. Dlatego chciałbym to zrobić w sposób przyjazny dla systemu.

Chcę też zrobić coś przeciwnego. Chciałbym UP wlan0, gdy kabel Ethernet jest odłączony.

Pytanie dotyczące tego - czy muszę także zaktualizować tabelę routingu?


Xofo
źródło
1
Zdarzenia kablowe (podłączone / odłączone) nie są obsługiwane systemdbezpośrednio, są raczej obsługiwane przez tak zwane „usługi menedżera sieci”, takie jak NetworkManagerlub ifupdown, ewentualnie systemd-networkd, opcjonalna usługa systemd , chociaż ta ostatnia nie jest obecnie wystarczająco zaawansowana, aby śledzić zdarzenia kablowe i dlatego wymaga dodatkowej dedykowanej usługi. Dlatego może możesz określić, którzy menedżerowie sieci są akceptowalni dla twojej konfiguracji?
LL3
Powyższy komentarz jest odpowiedzią - Zdarzenia kablowe NIE są obsługiwane przez systemd ... ALE są sposoby, aby to zrobić (na które wskazujesz).
Xofo

Odpowiedzi:

3

Klasyczne rozwiązanie:

W systemach opartych na Debianie, takich jak komendy ubuntu oparte na stanie sieci, można z reguły ustawić pod /etc/network/interfaces; ta odpowiedź pokazuje przypadek dwóch interfejsów eth0iwlan0

  1. W sudo otwórz za /etc/network/interfacespomocą edytora tekstu (ten plik zawiera reguły i ustawienia dla twoich interfejsów sieciowych, zauważ również, że menedżer sieci nie powinien zarządzać interfejsami wymienionymi w tym pliku)
    sudo notepadqq /etc/network/interfaces
  1. Użyj, ( pre-upi pre-up) lub ( post-downi post-up) zgodnie z potrzebami, aby wyłączyć interfejs wlan0, gdy przewód sieciowy jest podłączony / odłączony, możesz użyć ifconfig wlan0 downlub ip link set wlan0 down(w przykładzie jest używany ifconfig) ... przykład:
    auto eth0
    allow-hotplug eth0
    iface eth0 inet static
        address 192.168.1.7
        netmask 255.255.255.0
        gateway 192.168.1.1
        post-up ifconfig wlan0 down
        post-down ifconfig wlan0 up

Systemowe alternatywne rozwiązanie:

Oficjalna dokumentacja tutaj wyjaśnić, co jest obsługiwany przez Systemd a więc bezpośredni proste rozwiązanie jak w klasycznej jeden nie jest zaimplementowany jako od 05/2019

Systemowe alternatywne rozwiązanie:

Można także użyć programu rozsyłającego do uruchomienia skryptu, jak wyjaśniono w tej odpowiedzi , w tym jednym lub w tym artykule

Systemowe alternatywne rozwiązanie:

Jak podałeś w komentarzu, ta odpowiedź może być alternatywnym rozwiązaniem zaimplementowanym z usługą

Związane z:

Cel sieci tu i tutaj może być używany do uruchamiania innych usług w zależności od stanu sieci

intika
źródło
Dziękujemy - Rozwiązanie musi być specyficzne dla systemu. Zbadam je.
Xofo
2
Tak, wiem, że po prostu napisałem pełną odpowiedź, aby była pomocna dla wszystkich;) daj mi 10/15 min, aby zakończyć pisanie
intika
1
gotowe, możesz teraz mieć globalny wizerunek;)
intika
1

mogą być pomocne: Link Link2 . Skrypt może być jednowierszowy (coś w linii ip link set yourIface down) . Tabela routingu powinna aktualizować się automatycznie, chyba że korzystasz z niektórych tras statycznych, więc prawdopodobnie musisz ją zaktualizować.

Anioł
źródło
Próbowałem umieścić skrypt w katalogu i wydawało się, że nie został on wykonany. Również nie jestem pewien lub kolejność wykonywania skryptów w katalogu if-up.d /.
Xofo
Patrzę też na to - gitlab.com/craftyguy/networkd-dispatcher/blob/master/README.md --- Nie jestem pewien, czy jest to właściwe podejście, ale wciąż narzekam.
Xofo
1
Spróbuję też i opublikuję moje wyniki :)
Angel
Looking @ this - serverfault.com/questions/869756/…
Xofo