ネットワーク接続アプレットから古いネットワークエントリを削除する方法


17

パネルのワイヤレスアイコンをクリックして[接続の編集]-> [ワイヤレス]を選択すると、nm-appletからマシンが「記憶」しているネットワークを削除できることがわかります。ただし、ドロップダウンリストで誤って誤ったワイヤレス接続をクリックすることがあります。接続が安全な場合、マシンはもちろん正常に接続することはありませんが、どういうわけかESSIDを記憶しているようです。私がそのワイヤレスの範囲内にいるときはいつでも、接続しようとします。

さらに悪いことに、他のネットワークに接続されていない場合は、このネットワークに接続するよう繰り返し求められます。放置すると、この誤ったネットワークへのログインを促すウィンドウのコピーが何十も見つかることがあります。この接続IDを記録するファイルがどこかになければなりませんが、見つけることができません。上記の「接続の編集」に表示される接続は、実際に接続した接続のみです。ファイルを見つけて、問題のある「記憶された」ネットワークに対応する行を削除するにはどうすればよいですか?

編集私はそれらを最初に選択したときに追加されたリストからそれらのネットワークを削除する解決策を探します。この動作はネットワークマネージャのバグのようです(?)

回答:


23

ディレクトリ内のファイルを削除しようとしました/etc/NetworkManager/system-connections/か?

接続しようとしているネットごとに1つのファイルがあり、ターミナルを開いてコマンドを使用する必要があります。

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

すべてのファイルをリストするには、削除するネットワークが見つかったら、次のコマンドで削除します。

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

素晴らしいです、ありがとう!このリストがネットワークアプレットGUIで提供されるリストと異なるのはなぜだろうか?
cboettig

これは働いた男。
ジェリックリンズジョン14

2
再起動後、それらの名前が再び表示されます!
アンワル

6

を使用して接続を削除できます nmcli con delete (CONNECTION_NAME)

使用されなかったすべての接続を削除するには(ルートは不要)

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

素晴らしい答え。すべての接続を削除するには:nmcli --fields UUID、TIMESTAMP-REAL con show | awk '{print $ 1}' | 行を読み取り中; nmcli con delete uuid $ lineを実行します。完了
ナダブB

1

主要な問題がネットワークへのログインを求める迷惑なプロンプトである場合、ワイヤレスを使用していないときはいつでもEnable Wireless、ネットワークインジケータメニューのエントリをクリックしてワイヤレスを無効にすることができます。


ええ、それが接続性の悪い地域での私の現在のソリューションです。ただし、以前にそのネットワークに接続しようとしたことがない限り、通常はプロンプトが表示されません。接続に成功したら、リストから削除できますが、プロンプトが表示されることはありません。私の質問は、そこには表示されないが、マシンによって明確に記憶されているネットワークのレコードをどこで見つけるかです。レコードファイルはどこかに
cboettig

0

@Postadelmagaによる以前の回答に柔軟性を追加して、削除されるSSIDの名前を出力するためにさらに努力しました。これにより困難が追加されました。「never」という単語を含むSSID名が「never」を含むタイムスタンプと誤って一致する可能性を回避する必要があります。

接続を名前で削除する別の関数も作成しました。

ソース: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
}

次に、以下に示すように特定の接続を削除できます。

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

0

すべての接続を削除します。

nmcli --pretty --fields UUID,TYPE con show | grep wifi | awk "{print $1}" | while read line; do nmcli con delete uuid  $line; done
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.