Debianでイーサネットにケーブルが接続されていない場合にDHCPをスキップする方法


12

私のBananian Linuxは、接続されていないeth0インターフェイスのDHCPリースを取得しようとしてログオン時に時間を無駄にしています。さて、延長ケーブルはそれに接続されていますが、もう一方には何もありません。

私が持っています

auto eth0
iface eth0 inet dhcp 

私の中にセット/etc/network/interfaces私は、それが接続されている場合には、イーサネットをピックアップしたいですが、私は確かにケーブルがイーサネットに接続されていない場合、システムの起動を遅くしたくないので。システムはこれを自動的に認識し、インターフェイスのDHCPリースを取得しようとしないと想定しました。

ロード時に表示されるものを次に示します(最後の3行を参照)。

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

ifがリースが来ないことを理解した後、ブートを続行します。

接続されたケーブルがない場合、DHCPに通知しない方法はありますか?

回答:


16

指定する場合

allow-hotplug eth0

の代わりに

auto eth0

/etc/network/interfaces、接続はudev、起動するたびにではなく、何かがトリガーしたときにのみ開始されます。

ケースを処理するにはこれで十分ですが、必ずしもそうではありません。そのinterfacesmanページには、ことに言及します

(「allow-hotplug」とマークされたインターフェースは、udevが検出したときに起動されます。これは、インターフェースがすでに存在する場合は起動中、またはUSBネットワークカードを接続するなどの後で実行できます。接続されているネットワークケーブルの検出とは関係ありません。)

ケーブルが接続されていない場合パッケージを使用/etc/network/if-up.d/00check-network-cableしてインターフェイスをスキップする必要がある場合がありifupdown-extraます


起動前にケーブルがすでに接続されている場合はどうなりますか?udevその場合、イベントは起動時に接続をトリガーしますか?つまり、udevどのデバイスがマシンのポートにすでに接続されているかを確認しますか?
ジョセフR.

0

問題には常に複数の解決策があります。

このマシンを自宅のように常に1か所に置いている場合、最も簡単な方法は、dhcp-clientパッケージを削除し、静的IPアドレス、マスク、ゲートウェイを設定することです。あなたがそれを必要としないと仮定すると、あなたは次のようなことをするでしょう

apt-get remove isc-dhcp-client

依存関係がある場合は、これが最初にわかります。パッケージをアンインストールすると、ブート中に待つ必要がなくなります。

これは、あなたがあなたに設定するものの例です /etc/network/interfaces

iface eth0 inet static
    address 192.168.0.2
    netmask 255.255.255.0
    gateway 192.168.0.254

ソース:https : //wiki.debian.org/DHCP_Client


質問で述べたように、イーサネットケーブルが接続されている場合はDHCPを使用します。したがって、DHCPクライアントを削除しても役に立ちません。
マキシムV.パブロフ

0

ご覧くださいifplugd

ifplugdは、ケーブルが接続されるとイーサネットデバイスを自動的に構成し、ケーブルが引っ張られると自動的に構成を解除するLinuxデーモンです。これは、ケーブルが実際に接続されている場合にのみインターフェイスを構成するため、オンボードネットワークアダプターを搭載したラップトップで役立ちます。

ifplugd ifplugdは、ディストリビューションのネイティブネットワーク設定ユーティリティとインターフェイスします。

いくつかの機能:

  • ディストリビューションのネイティブifup / ifdownプログラムを使用します。
  • ケーブルが抜かれたり、差し込まれたり、インターフェース設定が成功または失敗したときにビープ音が鳴る場合があります。
  • Linux SIOCETHTOOL(新しい、別名ethtool API)、SIOCGMIIREG(古い、別名mii-diag / mii-tool API)、およびSIOCDEVPRIVATE(最も古い、別名mii-tool API)ioctl()をサポートして、リンクステータスを取得します。リリース0.24では、IFF_RUNNINGインターフェイスフラグを使用したリンク検出のサポートが導入されています。
  • syslogサポート
  • 小さなプログラム-バイナリはわずか25 KB(libdaemonの場合は16 KB)です。
  • 複数のイーサネットインターフェイスのサポート
  • 短い「プラグされていない」期間(-dオプション)または短い「プラグされた」期間(-uオプション)を無視するように構成できます。
  • ワイヤレスネットワークのサポート。APへの関連付けが検出されるたびに、ネットワークが構成されます。APの関連付けが成功する前にWEPキーを設定する機能が必要な場合は、waproamdをご覧ください。
  • ケーブル検出をサポートしないネットワークデバイスの互換モード(-Fオプション)

パッケージはDebianパッケージ検索ページ:ifplugdの
公式ifplugdサイト

アンは、apt-get update && apt-get-install ifpludトリックを行う必要があります。余談ですが、systemdの作成者がこのパッケージを管理しています。


2
前回のリリースが10年前だったので、「...このパッケージを保守するために使用されていた」と見なしました;-)。今日ではレナートは、おそらくお勧めしますsystemd-networkd...とをifplugd、インストール後に、あなたはまた、(指定したデバイスを設定する必要がallow-ifplugd/etc/network/interfaces)。
スティーブンキット

@StephenKittあなたallow-ifplugdはコードを使用または見ましたか?検索中に、bugs.debian.org/cgi-bin/bugreport.cgi?bug=468896のみが見つかりました。これは、allow-ifplugd機能が受け入れられなかったことを示しています。
sourcejedi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.