Bir Rasperry Pi'de Raspbian Linux'ta DHCP istemcisini devre dışı bırakmanın bir yolu var mı?


15

Sadece statik IP kullanması gereken bir Linux sunucum var (Raspbian OS olarak kullanan Rasperry Pi).

Ancak ben de DHCP sunucusundan IP var (DHCP tarafından verilen IP olduğunu 192.168.111.2) fark ettim . Ağ ayarlarına göre, sunucu yalnızca statik IP ( 192.168.111.100) kullanıyor olmalıdır .

İçeriği /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

Statik yapılandırma kullanılmasına rağmen, DHCP tarafından verilen IP'yi kullanarak cihaza SSH yapabilirim. Ayrıca ntpdyanlış IP'nin yanı sıra doğru IP'yi kullanıyor gibi görünüyor .

Netstat çıktısı:

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

ifconfigIP'ye göre 192.168.111.2kullanılmaz:

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 çalışan bir DHCP arka plan programı olduğunu gösterir:

root      2000     1  0 Oct07 ?        00:00:06 /sbin/dhcpcd

DHCPArka plan programının başlatılmasını nasıl devre dışı bırakabilirim ve sunucumun yalnızca statik değeri kullandığından nasıl emin olabilirim?


Bahsettiğiniz komut nedir?
Madoc Comadrin

Bu komutları denedim ama bu konuda bana yardımcı olacak hiçbir şey bulamadım.
Madoc Comadrin

@barlop Yanlış bir şey yok ifconfigve düzenli olarak kullanılıyor. Bir gün yerini alacak, ipama dürüst olmak gerekirse, bu "öfkelenen" birisini porsuklaştırmanın bir sonucu yok çünkü bu öfkelenen bir yarışma değil. ifconfigbunun gibi hata ayıklama için fazlasıyla ayrıntılı bilgi sağlar.
JakeGould

Yanıtlar:


11

Bu senaryo kulağa tuhaf geliyor çünkü kurulumunuz sizin tanımladığınız şekilde çalışıyor olmalı ve statik bir IP ayarlanmışsa çalışmasını umuyorsunuz /etc/network/interfaces. Bununla birlikte, resmi Raspberry Pi sitesindeki bu tartışma, “rpdom” kullanıcısıyla ilgili konuyu “28 Mayıs 2015 6:21 am” tarihli yazıya aktarıyor:

Bu en son güncellemelerde olur. Yeni dhcp istemcisi, arabirimlerin dosyalarının ne yaptığını görmezden gelmesi ve ek olarak kendi işini yapmasından kaynaklanıyor ... benim için çılgın görünüyor. Dhcp istemcisini nasıl yeniden yapılandıracağımı (hangisinin olduğunu hatırlayamıyorum veya nasıl yapacağımı, hala benim için çalışan eski biriyim), devre dışı bırakmayı veya kaldırmayı (mümkünse) inceleyeceğim.

“KLL” iş parçacığının derinliklerinde , “Pzt 10 Ağu 2015 12:59” tarihli yanıtlarında şu diğer yazı önerilmektedir. “Knute” a göre:

Yolda bir yerde yükseltme, dosyamı /etc/network/interfacesdhcp veya statik yerine 'manuel' kelimeyle değiştirdi ve statik IP adresim ve dhcp adresim olmak üzere iki IP adresi buldum. Sonunda onunla oynamak için zamanım vardı ve dhcpcd5daha önce içinde olduğundan farklı çalıştığını öğrendim . Yalnızca statik adresinizi almak için değiştirmeyin /etc/network/interfaces. Değiştirdiyseniz 'manuel' kelimeyi geri koyun ve bunun yerine /etc/dhcpcd.confdokümanlardaki örnekte gösterildiği gibi değiştirin .

Fikir şu ki dhcpcd5, yükseltmelerden birinin davranışı değişti. Sorunu çözmek için öneri, tüm değişiklikleri kaldırmak /etc/network/interfacesve bunun yerine /etc/dhcpcd.confstatik bir IP adresi almak için ayarları yapmaktır; aşağıdaki örnek yapılandırma:

static <value>
             Configures a static <value>.  If you set ip_address then dhcpcd
             will not attempt to obtain a lease and just use the value for the
             address with an infinite lease time.

             Here is an example which configures a static address, routes and
             dns.
                   interface eth0
                   static ip_address=192.168.0.10/24
                   static routers=192.168.0.1
                   static domain_name_servers=192.168.0.1

İçeriği hakkında daha fazla bilgi dhcpcd.confbunun için resmi kılavuz sayfasında bulunabilir .

