Làm cách nào để xóa các mục Mạng lỗi thời khỏi Ứng dụng kết nối mạng


17

Tôi thấy rằng tôi có thể xóa các mạng mà máy của tôi "nhớ" khỏi applet bằng cách nhấp vào biểu tượng không dây trong bảng điều khiển và chọn "chỉnh sửa kết nối" -> "không dây". Tuy nhiên, đôi khi tôi bấm nhầm vào kết nối không dây trong danh sách thả xuống. Nếu kết nối được bảo mật, tất nhiên máy không bao giờ kết nối thành công, nhưng bằng cách nào đó, nó dường như vẫn ghi nhớ ESSID. Bất cứ khi nào tôi ở trong phạm vi của mạng không dây đó, bây giờ nó sẽ cố gắng kết nối.

Tệ hơn, nếu không được kết nối với bất kỳ mạng nào khác, nó liên tục nhắc tôi kết nối với mạng này. Nếu không chú ý, tôi có thể tìm thấy hàng tá bản sao của cửa sổ nhắc tôi đăng nhập vào mạng nhầm này. Phải có một tệp ở đâu đó ghi ID kết nối này, nhưng tôi không thể tìm thấy nó. Các kết nối duy nhất xuất hiện trong "chỉnh sửa kết nối" mà tôi đề cập ở trên là những kết nối mà tôi thực sự đã kết nối. Làm cách nào để tìm tệp và xóa dòng tương ứng với mạng "ghi nhớ" vi phạm?

EDIT Tôi tìm kiếm một giải pháp để loại bỏ các mạng đó khỏi bất kỳ danh sách nào chúng được thêm vào khi tôi chọn chúng lần đầu tiên. Có vẻ như hành vi này là một lỗi trong trình quản lý mạng (?)

Câu trả lời:


23

Bạn đã cố gắng để xóa các tập tin trong thư mục /etc/NetworkManager/system-connections/?

Bạn nên có 1 tệp cho mỗi mạng bạn đã cố gắng kết nối, mở một thiết bị đầu cuối và sử dụng các lệnh:

sudo ls -l /etc/NetworkManager/system-connections/

Để liệt kê tất cả các tệp, sau khi bạn đã tìm thấy mạng mà bạn muốn xóa, hãy xóa chúng bằng lệnh:

sudo rm /etc/NetworkManager/system-connections/NETWORK_NAME

Thật sự cảm ơn! Tôi tự hỏi tại sao danh sách này khác với danh sách được cung cấp trong GUI Applet mạng?
cboettig

Người đàn ông làm việc này.
Jerric Lyns John

2
Bởi sau khi khởi động lại, những cái tên đó lại xuất hiện trở lại!
Anwar

6

Bạn có thể xóa kết nối bằng cách sử dụng nmcli con delete (CONNECTION_NAME)

Để xóa tất cả kết nối không bao giờ được sử dụng (không cần root)

nmcli --fields UUID,TIMESTAMP-REAL con show | grep never |  awk '{print $1}' | while read line; do nmcli con delete uuid  $line;    done

Câu trả lời chính xác. Để xóa tất cả các kết nối, hãy thực hiện: nmcli --fields UUID, TIMESTAMP-REAL con show | awk '{in $ 1}' | trong khi đọc dòng; làm nmcli con xóa uuid $ line; xong
Nadav B

1

Nếu vấn đề chính của bạn là những lời nhắc phiền toái đó yêu cầu bạn đăng nhập vào mạng, thì bất cứ khi nào bạn không sử dụng Wireless, bạn chỉ có thể Tắt Wireless bằng cách nhấp vào Enable Wirelessmục trong Menu Chỉ báo Mạng.


Vâng, đó là giải pháp hiện tại của tôi trong một khu vực kết nối kém. Tuy nhiên, tôi thường không được nhắc trừ khi tôi đã cố gắng kết nối với mạng đó trước đó. Nếu tôi đã kết nối thành công, tôi có thể xóa nó khỏi danh sách và không được nhắc về nó. Câu hỏi của tôi là về nơi tìm bản ghi cho các mạng không hiển thị ở đó nhưng được máy ghi nhớ rõ ràng. Tệp bản ghi phải tồn tại ở đâu đó
cboettig

0

Thêm linh hoạt hơn cho câu trả lời trước của @Postadelmaga, tôi đã dành nhiều nỗ lực hơn để in tên SSID bị xóa. Điều này đã thêm một khó khăn: bây giờ chúng ta phải tránh khả năng tên SSID có chứa từ "không bao giờ" vô tình khớp với dấu thời gian có chứa "không bao giờ".

Tôi cũng đã tạo một chức năng khác loại bỏ kết nối theo tên.

Nguồn tại: https://github.com/frgomes/debian-bin/blob/master/bash_20nm.sh

#!/bin/bash

function nmcli_list {
  nmcli --pretty --fields NAME,UUID,TIMESTAMP-REAL con show
}

function nmcli_remove {
  if [ ! -z "$1" ] ;then
    nmcli --fields NAME con show | \
      grep "$@" | \
        while read name ;do 
          echo Removing SSID "$name"
          nmcli con delete "$name"
        done
  fi
}

##################################################################################
# The intent here is avoid that a connection named "never drive after you drink" #
# matches a timestamp "never". So, we have to make sure that we match colon      #
# followed by "never" followed by spaces and/or tabs and finally an end of line. #
#                                                                                #
# WARNING: However, I didn't get a chance to test this scenario.                 #
#          So, I provide this code the way it is, in the hope that I've covered  #
#          well the behavior from some other simulations I did.                  #
##################################################################################

function nmcli_remove_never_used {
  nmcli --terse --fields NAME,TIMESTAMP-REAL con show | \
    egrep -e ':never[ \t]*$' | \
      sed -r 's/:never[ \t]*$//' | \
        while read name ;do
          echo Removing SSID "$name"
          nmcli con delete "$name"
        done
}

Sau đó, bạn có thể xóa một kết nối cụ thể như dưới đây:

$ nmcli_remove ScalaX
$ nmcli_remove "My WiFi @ Home"
$ nmcli_remove "never drive after you drink"

0

Xóa tất cả các kết nối:

nmcli --pretty --fields UUID,TYPE con show | grep wifi | awk "{print $1}" | while read line; do nmcli con delete uuid  $line; done
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.