ifdown
Debian 6.0.5ではインターフェイスを構築できません。
user@box:/etc/network$ sudo ifdown eth0 && sudo ifup eth0
ifdown: interface eth0 not configured
SIOCADDRT: File exists
Failed to bring up eth0.
user@box:/etc/network$ cat interfaces
auto lo
iface lo inet loopback
allow-hotplug eth0
allow-hotplug eth1
auto eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.254
auto eth1
iface eth1 inet manual
Marcoの要求に応じて:
user@box:/etc/network/$ cat /run/network/ifstate
lo=lo
eth1=eth1
答え1
ファイルの内容を確認してください/run/network/ifstate
。ifup
そして、ifdown
このファイルを使用して、どのネットワークインターフェイスをオンまたはオフにできるかを記録します。そのため、ifup
他のWebツールを使用してインターフェイスを起動すると混乱しやすくなります(例ifconfig
:)。
~から男なら
プログラムは、ネットワークインタフェースが開いているか閉じているかを記録します。特別なケースでは、これらの履歴がインターフェイスの実際の状態と一致しない可能性があります。たとえば、ifupを使用してインポートされたインターフェイスが後で設定解除された場合は、まだ機能していると記録されます
ifconfig
。この問題を解決するには、このオプションを使用して、インターフェイスの現在の状態に関係なく、構成または構成解除コマンドを--force
強制的に実行またはifup
実行できます。ifdown
答え2
ifdown
おそらく不要な多くのタスクを実行する高度なプログラムです。また、どこでも使用できるわけではありません。より移植性の高い方法が役立つことがあります。
$ sudo ifconfig eth0 down
そうでない場合は、ifup
いくつかの構成問題がある可能性があります。この場合、手動で上げることが正しいifconfig eth0 up
オプションではない可能性があります。 Debian ではifup
バイナリ実行ファイルなので、strace
どこで停止するのかを調べるには、これを調べる必要があります。
$ sudo strace -e open ifup eth0
これにより、作業中にどのファイルが開かれているかがわかります。ifup
これにより問題が発生する可能性があります。
他のシステム(RHELやその派生システムなど)ではifup
シェルスクリプトなので、デバッグははるかに簡単です。
# sh -x `which ifup` eth0
シェルスクリプトを実行すると、実行中のsh -x
すべての行が印刷されるため、実行を追跡できます。
答え3
以前は、ethXが.netで正しく設定されていないときにこれが発生することを見たことがあります
/etc/network/interfaces
。これには次のものが必要です。 -
auto eth0
iface eth0 inet dhcp
ファイルが正しく構成されていない場合でも、/etc/network/interfaces
次のコマンドを使用してeth0を終了できます。
$ sudo ip link set eth0 down
答え4
に追加してください。eth0=eth0
これは/run/network/ifstate
私にとって効果的です