Gunakan Network-Manager untuk terhubung ke Titik Akses WiFi di baris perintah

26

Saya ingin terhubung ke titik akses nirkabel dari baris perintah. Idealnya, saya hanya perlu nama AP. Tetapi alamat perangkat kerasnya juga akan berfungsi.

Saya tahu saya dapat menggunakan nmcliuntuk terhubung ke koneksi jaringan yang dikelola, tetapi dalam kasus saya, titik akses mungkin belum dikonfigurasi untuk Network-Manager (Lihat perbedaan antara output dari nm-tooldan nmcli con).

Contoh output dari nmcli:

Auto pwln       3a3d62b1-bbdf-4f76-b4d2-c211fd5cfb03   802-11-wireless [...]  
Wired Network   aa586921-accf-4932-98c4-c873c310f08e   802-3-ethernet [...]  
Cisco-UDP Uni   7f94847b-04dc-40b7-9955-5246fb77cc65   vpn [...]  
T-mobile (D1)   867f345a-cbbf-4bd4-b883-a5e5ae0932f0   gsm  [...]

Contoh output dari nm-tool:

State: connected
- Device: eth1  [Auto pwln] ----------------------------------------------------
[...]
  Wireless Access Points (* = current AP)
    *pwln: Infra, [...], Freq 2472 MHz, Rate 54 Mb/s, Strength 80 WPA WPA2
    WLAN:  Infra, [...], Freq 2422 MHz, Rate 54 Mb/s, Strength 20 WPA WPA2

[...]

Bagaimana cara saya terhubung ke titik akses yang mungkin atau mungkin tidak diketahui oleh NM?

Ekstra: Mengetahui apakah koneksi memerlukan frase sandi, dan mengirimkannya pada command-line juga akan lebih bagus (artinya, manajer jaringan tidak akan membuka dialog keyring atau kesalahan pada gui)

Stefano Palazzo
sumber

Jawaban:

6

Anda bisa menggunakannya cnetworkmanageruntuk ini.

Edit:

Setelah beberapa penyelidikan menjadi jelas bahwa tidak mungkin untuk menjalankan dua "penyedia konfigurasi pengguna" (aplikasi mendengarkan pada alamat dbus tertentu) pada saat yang sama, dan cnetworkmanager perlu bertindak sebagai "penyedia konfigurasi" seperti itu (setidaknya sampai koneksi sudah diatur).

Sekarang, apa yang dapat Anda lakukan adalah menambahkan informasi untuk koneksi ke gconf di bawah /system/networking/connectionskunci (Anda dapat melakukannya dari commandline atau skrip), dan kemudian menggunakan dbus atau alat baris perintah seperti cnetworkmanager atau nmcli untuk terhubung. Mungkin Anda juga harus menambahkan kunci ke keyring pengguna terlebih dahulu (untuk menghindari sembulan kata sandi).

Tapi tentu saja itu tidak akan berfungsi pada desktop yang menggunakan NM-client selain nm-applet (misalnya KDE). Anda harus mencari cara untuk menyediakan konfigurasi untuk mereka juga ...

Edit 2:

Sepertinya ini dimungkinkan melalui org.freedesktop.NetworkManagerUserSettingspada sistem DBus, tapi ini semua IMO yang tidak terdokumentasi ...

Anda mungkin ingin membaca tentang pengaturan konfigurasi dan spesifikasi antarmuka DBus .

Dan berikut ini adalah contoh yang relevan (mungkin Anda ingin mengatur koneksi pengguna alih-alih koneksi sistem)

JanC
sumber
Tetap tidak ada. Sayangnya, cnetworkmanager tidak akan berfungsi dengan baik selain networkmanager-applet ("Applet lain sedang berjalan")
Stefano Palazzo
Saya membaca tentang bagaimana NM & nm-applet bekerja & mengedit jawaban saya.
JanC
11

Anda dapat melakukan ini secara langsung menggunakan nmcli, bahkan jika koneksi belum dikonfigurasi di Network Manager:

nmcli dev wifi con "myssid" password "myssidpassword"

Jika Anda tidak ingin kata sandi nirkabel disimpan dalam riwayat Anda di versi terbaru (mungkin lebih baru dari yang disebutkan di bawah), Anda dapat menambahkan --askagar nmcli meminta Anda untuk kehilangan informasi yang dibutuhkan.

nmcli --ask device wifi connnect "myssid"

Fasilitas ini ditambahkan di Network Manager 0.9.6, jadi ini hanya berfungsi di Ubuntu 12.10 atau lebih baru.

Anda juga bisa mendapatkan daftar jalur akses yang tersedia dengan:

nmcli dev wifi list
Robie Basak
sumber
contidak dikenali olehnmcli dev wifi
kaiser
Versi apa yang Anda gunakan? Ini berfungsi untuk saya, dan didokumentasikan sebagai contoh di halaman manual.
Robie Basak
nmcli -vis0.9.4.0
kaiser
Jadi Anda menggunakan 12,04? Seperti yang saya katakan dalam jawaban saya, ini hanya berfungsi di Ubuntu 12.10 atau lebih baru.
Robie Basak
Ini mungkin masalahnya. Aku ingin tahu apakah aku bisa sudo apt-get updatemelakukannya.
kaiser
2

Anda dapat menggunakan iwconfig (wifitools) untuk enkripsi wep, atau wpa_supplicant untuk wpa dan wep, juga Anda menggunakan kutukan wicd jika Anda mencari sesuatu yang lebih mudah, semoga sukses =)

chilicuil
sumber
Saya benar-benar ingin menggunakan manajer jaringan, mungkin melalui dbus. Saya tidak bisa mengacaukan sistem operasi terlalu banyak, karena program yang saya tulis tidak hanya akan berjalan di komputer saya sendiri. Semua konfigurasi, jika memungkinkan, harus tetap tidak berubah.
Stefano Palazzo
1

Anda dapat memeriksa iwconfig dan iwlist:

  • iwconfig memanipulasi parameter nirkabel dasar
  • iwlist memungkinkan untuk memulai pemindaian dan daftar frekuensi, laju bit, kunci enkripsi ...

Ada banyak pilihan. Lihat Alat Nirkabel untuk Linux untuk lebih lanjut.

Fernando Briano
sumber
2
Seperti yang saya katakan, saya ingin berintegrasi dengan manajer jaringan, bukan menggantikannya.
Stefano Palazzo