Met ip addr in plaats van ifconfig-rapporten “ RTNETLINK-antwoorden: bestand bestaat ” op Debian

Ik heb een Debian-systeem dat werkt als een draadloze router met eth0 en wlan0. Nu heb ik handmatig een extra netwerk toegevoegd op eth1 met 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 

Alles werkt prima, zoals je kunt zien.

Nu wil ik de configuratie permanent maken. Daarom heb ik de volgende sectie toegevoegd aan /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 

Maar als ik probeer het netwerk te starten, krijg ik de volgende foutmelding:

 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. 

Wanneer ik de ip -opdracht handmatig uitvoer, krijg ik dezelfde foutmelding:

 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 

Wat is er mis met het commando? En hoe kan ik Debian vertellen het juiste te doen?

Antwoord

Ik heb begrepen dat ik het apparaat eerder moest doorspoelen het ter sprake brengen:

# ip addr flush dev eth1 

Het wissen van handmatig ingestelde interfaceconfiguratie-informatie zoals deze wordt genoemd in de Ubuntu-serverhandleiding .

Reacties

  • Ik krijg nog steeds een (iets andere) foutmelding RTNETLINK answers: No such process Failed to bring up eth1 MAAR mijn Eth1 is nu correct toegewezen EN is UP / UP.
  • ja, hetzelfde probleem hier: RTNETLINK answers: No such process Failed to bring up eth1
  • Zelfs als uw antwoorden het probleem oplossen. Het zou geweldig zijn als u kunt zien wat het werkelijk doet. Wat is dit RTNETLINK-bestand dat bestaat?
  • @ceving: kunt u uitleggen wat is RTNETLINK answers file? Ook, na het doorspoelen, neemt mijn netwerkkaart niet automatisch een nieuw IP-adres. Hoe kan ik dhcp een nieuw IP-adres vragen?
  • Een waarschuwing is dat dit alle scopes wist, wat niet altijd is wat je wilt. (Ik heb dat op de moeilijke manier ontdekt)

Antwoord

Met ip addr flush zal werken, maar het zal ook alle adressen wissen die op die interface zijn ingesteld – mogelijk inclusief degene die je gebruikt, als je bent ingelogd op een externe machine. Dit kan je de toegang tot je apparaat blokkeren.

RNETLINK answers: File exists gebeurt wanneer u “probeert een add regel te proberen die in strijd is met een bestaande regel. Ik vermoed dat OP dit tegenkwam omdat ze het adres al hadden ingesteld met ifconfig. Deze fout kan meestal worden opgelost door de add -opdracht te converteren naar een vergelijkbaar gestructureerde change of replace commando.

Het is veel veiliger om in plaats daarvan ip addr change of ip addr replace te gebruiken.

Opmerkingen

  • Dit is geen optie voor iemand die alleen ifup en ifdown gebruikt , omdat het commando vast zit in die scripts.
  • @alerone met " sudo ip addr change " zal geef me deze uitvoer. " Niet genoeg informatie: " dev " argument is vereist. " Ik / We hebben meer informatie nodig om je idee te gebruiken. Het zou leuk zijn.

Antwoord

Ik had een soortgelijk probleem dat tegen de tijd dat ik de scène van 10.000 gulden speelde, precies dit was, en ik had geprobeerd een dd de ontbrekende dingen naar / e / n / id / etho

Maar toen ik de man-pagina voor interfaces bestudeerde, merkte ik op dat ALLE voorbeelden slechts 2 regels echte gegevens hadden, het ipv4-adres / 24 , en een gateway-lijn die het adres van mijn router specificeert. Dus ik heb mijn eth0-bestand tot dat punt gestript, en opnieuw opgestart, en werkte perfect.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *