Používání adresy ip addr místo zpráv ifconfig “ odpovědi RTNETLINK: Soubor existuje ” na Debianu

Mám systém Debian fungující jako bezdrátový router s eth0 a wlan0. Nyní jsem ručně přidal další síť na eth1 pomocí 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 

Všechno funguje dobře, jak vidíte.

Nyní bych chtěl nastavit konfiguraci natrvalo. Proto jsem přidal následující sekci do /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 

Ale když se pokusím spustit síť, dostanu následující chyba:

 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. 

Když ručně spustím příkaz ip, zobrazí se stejná chyba:

 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 

Co se stalo s příkazem? A jak mohu říct Debianu, aby udělal správnou věc?

Odpovědět

Pochopil jsem, že jsem předtím musel zařízení propláchnout vyvolání:

# ip addr flush dev eth1 

Vymazání ručně nastavených konfiguračních informací rozhraní je zmíněno v Průvodce serverem Ubuntu .

Komentáře

  • Stále se mi zobrazuje (mírně odlišná) chyba RTNETLINK answers: No such process Failed to bring up eth1 ALE můj Eth1 je nyní správně přiřazen A je UP / UP.
  • ano, stejný problém zde: RTNETLINK answers: No such process Failed to bring up eth1
  • I když vaše odpovědi problém vyřeší. Bylo by skvělé, kdybyste mohli říct, co to vlastně dělá. Co je tento soubor RTNETLINK, který existuje?
  • @ceving: můžete mi prosím vysvětlit, co je RTNETLINK answers file? Také po vypláchnutí moje síťová karta automaticky nepřijímá nový ip, jak požádat dhcp o nový ip?
  • Jedna výhrada je, že to vymaže všechny obory, což není vždy to, co chcete. (Zjistil jsem, že je to těžké)

Odpovědět

Pomocí ip addr flush bude fungovat, ale také vymaže všechny adresy nastavené v tomto rozhraní – případně včetně adresy, kterou používáte, pokud jste přihlášeni ke vzdálenému počítači. To vás může zablokovat mimo vaše zařízení.

RNETLINK answers: File exists se stane, když se pokoušíte add pravidlo, které je v rozporu s existujícím pravidlem. Hádal bych, že OP s tím naráží, protože už nastavili adresu pomocí ifconfig. Tuto chybu lze obvykle vyřešit převedením příkazu add na podobně strukturovaný change nebo replace příkaz.

Je mnohem bezpečnější použít místo toho ip addr change nebo ip addr replace.

Komentáře

  • Toto není možnost, aby někdo používal pouze ifup a ifdown , protože příkaz je v těchto skriptech pevně zapojen.
  • @alerone pomocí " sudo ip addr change " bude hodte mi tento výstup. " Není dostatek informací: je vyžadován argument " dev ". " I / Potřebujeme více informací, abychom mohli použít váš nápad. Bylo by to hezké.

Odpovědět

Měl jsem podobný problém, že v době, kdy jsem hrál scénu s 10 000 penězi, byl přesně tento, a snažil jsem se dd chybějící věci do / e / n / id / etho

Ale když jsem studoval manuálovou stránku pro rozhraní, všiml jsem si, že VŠECHNY soubory příkladů měly pouze 2 řádky skutečných dat, adresu ipv4 / 24 a linka brány specifikující adresu mého routeru. Takže jsem svlékl svůj soubor eth0 a restartoval a fungoval perfektně.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *