web-dev-qa-db-ja.com

ifdown eth0(メインインターフェイス)

Debian 6.0.5のインターフェースをifdownできません:

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
53
jwbensley

ファイルの内容を確認してください/run/network/ifstateifupおよびifdownは、このファイルを使用して、起動または停止できるネットワークインターフェイスを記録します。したがって、ifupは、他のネットワークツールを使用してインターフェイスを起動すると混乱しやすくなります(例:ifconfig)。

から man ifup

プログラムは、ネットワークインターフェイスがアップかダウンかを記録します。例外的な状況下では、これらのレコードはインターフェースの実際の状態と一致しなくなる可能性があります。たとえば、ifupを使用して起動され、後でifconfigを使用して構成解除されたインターフェイスは、引き続きupとして記録されます。これを修正するには、--forceオプションは、インターフェースの現在の状態をどのように考慮していても、強制的にifupまたはifdownに構成または構成解除コマンドを実行させます。

56
Marco

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を使用してシェルスクリプトを実行すると、実行するすべての行が出力されるため、実行を追跡できます。

33
Warren Young

これは、ethXが/etc/network/interfacesで適切に構成されていなかったときに以前に見たことがあります。これは次のようなものが必要です:-

auto eth0
   iface eth0 inet dhcp

不適切に構成された/etc/network/interfacesファイルを使用しても、次のコマンドでeth0を停止できます。

$ Sudo ip link set eth0 down
20
Alex Leach

この問題に苦しんでいる人のために:

/ run/networkにあるifstate。 "interface-name"ファイルを確認しました。

空だったので、/ run/networkにあるifstate。 "interface-name"ファイルに "interface-name"(eth0)を含めました。

2
user9885365

追加 eth0=eth0/run/network/ifstate。これは私のために働いた

1
Jeroen

私が見つけたのは、rmコマンドを呼び出して/run/network/内のロックファイルを削除することです

ls -laを実行すると、非表示の.ifstateファイルまたはその名前で何かが表示されます。

それを削除してから試してください:ifdown && ifup

心配している場合は、何かを壊して、ディレクトリの外にあるファイルのコピーを作成し、ディレクトリ内のファイルを削除してください。

0
Hunter Lowe