物理的に存在する場合にのみネットワークインターフェイスを起動する方法


8

Ubuntu Server 12.04を実行している(GUIなし)。カーネルが物理的に接続されている場合にのみ、カーネルにネットワークインターフェイスを起動させる最良の方法は何ですか?したがって、それが存在しない場合は、他のインターフェース(存在する場合)の初期化を続行し、「ネットワーク構成の待機」による遅延なしにログイン画面に進みます。

たとえば、ワイヤレスUSBキーwlan9(/ etc / network / interfaces内)があります。

auto wlan9
iface wlan9 inet dhcp
        wpa-ssid myssd
        wpa-psk mykey
        wpa-proto RSN
        wpa-pairwise CCMP
        wpa-group CCMP

autoの代わりにallow-hotplugを試しました。その場合、起動中にインターフェイスが自動的に初期化されず、ifup wlan9を使用して手動で初期化する必要があります。これはまさに私が探しているものではありません。

ありがとうございました。

回答:


4

サーバーの場合:NetworkManagerを使用する

  1. インストールしてください:

    sudo apt-get install network-manager
    

    残念ながら、これにより多くの依存関係が発生します。

  2. 現在従来の方法で構成されているインターフェイスを停止します。

    ifdown wlan9
    
  3. /etc/network/interfacesそのインターフェイスに関するすべての行を削除して、の手動設定を無効にします。

  4. /etc/NetworkManager/system-connections/(名前を構成する)にワイヤレス接続の接続設定を追加します。

    [connection]
    id=Some name of my connection
    uuid=0d791425-87c5-45e6-948e-01b1863901f7
    type=802-11-wireless
    
    [802-11-wireless]
    ssid=mySSID
    mode=infrastructure
    mac-address=24:77:00:01:02:03
    security=802-11-wireless-security
    
    [802-11-wireless-security]
    key-mgmt=wpa-psk
    psk=mypassword
    
    [ipv4]
    method=auto
    
    [ipv6]
    method=ignore
    
    • 以下のためのuuidコマンドを使用しuuidgen、ランダムなものを生成します。
    • 以下のためにmac-address、ワイヤレスアダプタのMACアドレスを使用します(使用がifconfig -a wlan9見つけるために)。これにより、この構成ファイルはこのアダプターのみにバインドされます-存在しない場合は、別のアダプターに使用されず、アダプターが存在するまで待機しません。
    • 他の分野は私が望んでいることを物語っています。:)
  5. NetworkManagerを再起動するか、再起動します。

    restart network-manager
    

ありがとう、ネットワークマネージャーのオプションは少し重い感じがしますが、もっと軽いものが見つからない場合は、こちらを使用します。ifplugdがほぼ動作した場合、wlan9は起動しますが、DHCPリースを取得しません。
noseratio 2013

@Noseratioはい、これは本当に軽量なソリューションではないことに同意します。GUI依存関係のない、より軽量なネットワークマネージャーを知っていれば、私はそれを私の答えに使用したでしょう。:)
gertvdijk 2013

@gertvdijk mac-address行を削除するとどうなりますか?すべてのアダプターで機能しますか、それともクラッシュしますか?
DangeMask 2015

@DangeMask想定しているすべてのアダプターで機能するはずです。試してみてください。
gertvdijk 2015

@gertvdijkたった今試しました。「デバイスMACアドレス」を削除すると(GUIで削除され、ファイルにも表示されなくなります)、手動で接続して再起動した後でも、ネットワークマネージャーが自動的に接続しません。ifupdown> managedをtrueとfalseに設定しても成功しませんでした。
DangeMask 2015

3

ログイン画面に進みます

GUI対応のインストール(非サーバー)を使用していることを示唆しているので、それに基づいてこの回答を提供します。


NetworkManagerを使用するだけ

  1. インターフェイスを停止します。

    ifdown wlan9
    
  2. /etc/network/interfacesそのインターフェイスに関するすべての行を削除して、の手動設定を無効にします。

  3. ネットワーク設定に移動し、ワイヤレスネットワーク接続を追加/編集します。

  4. 次のように構成します(下のスクリーンショットを参照)。

    1. 自動的に接続してもらいます。

    2. 適切なMACアドレスを選択して、適切なワイヤレスアダプターに適用します。アダプターが存在しない場合、このダイアログのこれらの接続設定は適用されないため、これによりこれらがこの特定のアダプターに「バインド」されます(すべてのアダプターが別のMACアドレスを持っているため)。いいえ、これはWiFi APのMACアドレスではありません-それはBSSIDです。

    3. すべてのユーザーが利用できるようにします(これにより、ログイン画面で自動的に接続されます)。この設定は、必要な詳細を指定するまでグレー表示されます。

    もちろん、セキュリティ、SSIDなどに関するその他の詳細も入力します。

    ここに画像の説明を入力してください


これがUbuntuサーバーであることを指定するのを忘れていました。とにかくありがとう、私は私のデスクトップのニーズのためにこのヒントを保存しました。
noseratio

1
@Noseratioああ...残念。サーバーのインストールの答えを書いています。次回は、より具体的で完全な質問にしてください。
gertvdijk 2013

します。noobを許してください:)
noseratio 2013

3

追加のパッケージに依存しない次のソリューションを考え出しました:

auto wlan9
iface wlan9 inet manual
        wpa-ssid MYSSD
        wpa-psk MYKEY
        wpa-proto RSN
        wpa-pairwise CCMP
        wpa-group CCMP
        wireless-power off
        pre-up if [ -f /sys/class/net/wlan9/operstate ]; then ifconfig wlan9 up; fi
        up if [ -f /sys/class/net/wlan9/operstate ]; then dhclient wlan9; fi

エレガントではないかもしれませんが、私が望むことを実行します。ワイヤレスドングルが接続されていない場合、起動遅延なしでwlan9の初期化をスキップします。それ以外の場合は起動します。


いいね。しかし、これはどのように初期化をスキップするのですか?pre-upディレクティブでは何もキャンセルしません。
gertvdijk 2013

1
これは次の2つの要素の産物であると考えています。1)inetマニュアル - 何かを実行するために事前アクションに依存している:事前またはアップがない場合、カーネルはこのスタンザをスキップするだけ
noseratio

そうかもしれませんが、マンページによれば、wpa-*ディレクティブを含む他のすべての設定はmanualメソッドに適用されません。一種の文書化されていない動作のように見えます。
gertvdijk 2013

1
私はコメントで台無しに、ここで私が言うことを意味したものです:これは二つの要因の製品だと思う:1)INETマニュアル -それは本当に依存しているので、事前にアップ何もするアクション:何がない場合は、プリアップまたはアップ、カーネルはこのスタンザをスキップするだけです2)インターフェースが存在しない場合、[-f / sys / class / net / wlan9 / operstate]が1を返し、事前準備が失敗するため、それ以上の初期化や遅延はありません。
noseratio

前のアップの動作は、実際に文書化されているが、それは、将来変更される可能性manpages.ubuntu.com/manpages/precise/man5/interfaces.5を。pre-upインターフェイスを起動する前にコマンドを実行します。このコマンドが失敗した場合、ifupは異常終了し、構成済みとしてインターフェースをマークせず、エラーメッセージを出力して、ステータス0で終了します。この動作は将来変更される可能性があります。
noseratio 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.