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


15

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

ただし、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

ifconfigIPによると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デーモンの起動を無効にして、サーバーが静的のみを使用するようにするにはどうすればよいですか?


参照しているコマンドは何ですか?
マドックコマドリン

私はそれらのコマンドを試しましたが、これで私を助ける何かを見つけることができませんでした。
マドックコマドリン

@barlopに問題はなくifconfig、定期的に使用されます。いつかは置き換えられますipが、正直なところ、これは放尿コンテストではないので、アナグマにとって「より良い」ことは重要ではありません。ifconfigこのようなものをデバッグするための十分な詳細を提供します。
JakeGould

回答:


11

このシナリオは本当に奇妙に聞こえます。なぜなら、に静的IPが設定されている場合、セットアップは説明どおりに機能するはずであり、機能することを期待しているから/etc/network/interfacesです。とはいえ、Raspberry Piの公式サイトでのこの議論は、「2015年5月28日午前6時21分」の投稿に「rpdom」というユーザーの問題に焦点を当てています。

これは最新のアップデートで発生します。新しいdhcpクライアントがinterfacesファイルの機能を無視し、さらに独自の処理を行っていることが原因です。私はdhcpクライアントを再構成する方法(それが何であるか、それを行う方法を思い出せない、私はまだ私のために働く古いものに残っています)、それを無効にする、またはそれを削除する(可能であれば)を見ます。

スレッドの深層ユーザー「KLL」は「2015年8月10日午後12時59分」という日付の応答で、次の別の投稿を提案しています。「knute」によると:

途中でアップグレード/etc/network/interfacesがdhcpまたはstaticの代わりに「manual」ワードでファイルを変更し、 最終的に静的IPアドレスとdhcpアドレスの2つのIPアドレスになりました。私はついにそれで遊ぶ時間を持ちdhcpcd5、それが以前にあったものとは異なる働きをすることを発見しました 。静的アドレスだけを取得するには、変更しないでください/etc/network/interfaces。「マニュアル」の単語を変更した場合は元に戻し、代わり/etc/dhcpcd.confにドキュメントの例に示すように変更 します。

そのためdhcpcd5、アップグレードの1つでの動作が変更されたという考え方です。この問題を解決するための提案は、変更を削除し/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見つけることができるそれのための公式のマニュアルページで

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


2
私の場合は、ここで説明したものとほとんど同じでした。唯一の違いは、Raspberry Piフォーラムの場合のように/etc/network/interfaces変更されなかったことmanualです。提案された解決策も私にとってはうまくいきました。
マドックComadrin

1
同じように、「静的」であっても、eth0でdhcpを取得しています。これは、jessie-liteのインストールに関する問題です。wlan0インターフェースがeth0インターフェースより低いメトリックを必要とする状況にあり、dhcpcd5でそれをさせることができないという状況があるため、回避策はまだ役に立たない(これまでのところ)。
ピーターハンセン

3
この問題を回避しなかった私のための仕事は、しかし、eth0のを見ていないdhcpcd5言うことでした。これは、/ etc / dhcpcd.confに「denyinterfaces eth0」を追加することによって行われました。
ピーターハンセン

1
@PeterHansen知っておきたい!その情報を私の答えの最後に追加しました。
-JakeGould

2
フォローアップ:場合によっては、dhcpcd5とisc-dhcp-clientの両方がインストールされていて、両方ともアドレスが割り当てられていることがわかりました。さらに、systemdで開始されたdhcpcd.serviceは、すべてのインターフェース(オプション-q -bを使用)で実行され、ネットワーク/インターフェースの「dhcp」オプションで開始されたdhcpcd5プロセスもあります。ため息...すべてを知ったら解決するのはかなり簡単です、私は願っています。
ピーターハンセン

8

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

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

DHCP(またはdhcpcdでできること)を気にしないシナリオでは、これが最も簡単なソリューションです。
AVee

1

残念ながら、ここで提案した解決策はどれも役に立たなかったと言わざるを得ません。しかし、DHCPとの長い戦いの後、ようやく問題を解決することができました。

vi /etc/systemd/network/eth0.network

変化する:

[Match]
Name=eth0

[Network]
DHCP=yes

に:

[Network]
DHCP=no

お役に立てれば。


1

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

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

sudo systemctl disable dhcpcd.service

古いWheezy(System-V管理)の場合:

sudo update-rc.d dhcpcd disable

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


0

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

いくつか試してみたところ、

 apt list --installed | grep dhcp

見つかった:

dhcpcd5 
isc-dhcp-client
isc-dhcp-common

私はちょうど無効にdhcpcd5して、それを使用して修正しました:

 sudo apt-get remove dhcpcd5

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.