web-dev-qa-db-ja.com

Raspberry Pi上のRaspbian LinuxでDHCPクライアントを無効にする方法はありますか?

静的IPのみを使用する必要があるLinuxサーバー(OSとしてRaspbianを使用するRasperry Pi)があります。

ただし、DHCPサーバーからIPも取得していることに気付きました(DHCPから提供されるIPは192.168.111.2です)。ネットワーク設定によると、サーバーは静的IP(192.168.111.100)のみを使用する必要があります。

/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

静的構成を使用しているにもかかわらず、DHCPから提供されたIPを使用してデバイスにSSHで接続できます。また、ntpdは正しいIPだけでなく、間違ったIPも使用しているようです。

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

ifconfigによると、IP 192.168.111.2は使用されていません:

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は、DHCPデーモンを実行していることを示しています。

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

DHCPデーモンの起動を無効にして、サーバーがstaticのみを使用するようにするにはどうすればよいですか?

15
Madoc Comadrin

このシナリオは、/etc/network/interfacesに静的IPが設定されている場合、説明どおりに機能し、機能することを期待しているため、非常に奇妙に聞こえます。つまり、 Raspberry Piの公式サイトでのこのディスカッション は、「rpdom」というユーザーが「2015年5月28日木曜日午前6時21分」という日付の投稿でこれを述べた問題に焦点を当てています。

これは最新のアップデートで発生します。これは、新しいdhcpクライアントがインターフェースファイルの機能を無視し、さらに独自の処理を行うために発生します。私はdhcpクライアントを再構成する方法(それが何であるかを覚えていないか、それを行う方法はありません、私のために機能する古いもののままです)、それを無効にする、または削除します(可能な場合)。

より深いスレッドユーザー「KLL」は、「2015年8月10日月曜日の午後12時59分」という日付の応答で 次の他の投稿 を示唆しています。 「ノット」によると:

途中で、アップグレードによって/etc/network/interfacesファイルがdhcpまたは静的ではなく「手動」Wordで変更され、静的アドレスとDHCPアドレスの2つのIPアドレスができました。やっとそれを試す時間があり、dhcpcd5の動作が以前のものとは異なることがわかりました。静的アドレスのみを取得するには、/etc/network/interfacesを変更しないでください。変更した場合は「手動」Wordを元に戻し、代わりにドキュメントの例に示すように/etc/dhcpcd.confを変更します。

つまり、アップグレードの1つでdhcpcd5の動作が変更されたのです。この問題を解決するには、/etc/network/interfacesから変更を削除し、代わりに/etc/dhcpcd.confの設定を調整して静的IPアドレスを取得することをお勧めします。以下の設定例:

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

dhcpcd.confの内容の詳細については、 公式のmanページで を参照してください。

つまり、/etc/network/interfacesの設定を保持しながら、/etc/dhcpcd.confを編集して行denyinterfaces eth0を追加し、DHCPデーモンにeth0を完全に無視するように指示するという別のアイデアもあります。どちらのソリューションも機能するはずですが、ネットワーク全体のニーズ/要件によっては、1つのソリューションがより望ましいソリューションである場合があります。

11
JakeGould

私のために働いたのは、元の質問のように/ etc/network/interfacesを使用して、単にdhcpクライアントを削除することです:

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

Dhcpcdなどのサービスを無効にする好ましい方法は、システム管理機能を使用することです。サービスを停止しない限り、有効にするには再起動する必要があります。

Jessieの場合(systemd管理を使用):

Sudo systemctl disable dhcpcd.service

そして、古いWheezy(System-V管理)の場合:

Sudo update-rc.d dhcpcd disable

ただし、無効にした場合は、/etc/network/interfacesに静的IP構成があることを確認する必要があります。そうしないと、インターフェースがIPアドレスを取得しません。

1
Pierz

残念ながら、ここで提案された解決策はどれも私にとってうまくいきませんでした。しかし、DHCPとの長い戦いの末、ようやく問題を解決することができました。

vi /etc/systemd/network/eth0.network

変化する:

[Match]
Name=eth0

[Network]
DHCP=yes

に:

[Network]
DHCP=no

お役に立てれば。

1
lester289

いくつかのことを試してみました

 apt list --installed | grep dhcp

見つかりました:

dhcpcd5 
isc-dhcp-client
isc-dhcp-common

無効にしたばかりですdhcpcd5そしてそれはそれを使ってそれを修正しました:

 Sudo apt-get remove dhcpcd5

再起動し、すべてがダンディでした

0
Mick65

ここに私がRaspbian Jessie 2017-01-11のために必要なことの要約があります:

/ etc/network/interfacesを編集して静的アドレススタンザを追加し、静的インターフェースへのその他の参照(この場合はeth0)を削除します。自動ラインは重要です。それ以外の場合、インターフェイスは起動時に開始されません。

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

次に、dhcpcdを無効にし、標準ネットワークを有効にします。

  • Dhcpcdを無効にする:systemctl disable dhcpcd.service
  • ネットワークを有効にする:systemctl enable networking
  • リブート

2017-01-11リリースのRaspbian Jessieはsystemdのネットワークを使用していないようです

0
SteveB