Sử dụng Trình quản lý mạng để kết nối với Điểm truy cập WiFi trên dòng lệnh


26

Tôi muốn kết nối với một điểm truy cập không dây từ dòng lệnh. Lý tưởng nhất là tôi chỉ cần tên của AP. Nhưng địa chỉ phần cứng cũng sẽ hoạt động.

Tôi biết tôi có thể sử dụng nmcliđể kết nối với kết nối mạng được quản lý, nhưng trong trường hợp của tôi, điểm truy cập có thể chưa được định cấu hình cho Trình quản lý mạng (Xem sự khác biệt giữa đầu ra của nm-toolnmcli con).

Ví dụ đầu ra của 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  [...]

Ví dụ đầu ra của 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

[...]

Làm cách nào để tôi kết nối với một điểm truy cập có thể biết hoặc không biết đến NM?

Bổ sung: Tìm hiểu xem kết nối có cần cụm mật khẩu hay không và cũng gửi nó trên dòng lệnh cũng sẽ rất tuyệt (nghĩa là sẽ rất tuyệt nếu người quản lý mạng sẽ không mở bất kỳ hộp thoại khóa nào hoặc lỗi trên gui)

Câu trả lời:


6

Bạn có thể sử dụng cnetworkmanagercho việc này.

Chỉnh sửa:

Sau một số điều tra, rõ ràng là không thể chạy hai "nhà cung cấp cấu hình người dùng" (một ứng dụng nghe tại một địa chỉ dbus nhất định) cùng một lúc và cnetworkmanager cần phải hoạt động như một "nhà cung cấp cấu hình" như vậy (ít nhất là cho đến khi kết nối được thiết lập).

Bây giờ, những gì bạn có thể làm là thêm thông tin cho kết nối vào gconf dưới /system/networking/connectionskhóa (bạn có thể thực hiện điều đó từ dòng lệnh hoặc tập lệnh), sau đó sử dụng dbus hoặc công cụ dòng lệnh như cnetworkmanager hoặc nmcli để kết nối với nó. Có thể bạn cũng sẽ phải thêm khóa vào khóa của người dùng trước (để tránh cửa sổ bật lên mật khẩu).

Nhưng tất nhiên điều đó sẽ không hoạt động trên máy tính để bàn sử dụng máy khách NM khác ngoài ứng dụng nm-applet (ví dụ: KDE). Bạn cũng sẽ phải tìm ra cách cung cấp cấu hình cho họ ...

Chỉnh sửa 2:

Có vẻ như có thể thông qua org.freedesktop.NetworkManagerUserSettingsDBus trên hệ thống, nhưng đây là IMO được ghi chép kém ...

Bạn có thể muốn đọc về cài đặt cấu hình và thông số giao diện DBus .

Và đây là một ví dụ có liên quan (có thể bạn muốn thiết lập kết nối người dùng thay vì kết nối hệ thống)


Vẫn không có gì. Thật không may, cnetworkmanager sẽ không hoạt động chính xác bên cạnh applet của người quản trị mạng ("Một applet khác đang chạy")
Stefano Palazzo

Tôi đã đọc về cách thức hoạt động của NM & nm-applet và chỉnh sửa câu trả lời của tôi.
JanC

11

Bạn có thể thực hiện việc này trực tiếp bằng cách sử dụng nmcli, ngay cả khi kết nối chưa được định cấu hình trong Trình quản lý mạng:

nmcli dev wifi con "myssid" password "myssidpassword"

Nếu bạn không muốn lưu trữ mật khẩu không dây trong lịch sử của mình trong các phiên bản gần đây (có thể mới hơn so với đề cập bên dưới), bạn có thể thêm --askđể nhắc nhở bạn về thông tin cần thiết.

nmcli --ask device wifi connnect "myssid"

Tiện ích này đã được thêm vào trong Trình quản lý mạng 0.9.6, vì vậy điều này chỉ hoạt động trong Ubuntu 12.10 trở lên.

Bạn cũng có thể nhận danh sách các điểm truy cập khả dụng với:

nmcli dev wifi list

conkhông được công nhận bởinmcli dev wifi
kaiser

Phiên bản nào bạn đang sử dụng? Nó hoạt động với tôi, và được ghi lại như một ví dụ trong trang.
Robie Basak

nmcli -v0.9.4.0
kaiser

Vậy bạn đang sử dụng 12.04? Như tôi đã nói trong câu trả lời của mình, điều này chỉ hoạt động trên Ubuntu 12.10 trở lên.
Robie Basak

Đây có thể là trường hợp. Tôi tự hỏi nếu tôi có thể sudo apt-get updatenó.
kaiser

2

Bạn có thể sử dụng iwconfig (wifitools) để mã hóa wep hoặc wpa_supplicant cho wpa và wep, bạn cũng sử dụng wicd-curses nếu bạn đang tìm kiếm thứ gì đó dễ dàng hơn, chúc may mắn =)


Tôi thực sự muốn sử dụng trình quản lý mạng, có thể thông qua dbus. Tôi không thể gây rắc rối với hệ điều hành quá nhiều, vì chương trình tôi đang viết sẽ không chỉ chạy trên máy của riêng tôi. Tất cả các cấu hình, nếu có thể, nên vẫn không thay đổi.
Stefano Palazzo

1

Bạn có thể kiểm tra iwconfig và iwlist:

  • iwconfig thao tác các tham số không dây cơ bản
  • iwlist cho phép bắt đầu quét và liệt kê tần số, tốc độ bit, khóa mã hóa ...

Có nhiều lựa chọn. Kiểm tra Công cụ không dây cho Linux để biết thêm.


2
Như tôi đã nói, tôi muốn tích hợp với trình quản lý mạng, không thay thế nó.
Stefano Palazzo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.