静的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のみを使用するようにするにはどうすればよいですか?
このシナリオは、/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つのソリューションがより望ましいソリューションである場合があります。
私のために働いたのは、元の質問のように/ etc/network/interfacesを使用して、単にdhcpクライアントを削除することです:
apt-get remove dhcpcd5 isc-dhcp-client isc-dhcp-common
Dhcpcdなどのサービスを無効にする好ましい方法は、システム管理機能を使用することです。サービスを停止しない限り、有効にするには再起動する必要があります。
Jessieの場合(systemd
管理を使用):
Sudo systemctl disable dhcpcd.service
そして、古いWheezy(System-V
管理)の場合:
Sudo update-rc.d dhcpcd disable
ただし、無効にした場合は、/etc/network/interfaces
に静的IP構成があることを確認する必要があります。そうしないと、インターフェースがIPアドレスを取得しません。
残念ながら、ここで提案された解決策はどれも私にとってうまくいきませんでした。しかし、DHCPとの長い戦いの末、ようやく問題を解決することができました。
vi /etc/systemd/network/eth0.network
変化する:
[Match]
Name=eth0
[Network]
DHCP=yes
に:
[Network]
DHCP=no
お役に立てれば。
いくつかのことを試してみました
apt list --installed | grep dhcp
見つかりました:
dhcpcd5
isc-dhcp-client
isc-dhcp-common
無効にしたばかりですdhcpcd5
そしてそれはそれを使ってそれを修正しました:
Sudo apt-get remove dhcpcd5
再起動し、すべてがダンディでした
ここに私が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を無効にし、標準ネットワークを有効にします。
systemctl disable dhcpcd.service
systemctl enable networking
2017-01-11リリースのRaspbian Jessieはsystemdのネットワークを使用していないようです