Bununla birlikte, başka bir fikir, sahip olduğunuz ayarları korumaktır, /etc/network/interfacesancak daha sonra DHCP arka plan programının tamamen görmezden gelmesini söylemek için /etc/dhcpcd.confsatır eklemek için düzenleyin . Her iki çözüm de işe yarayabilir, ancak genel ağ gereksinimlerinize / gereksinimlerinize bağlı olarak bir çözüm daha tercih edilen bir çözüm olabilir.denyinterfaces eth0eth0


2
Benim durumum burada anlatılanla hemen hemen aynı. Tek fark, Raspberry Pi forumlarında olduğu gibi /etc/network/interfaceshiç değişmememdi manual. Önerilen çözümler benim için de işe yaradı.
Madoc Comadrin

1
Aynı, "statik" ile bile eth0 benim dhcp alıyorum. Bu hala jessie-lite kurulumuyla ilgili bir sorundur. Geçici çözüm henüz bana yardımcı değil çünkü ben wlan0 arabirimi eth0 arabiriminden daha düşük bir metrik olması gerekiyor ve dhcpcd5 bana (şimdiye kadar) izin veremiyorum.
Peter Hansen

3
Bir geçici çözüm yaptığımız iş için beni Ancak eth0 bakmak değil dhcpcd5 anlatmaktı. Bu, /etc/dhcpcd.conf dosyasına "denyinterfaces eth0" eklenerek yapıldı.
Peter Hansen

1
@PeterHansen Bilmek güzel! Bu bilgiyi cevabımın sonuna ekledim.
JakeGould

2
Bir takip: bazı durumlarda hem dhcpcd5 hem de isc-dhcp-client yüklü, her ikisi de adres atama buldum. Ayrıca, tüm arabirimlerde (-q -b seçenekleriyle) ve ağ / arabirimlerde "dhcp" seçeneği tarafından başlatılan dhcpcd5 işleminde çalışan sistemd tarafından başlatılan bir dhcpcd.service vardır. Ah ... tüm bunları öğrendikten sonra çözmesi oldukça kolay, umarım.
Peter Hansen

8

benim için işe yarayan orijinal soruda olduğu gibi bir / etc / network / arabirimleri kullanmak ve sadece dhcp istemcisini kaldırmaktır:

apt-get remove dhcpcd5 isc-dhcp-client isc-dhcp-common

DHCP (veya dhcpcd'nin yapabileceği başka bir şey) ile ilgilenmediğiniz bir senaryoda bu en kolay çözümdür.
AVee

1

Maalesef burada önerilen çözümlerin hiçbiri benim için işe yaramadı. Ancak DHCP ile uzun bir savaştan sonra nihayet sorunu çözebildim:

vi /etc/systemd/network/eth0.network

değişiklik:

[Match]
Name=eth0

[Network]
DHCP=yes

için:

[Network]
DHCP=no

Bu yardımcı olur umarım.


1

Dhcpcd gibi herhangi bir hizmeti devre dışı bırakmanın tercih edilen yolu, sistem yönetimi işlevlerini kullanmaktır. Hizmeti de durdurmazsanız, etkili olması için yeniden başlatmanız gerekir.

Jessie için ( systemdyönetimi kullanır ):

sudo systemctl disable dhcpcd.service

Ve daha eski Wheezy ( System-Vyönetim) için:

sudo update-rc.d dhcpcd disable

Ancak devre dışı bırakırsanız, statik bir IP yapılandırmanız olduğundan emin olmanız gerekir, /etc/network/interfacesaksi takdirde arabirimleriniz bir IP adresi almaz.


0

İşte Raspbian Jessie 2017-01-11 için ne yapmam gerektiğinin bir özeti:

/ Etc / network / arabirimlerini düzenleyin ve statik adres standardını ekleyin, statik arabirime diğer referansları kaldırın (bu durumda eth0). Otomatik hat önemlidir, aksi takdirde arabirim önyüklemede başlamaz:

    auto eth0
    iface eth0 inet static
      address 192.168.44.17
      netmask 255.255.255.0
      gateway 192.168.44.27

Sonra dhcpcd'yi devre dışı bırakın ve standart ağı etkinleştirin:

  • Dhcpcd'yi devre dışı bırak: systemctl disable dhcpcd.service
  • Ağ oluşturmayı etkinleştir: systemctl enable networking
  • reboot

Raspbian Jessie, 2017-01-11 sürümünden itibaren systemd'nin ağını kullanmıyor gibi görünüyor


0

Birkaç şey denedim ve buldum

 apt list --installed | grep dhcp

bulundu:

dhcpcd5 
isc-dhcp-client
isc-dhcp-common

Ben sadece devre dışı dhcpcd5ve kullanarak sabit:

 sudo apt-get remove dhcpcd5

yeniden başlattım ve hepsi züppe oldu

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.