Folosind ip addr în loc de rapoarte ifconfig “ Răspunsuri RTNETLINK: Fișier există ” pe Debian

Am un sistem Debian care funcționează ca un router wireless cu eth0 și wlan0. Acum am adăugat manual o rețea suplimentară manual pe eth1 cu 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 

Totul funcționează bine după cum puteți vedea.

Acum aș dori să fac configurația permanentă. Prin urmare, am adăugat următoarea secțiune la /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 

Dar când încerc să pornesc rețeaua, primesc următoarea eroare:

 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. 

Când execut manual comanda ip primesc aceeași eroare:

 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 

Ce este în neregulă cu comanda? Și cum îi pot spune lui Debian să facă ceea ce trebuie?

Răspuns

Am aflat că trebuie să spăl dispozitivul înainte afișarea acestuia:

# ip addr flush dev eth1 

Ștergerea manuală a informațiilor de configurare a interfeței astfel configurate este menționată în Ghidul serverului Ubuntu .

Comentarii

  • Încă primesc o eroare (ușor diferită) RTNETLINK answers: No such process Failed to bring up eth1 DAR Eth1-ul meu este corect atribuit acum ȘI este UP / UP.
  • da, aceeași problemă aici: RTNETLINK answers: No such process Failed to bring up eth1
  • Chiar dacă răspunsurile dvs. rezolvă problema. Ar fi minunat dacă ai putea spune ce face de fapt. Ce este acest fișier RTNETLINK care există?
  • @ceving: vă rugăm să explicați ce este RTNETLINK answers file? De asemenea, după spălare, cardul meu de rețea nu preia automat un nou ip, cum să întreb dhcp un nou ip?
  • Un avertisment este acela că șterge toate domeniile, ceea ce nu este întotdeauna ceea ce doriți. (Am descoperit asta în mod dificil)

Răspuns

Utilizarea ip addr flush va funcționa, dar va șterge, de asemenea, toate adresele setate pe acea interfață – inclusiv cea pe care o utilizați, dacă sunteți conectat la o mașină la distanță. Acest lucru vă poate bloca de pe dispozitiv.

RNETLINK answers: File exists se întâmplă atunci când încercați să add o regulă care intră în conflict cu o regulă existentă. Aș presupune că OP se confrunta cu acest lucru, deoarece au stabilit deja adresa cu ifconfig. Această eroare poate fi rezolvată de obicei prin conversia comenzii add într-o comandă change sau replace comanda.

Este „mult mai sigur să folosiți ip addr change sau ip addr replace în schimb.

Comentarii

  • Aceasta nu este o opțiune pentru cineva care utilizează doar ifup și ifdown , deoarece comanda este conectată la aceste scripturi.
  • @alerone folosind " sudo ip addr change " aruncă-mi această ieșire. " Nu sunt suficiente informații: " dev " este necesar argumentul. " Eu / Avem nevoie de mai multe informații pentru a folosi ideea dvs. Ar fi frumos.

Răspunde

Am avut o problemă similară că până când jucasem scena de 10.000 de bani era exact asta și încercasem să dd lucrurile care lipsesc la / e / n / id / etho

Dar studiind pagina de man pentru interfețe, am observat că TOATE seturile de exemple aveau doar 2 linii de date reale, adresa ipv4 / 24 , și o linie de gateway care specifică adresa routerului meu. Așa că mi-am eliminat fișierul eth0 până la asta și am repornit și am funcționat perfect.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *