Mam system Debian działający jako router bezprzewodowy z eth0 i wlan0. Teraz ręcznie dodałem dodatkową sieć na eth1 z 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
Jak widzisz, wszystko działa dobrze.
Teraz chciałbym, aby konfiguracja była trwała. Dlatego dodałem następującą sekcję 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 kiedy próbuję uruchomić sieć, otrzymuję następujący błąd:
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.
Po ręcznym uruchomieniu polecenia ip pojawia się ten sam błąd:
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 jest nie tak z poleceniem? I jak mam powiedzieć Debianowi, żeby zrobił właściwą rzecz?
Odpowiedź
Rozumiem, że wcześniej musiałem opróżnić urządzenie wywołanie tego:
# ip addr flush dev eth1
Usuwanie ręcznie ustawionych informacji o konfiguracji interfejsu, takich jak ta, wspomniano w Podręcznik serwera Ubuntu .
Komentarze
Odpowiedź
Używając ip addr flush będzie działał, ale usunie również wszystkie adresy ustawione w tym interfejsie – być może łącznie z tym, którego używasz, jeśli zalogowałeś się na zdalnym komputerze. Może to zablokować dostęp do urządzenia.
RNETLINK answers: File exists ma miejsce, gdy „próbujesz add regułę, która koliduje z istniejącą regułą. Wydaje mi się, że OP napotkał to, ponieważ ustawił już adres za pomocą ifconfig. Ten błąd można zwykle rozwiązać, konwertując polecenie add na podobną strukturę change lub replace polecenie.
Znacznie bezpieczniej jest użyć zamiast tego ip addr change lub ip addr replace.
Komentarze
- To nie jest opcja dla kogoś, kto używa tylko
ifupiifdown, ponieważ polecenie jest wbudowane w te skrypty. - @alerone używając " sudo ip addr change " będzie wyślij mi to wyjście. " Za mało informacji: wymagany jest argument " dev ". " Potrzebujemy więcej informacji, aby wykorzystać Twój pomysł. Byłoby miło.
Odpowiedź
Miałem podobny problem, że zanim odtworzyłem scenę 10 000 pieniędzy, wyglądała dokładnie tak, a próbowałem dd brakujące rzeczy do / e / n / id / etho
Ale studiując stronę podręcznika dla interfejsów, zauważyłem, że WSZYSTKIE zestawienie przykładów zawierało tylko 2 wiersze rzeczywistych danych, adres ipv4 / 24 i linię bramy określającą adres mojego routera. Więc zmniejszyłem swój plik eth0 do tego, zrestartowałem i działałem idealnie.
RTNETLINK answers: No such process Failed to bring up eth1ALE mój Eth1 jest teraz poprawnie przypisany ORAZ jest W GÓRĘ / W GÓRĘ.RTNETLINK answers: No such process Failed to bring up eth1RTNETLINK answers file? Poza tym po opróżnieniu moja karta sieciowa nie pobiera automatycznie nowego adresu IP, jak poprosić dhcp o nowy adres IP?