Obecnie codziennie przełączam się między następującymi dwoma ustawieniami:
1) Połączenie z Internetem za pośrednictwem sieci WiFi.
2) Mając laptopa (Ubuntu 16.04) podłączonego do Internetu za pomocą połączenia przewodowego, a następnie udostępniając to połączenie innym moim urządzeniom za pośrednictwem wbudowanej funkcji hot-spot Ubuntu.
W tej chwili zmiana z 1 na 2 wymaga ręcznego przejścia przez okno dialogowe „Połącz z ukrytą siecią” w Menedżerze sieci; podobnie przełączanie z 2 na 1 wymaga ręcznego odłączenia się od hotspotu i połączenia z siecią Wi-Fi. To nie jest dużo pracy, ale robię to wystarczająco często, że chciałbym, aby było zautomatyzowane.
Nie jest to tak proste, jak włączenie autoconnect dla hotspotu, ponieważ wtedy zastępuje funkcję autoconnect innych sieci zamiast podłączania mnie do sieci Wi-Fi, gdy nie jestem połączony za pomocą połączenia przewodowego, i kończę na hot-spot, ale brak internetu. Potrzebuję więc rozwiązania, które:
- łączy mnie z hot-spotem, ilekroć jestem podłączony do Internetu za pośrednictwem połączenia przewodowego.
- odłącza mnie od hot-spotu, gdy nie ma połączenia z siecią Ethernet.
- automatycznie łączy mnie z jedną z sieci z autoconnect = true, gdy tylko są one dostępne i nie ma połączenia Ethernet.
Pełne wyjaśnienie tego, jak to zrobić, byłoby świetne, ale bardzo mile widziane byłoby również odniesienie do dobrego (nie-eksperckiego) podręcznika dotyczącego ustanawiania tego rodzaju reguł.
źródło
post-up
w/etc/network/interfaces
kontekście istnieje wielka przegląd tutaj .post-up
po prostu wywołuje polecenia lub skrypty po pojawieniu się interfejsu.Odpowiedzi:
Rozumiem, że po podłączeniu kabla Ethernet przebija połączenie Wi-Fi, a połączenie Wi-Fi automatycznie się przerywa. W podobny sposób, odłączenie kabla Ethernet automatycznie łączy się z preferowanym Wi-Fi (oczywiście pod warunkiem, że masz zaznaczone pole wyboru, aby automatycznie łączyć się z tą siecią Wi-Fi na ogólnej karcie menedżera sieci. Testowane przy domyślnej instalacji Ubuntu 16.04.3
Więc jeśli rozumiem cię poprawnie, po prostu chcesz automatycznie uruchomić usługę hotspot na swoim laptopie, gdy kabel Ethernet jest podłączony i wyłączyć usługę, gdy kabel Ethernet jest odłączony.
Powinno to być dość proste w przypadku skryptu bash, a
nmcli
„nmcli” to potężne narzędzie sieciowe, które pozwala na dowolne zwiększanie i zmniejszanie liczby połączeń oraz uzyskiwanie ton odpowiednich informacji.Aby dowiedzieć się, jakie połączenia będziesz wykonywać w skryptach, po prostu uruchom je
nmcli -t monitor| grep primary
po połączeniu przez Wi-Fi i podłącz kabel Ethernet. Połączenia, którymi chcesz się poruszać w górę iw dółnmcli
, to te otoczone przez'
s Przykład: „Połączenie przewodowe 1” logika polega na tym, że po podłączeniu „Połączenia” wywołujesz hotspot (może być konieczne użycie poleceniasleep
lub wykorzystanie-w
przełącznik, abynmcli
w oczekiwaniu skryptu na określoną liczbę sekund na komendę do pełna przed wydaniem następnego.Przerwanie połączenia jest tak proste, jak
nmcli 'connection name' down
i podniesienie gonmcli 'connection name' up
Uwaga: Aby uzyskać pełną kontrolę za pomocą skryptu, może być konieczne wyłączenie opcji automatycznego łączenia przynajmniej w przypadku połączenia Wi-Fi w Menedżerze sieci, ponieważ spróbuje ona automatycznie połączyć się, gdy tylko będzie dostępna, i może zakłócać to, co próbujesz osiągnąć. Fragment
man nmcli
:Więc kiedy już ustalisz, że twój Ethernet jest podłączony, możesz wydać polecenia, aby przerwać połączenie Wi-Fi Przykład:
nmcli connection my-wifi down
a potem połączenie Hotspot w górę Przykład:nmcli connection my-hotspot up
Aby uzyskać więcej informacji na temat automatycznego uruchamiania skryptów opartych na połączeniu sieciowym, zobacz to. Aby uzyskać więcej informacji na temat „nmcli”, sprawdź stronę podręcznika . A oto informacje o tym, jak utworzyć punkt dostępu.
źródło
nmcli connection my-wifi down
, nigdy się nie łączy?Rozwiązanie, które mi to zrobiło (znalezione przy pomocy Starszego Geka).
Ciągle AutoConnect na wszystkich sieciach chcę, aby automatycznie połączyć się, ale się do hot-spot. Następnie umieszczam następujący folder (z odpowiednimi uprawnieniami, jak opisano na tej stronie Wiki ) w folderze
/etc/NetworkManager/dispatcher.d
Jak dotąd działa to bardzo dobrze; automatyczne połączenie z hotspotem za każdym razem, gdy kabel Ethernet jest podłączony, a nawet gdy komputer uruchamia się lub budzi z podłączonym kablem Ethernet. Automatyczne połączenie z hot-spot po każdym odłączeniu kabla Ethernet, a następnie automatyczne połączenie z dostępnymi sieciami WiFi.
źródło