ifdown eth0 (메인 인터페이스)을 사용할 수 없습니다


51

ifdown데비안 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

4
무엇이 /run/network/ifstate포함되어 있습니까?
Marco

이 파일의 내용으로 내 질문을 업데이트했는데 eth0이 없습니다. 빠른 "Google"이이 파일의 의미를 알려줍니다 (이전에 액세스하지 않았기 때문에 문제가있는 위치를 볼 수 있다고 생각합니다)
jwbensley

@ 마르코; 이것은 실제로 내 문제를 해결했습니다. 이것을 답변으로 게시하면 올바르게 표시 할 수 있습니다 :)
jwbensley

답변:


55

파일의 내용을 확인하십시오 /run/network/ifstate. ifupifdown네트워크 인터페이스가 제기 아래로 할 수있는주의이 파일을 사용합니다. 따라서 ifup다른 네트워킹 도구를 사용하여 인터페이스 (예 :)를 만들 때 쉽게 혼동 될 수 있습니다 ifconfig.

에서 남자 ifup을

프로그램은 네트워크 인터페이스의 작동 여부를 기록합니다. 예외적 인 상황에서 이러한 레코드는 인터페이스의 실제 상태와 일치하지 않을 수 있습니다. 예를 들어 ifup을 사용하여 시작한 후 나중에 구성 해제 한 인터페이스 ifconfig는 여전히 작동 상태로 기록됩니다. 이 문제를 해결하려면 당신이 사용할 수있는 --force강제 옵션을 사용 ifup 하거나 ifdown이 인터페이스의 현재 상태로 간주 무엇에도 불구하고 구성 또는 구성 해제 명령을 실행합니다.


8
이 답변에 추가하려면 인터페이스를 인식하고 올바르게 구성하기 위해 추가 eth0=eth0해야 /run/network/ifstate했습니다. 이 답변은 파일을 알려주는 데 도움이되었지만 추가를 제안하는 것이 부족하여 비슷한 문제를 해결했습니다.
David Parks

1
@DavidParks 인터페이스가 다음과 같이 표시 auto되어 /etc/network/interfaces있습니까? /run/network/ifstate파일을 수동으로 수정하지 않아도 나타납니다 .
Marco

1
--force나를위한 답이었다. 그것은 밝혀졌다 ifup때문에 실패 명령의 첫번째 장소에있는 인터페이스를 가져 오지 않았다 /etc/network/if-pre-up.d; 내가 네트워크를 가지고있는 행운을 빕니다!
sanmai

32

ifdown필요하지 않은 많은 일을하는 고급 프로그램입니다. 또한 어디서나 사용할 수 없습니다. 더 휴대하기 쉬운 방법이 당신을 위해 일할 수 있습니다 :

$ sudo ifconfig eth0 down

그렇게 할 수 없다면 ifup구성 문제가있을 수 있습니다. 이 경우 수동으로 가져 오는 것이 ifconfig eth0 up옳지 않은 것일 수 있습니다. 데비안에서는 ifup바이너리 실행 파일이므로 strace어디서 끊어야하는지 알아 내야 할 것입니다 .

$ sudo strace -e open ifup eth0

ifup작동하는 동안 어떤 파일 이 열리고 있는지 알려주 므로 문제의 원인이 될 수 있습니다.

다른 시스템 (예 : RHEL 및 파생 제품) ifup은 쉘 스크립트이므로 디버그하기가 훨씬 쉽습니다.

# sh -x `which ifup` eth0

쉘 스크립트를 실행하면 실행되는 sh -x모든 행을 인쇄하므로 실행을 추적 할 수 있습니다.


크래킹 답변이지만 Marco가 문제를 발견했습니다. 나는 시도했다 sudo ifconfig eth0 down && sudo ifconfig eth0 up위아래로 인터페이스를 펄럭 것이다하지만 수동으로 내가 쓰고있다는 IF-up 스크립트를 실행하는 데려고하고 그 일을하지 않았다. 내 / etc / network / run / ifstate 파일을 업데이트 한 후 ifdown / up이 작동합니다. 그래도 정보 주셔서 감사합니다! :)
jwbensley 2016 년

-x 옵션을 사용하면 좋은 아이디어를 얻을 수 있습니다! 감사!
jwbensley 2016 년

1
ifdown당신이 필요로하는 많은 일을하는 고급 프로그램입니다. ifconfig eth0 down이식성이 뛰어나 항상 실행할 수 있지만 정리 작업을 수행하지는 않습니다 ifdown.
Gilles 'SO- 악마 중지'10

난 당신이 사용하는 것이 좋습니다 것을 의미하지 않는다 ifconfig피하고, 모든 시간을 ifup/down. 문제 해결 단계로만 제안했습니다. 내가 문제를 이해함에 따라, 대신을 사용하여 결과 로 나타 났으므로 높은 수준의 메커니즘을 혼란스럽게합니다. 그러나 답변을 게시 할 때 몰랐습니다. ifconfigifup/down
Warren Young

20

이전에 ethX가 제대로 구성되지 않았을 때 이것을 보았습니다 /etc/network/interfaces. 이것은 다음과 같은 것이 필요합니다 :-

auto eth0
   iface eth0 inet dhcp

/etc/network/interfaces파일 이 잘못 구성되어 있어도 다음을 사용하여 eth0을 중단 할 수 있습니다.

$ sudo ip link set eth0 down

이것이 바로 나에게 일어난 일입니다. 에 추가하는 것을 잊었습니다 auto. 감사.
Mike

2

이 문제로 어려움을 겪고있는 사람은 :

/ run / network에서 ifstate. "interface-name"파일을 확인했습니다.

비어 있으므로 / run / network의 ifstate. "interface-name"파일에 "interface-name"(eth0)을 포함 시켰습니다.


1

추가 eth0=eth0/run/network/ifstate. 이것은 나를 위해 일했다


0

내가 찾은 것은 rm명령을 호출 하여 잠금 파일을 제거하는 것입니다./run/network/

마십시오 ls -la당신은 숨겨진 볼 수 .ifstate그 이름에서 파일이나 뭔가를.

그것을 제거한 다음 시도하십시오. ifdown && ifup

걱정되는 경우 디렉토리 외부에서 해당 파일의 사본을 만들어 디렉토리 내부에서 제거하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.