Atur koneksi otomatis ke hot-spot hanya ketika koneksi ethernet

8

Saat ini saya beralih di antara dua pengaturan berikut setiap hari:

1) Terhubung ke internet melalui jaringan WiFi.

2) Memiliki laptop (Ubuntu 16.04) saya terhubung ke internet melalui koneksi kabel, kemudian berbagi koneksi ini dengan perangkat saya yang lain melalui fungsionalitas hot-spot bawaan Ubuntu.

Saat ini, beralih dari 1 ke 2 mengharuskan saya untuk secara manual melalui dialog "sambungkan ke jaringan tersembunyi" di Network Manager; demikian pula beralih dari 2 ke 1 mengharuskan saya untuk memutuskan secara manual dari hotspot dan terhubung ke jaringan WiFi. Ini tidak banyak pekerjaan, tetapi saya cukup sering melakukannya sehingga saya ingin otomatis.

Ini tidak sesederhana mengaktifkan autoconnect untuk hotspot, sejak itu ia mengesampingkan fungsi autoconnect dari jaringan lain daripada menghubungkan saya ke jaringan WiFi ketika saya tidak terhubung melalui koneksi kabel, dan saya berakhir dengan hot-spot tetapi tidak ada internet. Jadi saya butuh solusi yang:

  • menghubungkan saya ke hot-spot setiap kali saya terhubung ke internet melalui koneksi kabel.
  • memutus saya dari hot-spot ketika tidak ada koneksi ethernet.
  • autoconnect menghubungkan saya ke salah satu jaringan dengan autoconnect = true setiap kali mereka tersedia dan tidak ada koneksi ethernet.

Penjelasan lengkap tentang bagaimana melakukan hal ini akan sangat bagus, tetapi referensi ke manual (non-ahli) yang baik untuk membuat aturan semacam ini juga akan sangat dihargai.

Kehilangan bib
sumber
1
Saya tidak 100% yakin apa yang Anda lakukan, saya kira Anda menggunakan manajer jaringan? Jadi sulit untuk memberikan manual. Aku akan melihat ke dalam post-updari /etc/network/interfaceskonteks, ada gambaran besar di sini . post-uppada dasarnya hanya memanggil perintah, atau skrip, setelah antarmuka muncul.
Robert Riedl
Sepertinya tempat yang bagus untuk memulai. Akan melihatnya, terima kasih.
Bib-hilang

Jawaban:

2

