長い話を短く

長い話を短く

Debian がインストールされたノートブックがあります。ネットワークはNetworkManagerを介して設定されます。今は時々、あなたのデバイスを有線イーサネットポートに接続してからワイヤレスで接続したいと思います。これまではとてもよかったです。イーサネットポートを無視するには、まずNetworkManagerを手動でシャットダウンする必要があります。それ以外の場合は、イーサネットポートを設定しようとすると、必要な静的アドレスが妨げられます。今私の質問は次のとおりです。 dbusコマンドを使用してNetworkManagerに一定期間eth0を無視するように指示するにはどうすればよいですか?それから管理しますか?

答え1

~からDebian Wiki:

Debian Squeeze 以降、NetworkManager はデフォルトで /etc/network/interfaces で定義されたインタフェースを管理しません。

したがって、静的イーサネット構成をinterfacesファイルに入れてNetworkManager完全に管理されないようにする必要があります。私の考えでは、あなたも少しできると思います。インターフェースマッピング必要に応じて、ブリッジ構成と「一般」構成を自動的に切り替えます。

答え2

長い話を短く

nmcli device set eth0 managed false
.
.
.
nmcli device set eth0 managed true

注:ルートである必要はありません。

ネットワーク管理者

古いですが、これはまだ非常に良い質問であり、答えは長年にわたって変更されました。幸いなことに、今ははるかに簡単になりました。このnmcliコマンドは、コマンドラインからNetwork Managerを制御し、特定のインターフェイスを管理されていない状態に保つ必要があることを通知するために使用できます。

nmcli device set eth0 managed false

Network Manglerにインターフェイス管理を再開させるには、反対のコマンドを実行します。

nmcli device set eth0 managed true

次のように入力して、コンピュータのさまざまなネットワークインタフェース(ネットワーク管理者はこれを「デバイス」と呼びます)の状態を表示できますnmcli devices

$ nmcli device
DEVICE           TYPE      STATE         CONNECTION       
wlan0            wifi      connected     Mother Brain (66GHz) 
p2p-dev-wlan0    wifi-p2p  disconnected  --               
eth1             ethernet  unavailable   --               
enx00505b01d4d3  ethernet  unavailable   --               
eth0             ethernet  unmanaged     --               
lo               loopback  unmanaged     --            

nmcliの使い方

nmcliには、コマンドラインで-hを使用していつでも検索できる優れた使用情報があります。たとえば、

$ nmcli device set -h

Usage: nmcli device set { ARGUMENTS | help }

ARGUMENTS := DEVICE { PROPERTY [ PROPERTY ... ] }
DEVICE    := [ifname] <ifname> 
PROPERTY  := { autoconnect { yes | no } |
             { managed { yes | no }

Modify device properties.

タブ補完機能を有効にした場合は、apt install bash-completionnmcliのコンテキストに合った完成機能が非常に便利です。たとえば、設定したいデバイスの名前が覚えていない場合は、nmcli device setTABを2回入力して押すと、すべての可能性が表示されます。また、時間とタイプミスも節約されます。マイコンピュータに入力できます。

nmcli device set enx

タブをクリックすると完了です。

 nmcli device set enx00505b01d4d3 

答え3

残念ながら、それは不可能です。これDバスAPIすべての種類のワイヤレスデバイスを無効にできますが、有線デバイスを無効にすることはできません。有線接続を無効にする唯一の方法は、無効にすることです。みんな無線装置を含む装置。

おそらく有線デバイスの場合は、「自動接続」ボックスを選択解除すると便利です。これにより、NetworkManagerは自動的に接続されません。

答え4

nmcliマンページで見つけた内容です。これがどのディストリビューションで動作するのかわかりませんが、使用していますUbuntu 12.04 LTS

これは、デバイスが切断されたとマークされているため、ネットワーク管理者の制御を受けません。

nmcli dev disconnect iface eth0 

ケーブルを抜かない限り大丈夫です。

以下でデバイスの状態を確認できます。

nmcli dev status

現在、次の機関とアクティブリンクが確立されています。

nmcli con status

このヘルパースクリプトを作成しました。nm-manual-interface

#!/bin/bash

DEV=${1:-help}
shift

OPER=${1:-manual}
shift


if [ "$DEV" == "help" ]; then
echo -n "$0 "
  cat <<'EOH';
<DEV> [manual|auto]

Change <DEV> to disconnected state for nm.
In short take manual control of <DEV>.

All changes are temporary.

Usage:

Change to manual:
EOH
echo $0 eth0 manual
echo
echo Change back to nm control:
echo $0 eth0 auto
echo
  exit 1
fi
# store last uuid of device here
LASTUUIDFILE="/tmp/.nm-last-uuid-${DEV}"


if [ "$OPER" == "manual" ]; then
  if [ -n "$DEV"  ] ; then
    UUIDNET=$(nmcli con status |grep "$DEV" | perl -anle 'print @F[1]')
    if [ -n "$UUIDNET" ]; then 
      echo "$UUIDNET"  > $LASTUUIDFILE
      nmcli dev disconnect iface "$DEV"
    fi
  fi
fi

if [ "$OPER" == "auto" ]; then
  if [ -f "$LASTUUIDFILE" ]; then
     nmcli con up uuid $(cat "$LASTUUIDFILE") --nowait
     rm "$LASTUUIDFILE"
  else
    echo No last-state uuid file for iface "$DEV"
  fi
fi

関連情報