Använda ip addr istället för ifconfig rapporterar “ RTNETLINK svarar: Fil finns ” på Debian

Jag har ett Debian-system som fungerar som en trådlös router med eth0 och wlan0. Nu lade jag till ett extra nätverk manuellt 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 

Allt fungerar bra som du kan se.

Nu vill jag göra konfigurationen permanent. Därför lade jag till följande avsnitt i /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 jag försöker starta nätverket får jag följande fel:

 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 jag kör kommandot ip får jag samma fel:

 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 

Vad är fel med kommandot? Och hur kan jag be Debian att göra rätt?

Svara

Jag förstod att jag var tvungen att spola enheten innan ta upp det:

# ip addr flush dev eth1 

Att rensa manuellt inställd gränssnittskonfigurationsinformation så här är som nämns i Ubuntu Server Guide .

Kommentarer

  • Jag får fortfarande ett (något annorlunda) fel RTNETLINK answers: No such process Failed to bring up eth1 MEN min Eth1 har tilldelats korrekt OCH är UPP / UPP.
  • ja, samma problem här: RTNETLINK answers: No such process Failed to bring up eth1
  • Även om dina svar löser problemet. Det skulle vara fantastiskt om du kunde berätta vad det faktiskt gör. Vad är den här RTNETLINK-filen som finns?
  • @ceving: snälla kan du förklara vad som är RTNETLINK answers file? Efter spolning tar mitt nätverkskort inte en ny ip automatiskt, hur man frågar dhcp en ny ip?
  • En varning är att detta rensar alla omfattningar, vilket inte alltid är vad du vill ha. (Jag upptäckte det på den hårda vägen)

Svar

Använd ip addr flush kommer att fungera, men det rensar också alla adresser som ställts in på det gränssnittet – eventuellt inklusive den du använder om du är inloggad på en fjärrmaskin. Detta kan låsa dig utanför din enhet.

RNETLINK answers: File exists händer när du försöker add en regel som strider mot en befintlig regel. Jag skulle gissa att OP stötte på detta eftersom de redan hade ställt in adressen med ifconfig. Detta fel kan vanligtvis lösas genom att konvertera kommandot add till ett liknande strukturerat change eller replace kommando.

Det är mycket säkrare att använda ip addr change eller ip addr replace istället.

Kommentarer

  • Detta är inget alternativ för någon som bara använder ifup och ifdown , eftersom kommandot är hårt kopplat i dessa skript.
  • @alerone med " sudo ip addr-ändring " kommer kasta den här utgången. " Inte tillräckligt med information: " dev " argument krävs. " Jag / vi behöver mer information för att använda din idé. Det skulle vara trevligt.

Svar

Jag hade ett liknande problem att när jag spelade 10 000 pengar scenen var exakt detta, och jag hade försökt att dd de saknade sakerna till / e / n / id / etho

Men när jag studerade man-sidan för gränssnitt noterade jag att ALLA uppsättningen exempel bara hade två rader med verklig data, ipv4-adressen / 24 och en gateway-linje som anger adressen till min router. Så jag tog bort min eth0-fil till det och startade om och fungerade perfekt.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *