DHCPが提供するネームサーバーをオーバーライドする方法は?


12

私は(考えて)静的IPアドレスを設定したと思います/etc/network/interfaces

# The primary network interface 
auto eth0 
iface eth0 inet static
    address 10.1.1.2
    netmask 255.255.255.0
    network 10.1.1.0
    broadcast 10.1.1.255
    gateway 10.1.1.1

そして/etc/resolv.conf、目的のネームサーバーを含むようにファイルを変更します。

その後、ネットワークを再起動します sudo /etc/init.d/networking restart

ただし、数時間後、resolv.confは常にDHCPネームサーバーに戻ります。


また、これはl0eth0インターフェイスのみを備えたUbuntuサーバーであると言う必要があります。


あるresolvconfパッケージがインストールされていますか?
ジル「SO-悪であるのをやめる」

別のネットワークインターフェース(おそらくwifiまたはダイヤルアップインターフェース)でdhclientを使用しようとしていますか、またはdhclientが静的であるはずなのにeth0で間違って実行されていますか?
プーリー

eth0とlo0のみがあり、手動で設定したIPは取得するDHCP IPと同じです(DHCPサーバーは常に同じ静的IPを提供します)。しかし、DHCPサーバーによって指定されたネームサーバーを使用したくないので、自分でIPを設定し、DHCPがないと考えましたが、resolv.confが更新され続ける理由がわかりません。
デビッドパークス

Gilles-いいえ、私は実行しました:dpkg -L resolvconf、およびget:パッケージ `resolvconf 'がインストールされていません。
デビッドパークス

回答:


34

DHCPサーバーによって提案されたネームサーバーを上書きまたは追加する場合は/etc/dhcp/dhclient.conf、たとえば、次のように構成できます。

interface "eth0" {
    prepend domain-name-servers 10.0.0.2;
}

UnityまたはGNOMEのネットワークインジケーターの[接続の編集]コントロールからこれを行うこともできます。


4
これが最適なソリューションでした。別のオプションを投稿しましたが、AWS EC2環境では静的IPを設定するのは得策ではないことに気付きました。:)
デビッドパークス

複数のドメインネームサーバーを追加する場合はどうなりますか?
ダンゴンファスト

ドメインネームサーバーの前に追加すると127.0.0.1、dhcpが提供するネームサーバーが破棄されるようです(他のネームサーバーの
前に追加する

2
置き換えprependsupersedeDHCP値を完全に上書きします。
スカステット

1

問題を解決する解決策は、resolvconfパッケージを構成することです。これにより、優先ネームサーバーと、検索やドメインの設定など、resolv.confのその他の必要な設定が優先されます。

ファイルを編集します。 /etc/resolvconf/resolv.conf.d/head

そこにネットワークの変更がある場合、希望するネームサーバーと優先するその他の構成を配置します。ネットワークへの変更が発生すると、そこでの構成が常に優先されます。

/etc/resolvconf/resolv.conf.d/headファイルの例:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

nameserver 8.8.8.8
search mydomain.com

同様の質問への答えを見てください:
dnsネームサーバーをオーバーライドします

注:
最後のエントリの後に必ず改行を入れてください。ほとんどのエディターは、ファイルを保存するときに自動的に改行を提供します。


-2

私はdhcpクライアントを削除することへの参照を見つけました、それが主な犯人だと思います。私はこれをやったが、まだ問題を見ていない。確認するまで朝まで待機しますが、dhcpクライアントはまだ実行中で、停止してアンインストールする必要があったようです。

apt-get remove isc-dhcp-client dhcp3-client dhcpcd

解決策がprependコマンドであるか、実際にDHCPクライアントを削除している場合、私は少し混乱しています。
ユージンファンデルメルウェ

@EugenevanderMerweこれは、prependコマンドです。ポスターは、「これが最良の解決策だったので、別のオプションを投稿しましたが、AWS EC2環境では静的IPを設定するのは良い考えではないことに気付きました。」
Grammargeek

-3

経験則として、を使用してすべてのネットワークサービスを常にアンインストールする必要がありますapt-get --purge remove <package-name>。これにより、すべての構成ファイルも削除されます。

この場合、コマンドは次のようになります。

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

このコマンドは、完全に削除しisc-dhcp-clientます。


4
これはどのように関連し、なぜそれが良い一般的なルールだと思いますか?彼はDHCPの使用をやめたくありませんか?
プーリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.