Brug af ip addr i stedet for ifconfig rapporter “ RTNETLINK svarer: Filen findes ” på Debian

Jeg har et Debian-system, der fungerer som en trådløs router med eth0 og wlan0. Nu tilføjede jeg et ekstra netværk manuelt på eth1 med ifconfig:

 alix:~# ifconfig eth1 192.168.0.2 netmask 255.255.255.0 alix:~# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0 alix:~# ping 192.168.0.254 PING 192.168.0.254 (192.168.0.254) 56(84) bytes of data. 64 bytes from 192.168.0.254: icmp_req=1 ttl=64 time=0.537 ms 64 bytes from 192.168.0.254: icmp_req=2 ttl=64 time=0.199 ms 64 bytes from 192.168.0.254: icmp_req=3 ttl=64 time=0.188 ms ^C --- 192.168.0.254 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2005ms rtt min/avg/max/mdev = 0.188/0.308/0.537/0.161 ms 

Alt fungerer fint som du kan se.

Nu vil jeg gerne gøre konfigurationen permanent. Derfor tilføjede jeg følgende afsnit til /etc/network/interfaces:

 alix:~# sed -n "/iface eth1/,/^$/p" /etc/network/interfaces iface eth1 inet static address 192.168.0.2 netmask 255.255.255.0 

Men når jeg prøver at starte netværket, får jeg følgende fejl:

 alix:~# ifconfig eth1 down alix:~# ifup -v eth1 Configuring interface eth1=eth1 (inet) run-parts --verbose /etc/network/if-pre-up.d run-parts: executing /etc/network/if-pre-up.d/hostapd ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 label eth1 RTNETLINK answers: File exists Failed to bring up eth1. 

Når jeg kører kommandoen ip, får jeg den samme fejl:

 alix:~# ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 label eth1 RTNETLINK answers: File exists 

Hvad er der galt med kommandoen? Og hvordan kan jeg bede Debian om at gøre det rigtige?

Svar

Jeg fik det, at jeg skulle skylle enheden før bringe det op:

# ip addr flush dev eth1 

Rydning af manuelt indstillede interface-konfigurationsoplysninger som denne er nævnt i Ubuntu Server Guide .

Kommentarer

  • Jeg modtager stadig en (lidt anden) fejl RTNETLINK answers: No such process Failed to bring up eth1 MEN min Eth1 er korrekt tildelt nu OG er OP / OP.
  • ja, det samme problem her: RTNETLINK answers: No such process Failed to bring up eth1
  • Selv hvis dine svar løser problemet. Det ville være dejligt, hvis du kunne fortælle, hvad det rent faktisk gør. Hvad er denne RTNETLINK-fil, der findes?
  • @ceving: kan du forklare, hvad der er RTNETLINK answers file? Efter skylning tager mit netværkskort heller ikke automatisk en ny ip, hvordan man spørger dhcp en ny ip?
  • En advarsel er, at dette rydder alle anvendelsesområder, hvilket ikke altid er, hvad du vil have. (Jeg fandt ud af det på den hårde måde)

Svar

Brug ip addr flush fungerer, men det rydder også alle adresser, der er indstillet på denne grænseflade – muligvis inklusive den, du bruger, hvis du er logget ind på en ekstern maskine. Dette kan muligvis låse dig ud af din enhed.

RNETLINK answers: File exists sker, når du “prøver at add en regel, der er i konflikt med en eksisterende regel. Jeg vil gætte, at OP stødte på dette, fordi de allerede havde indstillet adressen med ifconfig. Denne fejl kan normalt løses ved at konvertere add kommandoen til en lignende struktureret change eller replace kommando.

Det er meget sikrere at bruge ip addr change eller ip addr replace i stedet.

Kommentarer

  • Dette er ingen mulighed for nogen, der kun bruger ifup og ifdown , fordi kommandoen er hårdt forbundet i disse scripts.
  • @alerone ved hjælp af " sudo ip addr ændring " vil smid mig denne output. " Ikke nok information: " dev " argument er påkrævet. " Jeg / vi har brug for mere info for at bruge din idé. Det ville være rart.

Svar

Jeg havde et lignende problem, da jeg på det tidspunkt havde spillet 10.000 penge-scenen var netop dette, og jeg havde prøvet at dd de manglende ting til / e / n / id / etho

Men når jeg studerede mandsiden for grænseflader, bemærkede jeg, at ALLE sæt eksempler kun havde 2 linjer reelle data, ipv4-adressen / 24 og en gateway-linje, der angiver adressen på min router. Så jeg fjernede min eth0-fil til det og genstartede og fungerede perfekt.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *