Mam serwer Linux (Rasperry Pi używający Raspbian jako OS), który powinien używać tylko statycznego adresu IP.
Zauważyłem jednak, że ma również adres IP z serwera DHCP (adres IP podany przez DHCP to 192.168.111.2
). Zgodnie z ustawieniami sieci serwer powinien używać tylko statycznego adresu IP ( 192.168.111.100
).
Zawartość /etc/network/interfaces
:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.111.100
netmask 255.255.255.0
gateway 192.168.111.1
dns-nameservers ip1 ip2
Pomimo używania konfiguracji statycznej mogę SSH do urządzenia również przy użyciu adresu IP podanego przez DHCP. Wygląda również na to, że ntpd
używa niewłaściwego adresu IP, a także poprawnego.
Dane wyjściowe Netstat:
udp 0 0 192.168.111.2:123 0.0.0.0:* 2774/ntpd
udp 0 0 192.168.111.100:123 0.0.0.0:* 2774/ntpd
Według ifconfig
adresu IP 192.168.111.2
nie jest używany:
eth0 Link encap:Ethernet HWaddr b8:27:eb:be:18:1c
inet addr:192.168.111.100 Bcast:192.168.111.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:138099 errors:0 dropped:0 overruns:0 frame:0
TX packets:81146 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:95954711 (91.5 MiB) TX bytes:27076870 (25.8 MiB)
ps -ef | grep dhcp
pokazuje, że mam uruchomionego demona DHCP:
root 2000 1 0 Oct07 ? 00:00:06 /sbin/dhcpcd
Jak mogę wyłączyć DHCP
uruchamianie demona i upewnić się, że mój serwer używa tylko danych statycznych?
źródło
ifconfig
i jest regularnie używany. Któregoś dnia zostanie zastąpiony,ip
ale szczerze mówiąc, nie ma znaczenia, że borsuka kogoś, co jest „lepsze”, ponieważ nie jest to konkurs sikania.ifconfig
zawiera więcej niż wystarczającą ilość szczegółów do debugowania takich rzeczy.Odpowiedzi:
Ten scenariusz brzmi naprawdę dziwnie, ponieważ twoja konfiguracja powinna działać zgodnie z opisem - i mieć nadzieję, że zadziała - jeśli ustawiono statyczny adres IP
/etc/network/interfaces
. To powiedziawszy, ta dyskusja na oficjalnej stronie Raspberry Pi koncentruje się na problemie z użytkownikiem „rpdom”, który stwierdził to w poście z dnia „28 maja 2015 r. 6:21”:Głębszy w wątku użytkownik „KLL” sugeruje następujący post w odpowiedzi zatytułowanej „Pon 10 sierpnia 2015 12:59”. Według „knute”:
Chodzi o to, że
dhcpcd5
zachowanie zmieniło się w jednej z aktualizacji. Sugerowane rozwiązanie problemu polega na usunięciu wszelkich zmian/etc/network/interfaces
i dostosowaniu ustawień w/etc/dhcpcd.conf
celu uzyskania statycznego adresu IP; przykładowa konfiguracja poniżej:Więcej informacji na temat zawartości
dhcpcd.conf
można znaleźć na oficjalnej stronie podręcznika użytkownika .To powiedziawszy, innym pomysłem jest zachowanie ustawień, które masz,
/etc/network/interfaces
ale następnie edycja,/etc/dhcpcd.conf
aby dodać linię,denyinterfaces eth0
aby poinformować demona DHCP, aby całkowicie zignorowałeth0
. Każde z rozwiązań powinno działać, ale jedno rozwiązanie może być bardziej preferowanym rozwiązaniem w zależności od ogólnych potrzeb / wymagań sieciowych.źródło
/etc/network/interfaces
nigdy nie zmieniłem sięmanual
tak, jak w przypadku forów Raspberry Pi. Sugerowane rozwiązania również dla mnie zadziałały.dla mnie zadziałało użycie / etc / network / interfaces jak w pierwotnym pytaniu i po prostu usunięcie klienta dhcp:
źródło
Muszę powiedzieć, że niestety żadne z zaproponowanych tutaj rozwiązań dla mnie nie zadziałało. Ale po długiej walce z DHCP w końcu udało mi się rozwiązać problem:
zmiana:
do:
mam nadzieję że to pomoże.
źródło
Preferowanym sposobem wyłączenia dowolnej usługi, takiej jak dhcpcd, jest skorzystanie z funkcji zarządzania systemem. Będziesz musiał zrestartować komputer, aby zadziałał - chyba że zatrzymasz także usługę.
W przypadku Jessie (która korzysta z
systemd
zarządzania):A dla starszych Wheezy (
System-V
zarządzanie):Ale jeśli ją wyłączysz, musisz upewnić się, że masz statyczną konfigurację
/etc/network/interfaces
adresu IP, w przeciwnym razie interfejsy nie uzyskają adresu IP.źródło
Oto podsumowanie tego, co musiałem zrobić dla Raspbian Jessie 11.01.2017:
Edytuj / etc / network / interfaces i dodaj sekcję statycznego adresu, usuń inne odniesienia do interfejsu statycznego (w tym przypadku eth0). Automatyczna linia jest ważna, w przeciwnym razie interfejs nie uruchomi się przy rozruchu:
Następnie wyłącz dhcpcd i włącz standardową sieć:
systemctl disable dhcpcd.service
systemctl enable networking
Wydaje się, że Raspbian Jessie od wersji 2017-01-11 nie używa sieci systemd
źródło
Wypróbowałem kilka rzeczy i znalazłem to
znaleziony:
Właśnie wyłączyłem
dhcpcd5
i naprawiłem to za pomocą:Zrobiłem restart i wszystko było eleganckie
źródło