ethX 실행 후 "RTNETLINK 답변: 잘못된 매개변수" 발생

ethX 실행 후 "RTNETLINK 답변: 잘못된 매개변수" 발생

Debian 10이 설치된 장치에서 다음을 수정하여 IP를 영구적으로 변경하고 싶습니다./etc/네트워크/인터페이스. 그래서 다음과 같이 수정했습니다.

    auto lo
    iface lo inet loopback

    auto eth0
    #iface eth0 inet dhcp
    iface eth0 inet static
      address 192.168.109.11
      netmask 255.255.255.0
      gateway 192.168.109.254

그 후에 나는 다음을 수행합니다.

ifdown eth0 && ifup eth0

하지만 이 시점에서는 다음 오류가 반환됩니다.

root@var-som-mx6:~# ifdown eth0 && ifup eth0 --verbose
ifdown: interface eth0 not configured

ifup: configuring interface eth0=eth0 (inet)
/bin/run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
run-parts: executing /etc/network/if-pre-up.d/hostapd
run-parts: executing /etc/network/if-pre-up.d/wpasupplicant
/sbin/ip addr add 192.168.109.12/255.255.255.0 broadcast 192.168.109.255      dev eth0 label eth0
/sbin/ip link set dev eth0   up
 /sbin/ip route add default via 192.168.109.254  dev eth0 onlink 
RTNETLINK answers: Invalid argument
ifup: failed to bring up eth0

구성된 경우다음 사항을 알려주십시오.

root@var-som-mx6:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.109.11  netmask 255.255.255.0  broadcast 192.168.109.255
        inet6 fe80::fadc:7aff:fe3e:8dbb  prefixlen 64  scopeid 0x20<link>
        ether f8:dc:7a:3e:8d:bb  txqueuelen 1000  (Ethernet)
        RX packets 35999  bytes 8217478 (7.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5137  bytes 1559379 (1.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 2837  bytes 258173 (252.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2837  bytes 258173 (252.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

내가 뭘 잘못했나요?

답변1

다운된 경우그리고IFUPRTNETLINK(Linux 라우팅 소켓)에는 시스템 재부팅을 통해서만 사라지는 가짜 오류가 많이 있기 때문에 네트워크 인터페이스에서 작동하는 가장 좋은 방법은 아닌 것 같습니다. 이는 아마도 이상적이지 않을 것입니다.

IMHO, 이를 처리하는 주요 방법은 다음을 통해입니다.구성된 경우명령(또한 고려구성된 경우더 이상 사용되지 않고 교체됨아이피주문하다) :

root@var-som-mx6:~# ifconfig eth0 down
** now, update /etc/network/interfaces.. **
root@var-som-mx6:~# ifconfig eth0 up 192.168.109.11 netmask 255.255.255.0
root@var-som-mx6:~# route add default gw 192.168.109.254

업데이트해야 한다는 점 참고하세요/etc/네트워크/인터페이스 뒤쪽에이것ifconfig eth0 닫기

그런데, 사용해야 할 이유가 있다면다운된 경우그리고IFUP, 다음과 같이 이 문제를 해결할 수 있습니다.

root@var-som-mx6:~# ifdown --force eth0
** now, update /etc/network/interfaces.. **
root@var-som-mx6:~# ifup --force eth0
root@var-som-mx6:~# route add default gw 192.168.109.254

여기서 --force는 인터페이스의 구성 또는 구성 해제를 강제합니다(원천), 특히:

프로그램은 네트워크 인터페이스가 열려 있는지 닫혀 있는지 기록합니다. 특별한 경우에는 이러한 기록이 인터페이스의 실제 상태와 일치하지 않을 수 있습니다. 예를 들어, ifup을 사용하여 가져온 인터페이스는 이후에 ifconfig를 사용하여 구성 해제된 인터페이스는 계속 작동 중인 것으로 기록됩니다. 이 문제를 해결하려면 --force 옵션을 사용하여 ifup 또는 ifdown이 인터페이스의 현재 상태에 관계없이 구성 또는 구성 해제 명령을 실행하도록 강제할 수 있습니다.

모든 것을 하나의 명령줄에 포함하려는 경우 올바른 코드 줄은 다음과 같습니다.

root@var-som-mx6:~# ifdown eth0 --force && ip addr flush dev eth0 && route add default gw 192.168.109.254 && ifup eth0 --force

어디IP 주소 새로 고침 dev eth0중대한.

이 솔루션은 "RTNETLINK 답변: 파일이 존재합니다" 실수.

관련 정보