Ini pemahaman saya bahwa ketika Anda mencolokkan kabel Ethernet yang mengalahkan koneksi wifi dan koneksi wifi turun secara otomatis. Dengan cara yang sama, melepaskan kabel ethernet otomatis menghubungkan ke wifi pilihan Anda (asalkan Anda memiliki kotak centang untuk menghubungkan otomatis ke jaringan Wifi pada tab umum manajer jaringan. Diuji pada instalasi default Ubuntu 16.04.3

Jadi, jika saya memahami Anda dengan benar, Anda hanya ingin secara otomatis memulai layanan hotspot di laptop Anda ketika kabel Ethernet terhubung dan menonaktifkan layanan ketika kabel Ethernet terputus.

Ini seharusnya cukup sederhana untuk dilakukan dengan skrip bash dan nmcli'nmcli' adalah alat networknig yang kuat yang memungkinkan Anda untuk membawa koneksi ke atas dan ke bawah sesuka hati dan mendapatkan banyak informasi yang relevan.

Untuk mengetahui koneksi apa yang akan Anda buat skrip, jalankan saja nmcli -t monitor| grep primaryketika terhubung melalui wifi dan pasang kabel Ethernet Anda. Koneksi Anda tertarik dalam membawa atas dan ke bawah dengan nmcliakan mereka dikelilingi oleh 's Contoh: 'koneksi Wired 1' logika adalah bahwa ketika 'Connection' terhubung memunculkan hotspot (Anda mungkin merasa perlu untuk menggunakan perintah sleepatau memanfaatkan yang -wberalih ke membuat nmclidalam script menunggu Anda untuk sejumlah detik tertentu untuk perintah untuk lengkap sebelum mengeluarkan berikutnya.

Membawa koneksi itu sesederhana nmcli 'connection name' downdan membawa satu adalahnmcli 'connection name' up

Catatan: Untuk kontrol penuh melalui skrip, Anda mungkin harus benar-benar menonaktifkan opsi koneksi otomatis setidaknya untuk koneksi wifi Anda di Network manager karena ia akan mencoba untuk terhubung secara otomatis kapan pun tersedia dan dapat mengganggu apa yang ingin Anda capai. Kutipan dari man nmcli:

There may be multiple connections that apply
       to a device, but only one of them can be active on that device at any
       given time. The additional connections can be used to allow quick
       switching between different networks and configurations.

Jadi setelah Anda menentukan bahwa Ethernet Anda terhubung, Anda dapat mengeluarkan perintah untuk menurunkan koneksi wifi. Contoh: nmcli connection my-wifi down dan kemudian koneksi hotspot ke atas Contoh: nmcli connection my-hotspot up

Untuk selengkapnya tentang cara menjalankan skrip secara otomatis berdasarkan koneksi jaringan lihat ini. Untuk detail lebih lanjut tentang 'nmcli' periksa halaman manual. Dan inilah info tentang cara membuat hotspot.

Penatua Geek
sumber
Terima kasih untuk referensi wiki, sebagai non-poweruser saya menemukan ini lebih mudah untuk memulai daripada halaman manual. Akan membuat Anda tetap diposting
Kehilangan Bib
Sejauh ini bagus, tetapi tidak sepenuhnya puas dengan bagian autoconnect yang dinonaktifkan. Saya mencari-cari nmcli di halaman manual, tetapi apakah akan ada perintah untuk 'memindai jaringan yang terhubung secara otomatis' pada mencabut kabel ethernet?
Bib-lost
@ Bib-lost Tes saya menunjukkan bahwa meninggalkan nirkabel sebagai hasil yang terhubung otomatis tetap terhubung ketika kabel Ethernet terhubung dan secara otomatis menyambung kembali jika Anda menurunkannya secara manual. Apakah hasil Anda berbeda dengan hasil saya?
Penatua Geek
Saya belum dapat membuat skrip berjalan saat mencolokkan kabel Ethernet (walaupun saya mengikuti langkah-langkah dalam Wiki) tetapi hanya dengan menguji di konsol, jika saya memesan secara manual untuk memutuskan sambungan dari suatu koneksi (walaupun itu terhubung secara otomatis ) itu tidak terhubung kembali.
Bib-hilang
@Bab-hilang Menarik .. Saya harus melakukan pengujian lebih lanjut. Apakah Anda mengatakan bahwa jika wifi diatur ke koneksi otomatis di Network Manager dan Anda membawanya turun nmcli connection my-wifi downtidak pernah menghubungkan kembali?
Penatua Geek
1

Solusi yang melakukannya untuk saya (ditemukan dengan bantuan Penatua Geek).

Aku terus autoConnect di semua jaringan saya ingin secara otomatis terhubung ke, tapi off untuk hot-spot. Saya kemudian meletakkan skrip berikut (dengan izin yang tepat seperti yang dijelaskan pada halaman Wiki ini ) di folder/etc/NetworkManager/dispatcher.d

!/bin/bash

interf=$1
state=$2

if [ $interf = "my-ethernet-device" -a $state = "up" ]; then
    nmcli connection up 'my-hotspot'
fi

if [ $interf = "my-ethernet-device" -a $state = "down" ]; then
    nmcli connection down 'my-hotspot'
fi

Sejauh ini ini bekerja dengan sangat baik; koneksi otomatis ke hotspot setiap kali kabel ethernet dicolokkan atau bahkan ketika komputer boot atau bangun dengan kabel ethernet dicolokkan. Deconnection otomatis dari hot-spot setiap kali kabel ethernet dicabut, diikuti oleh koneksi otomatis ke jaringan WiFi yang tersedia.

Kehilangan bib
sumber
Saya senang Anda mendapatkannya diurutkan dan menemukan jawaban saya bermanfaat! Bersulang! Sebagai anggota baru, Anda mungkin tidak mengetahui hal ini.
Penatua Geek