ファイルのミニバージョンを入手し、linux
そのファイルから直接起動できますfirefox
。このファイルは何をすべきかを行いますが、インターネットに接続されていません。
私たちのネットワークには3つのDNSサーバーがあり、すべてうまく機能します。私はまたそれらにpingを送ることができる。しかし、これをしようとするとエラーがping google.de
発生wget google.de
しますbad address
。
nslookup google.de
何らかの理由で動作します。
resolv.conf
私のブートシステムのどの部分がファイルに入れたものと異なる問題があるかを追跡しました。resolv.conf
.iso
私は創造と修正を理解しようとしていますresolv.conf
。すべてをすべて理解したかどうかはわかりませんが、そこでは確かに解決策が見つかりませんでした。
そこで、最後の努力で以下をresolv.conf
使ってファイルを不変にしようとしました。
:~# chattr +i /etc/resolv.conf
驚いたことに、再構築して再起動すると、ファイル名が変更され、resolv.conf~
私を悩ませていたのと同じ標準ファイルに置き換えられました。
ファイルの内容を見ると、ネットワーク自体から情報を取得すると信じられます。インターネット接続なしでVirtualboxで実行すると、.iso
ファイルはそのまま残ります。
ファイルの一部を削除して/etc/dhcp/dhclient.conf
ネットワークから情報を取得しないように変更しました。domain-name-server
domain-name-search
request
残念ながら仕事はありません。
NetworkManagerがインストールされていません。このisoはUbuntu 14.04に基づいています。
重要な情報が欠落している可能性があります。提供してくれて嬉しく思います。
修正する:
消去できるファイルが見つかったと思いますresolv.conf
。
そうだ/usr/share/udhcpc/default.script
#!/bin/sh
# udhcpc script edited by Tim Riker <[email protected]>
[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
RESOLV_CONF="/etc/resolv.conf"
[ - n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"
case "$1" in
deconfig)
/bin/ifconfig $interface 0.0.0.0
for i in /etc/ipdown.d/*; do
[ -e $i ] && . $i $interface
done
;;
renew|bound)
/bin/ifconfig $interface $ip $BROADCAST $NETMASK
if [ -n "$router" ] ; then
echo "deleting routers"
while route del default gw 0.0.0.0 dev $interface ; do
:
done
metric=0
for i in $router ; do
route add default gw $i dev $interface metric $((metric++))
done
fi
echo -n > $RESOLV_CONF # Start ----------------
[ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
for i in $dns ; do
echo adding dns $i
echo nameserver $i >> $RESOLV_CONF
done
for i in /etc/ipup.d/*; do
[ -e $i ] && . $i $interface $ip $dns
done # End ------------------
;;
esac
exit 0
これは計画の一部ですudhcpc
。小さなDHCPクライアントは次のとおりです。busybox
さらに調査する予定です。
アップデート2と回避策:
そのセクション(#Start〜#End)をコメントアウトしましたが、これがファイルを上書きしているように見え/etc/resolv.conf
、確かにそうでした。これが犯人です。そのため、あいまいなスクリプトがこの問題を引き起こしました。
私の問題を解決するために実際に何を知っておくべきかを反映するように質問を変更しました。これにより、同じ問題を抱えている人が見つけやすくなり、回答を受け入れることができます。
ここで問題の解決にご協力いただきありがとうございます。
答え1
resolv.conf
ローカルDHCPサーバーから提供されたデータは変更を上書きするため、DHCPを手動で更新しないでください。静的に適用するには、実行してsudo dpkg-reconfigure resolvconf
動的更新について「いいえ」と答えてください。そこに新しいエントリを追加するには、編集して/etc/resolvconf/resolv.conf.d/base
実行すると、sudo resolvconf -u
エントリとDHCPサーバーエントリが追加されます。アイテムを編集し、
/etc/network/interfaces
そこにアイテムを追加してみてください。auto eth0 iface eth0 inet dhcp dns-search google.com dns-nameservers dnsserverip
その後、再起動/etc/init.d/networking restart
するかsudo ifdown -a
sudo ifup -a
答え2
Ubuntu 16.04
サーバーインスタンスのネットワークインターフェイスがDHCPによって制御されると、/etc/resolv.conf
dhclientプログラムはネットワークサービスが再起動されるたびにファイルを上書きします。
/etc/dhcp/dhclient.conf
ファイルを編集して「交換」ステートメントを追加することで問題を解決できます。ドメイン名、ドメイン名の検索そしてドメインネームサーバー次のように:
supersede domain-name "local.com";
supersede domain-search "local.com";
supersede domain-name-servers 192.168.56.103;
この特別な場合、ネームサーバーは「192.168.56.103」にあり、ドメイン名は「local.com」です。
各行はセミコロンで終わり、ドメイン名は二重引用符で囲まれています。
答え3
私もこれに出会いました。コメントdomain-name-server
も私の問題を解決できませんでした。
また、私はそれを使用せずにresolvconf
普通です/etc/resolv.conf
。
時代遅れのようで、chattr +i
ロック機能を使用していません。また、Puppetが必要なときに変更できるresolv.conf
ことを願っています。resolv.conf
これ最高のソリューション私はそれで記録されたフックの基本的な動作を無視することがわかりましたdhclient
。
/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
次の内容で新しいファイルを作成します。
#!/bin/sh
make_resolv_conf() {
:
}
その後、ファイルを実行可能にします。
chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
dhclientが実行されると(再起動または手動で実行sudo ifdown -a ; sudo ifup -a
)、このスクリプトをロードしますnodnsupdate
。スクリプトはmake_resolv_conf()
通常、オーバーライドされ、resolv.conf
何も実行しない内部関数をオーバーライドします。
これはUbuntu 12.04で私にとって効果的でした。
答え4
私のOVH Ubuntu 18.04にはこのファイルはありません/etc/network/interface
。 Netplanを使用してIPおよびネームサーバーを管理します。文書:/etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
ens3:
dhcp4: true
match:
macaddress: fa:16:3e:d8:f7:7b
set-name: ens3
version: 2
だから私は言ったようにファイルを作成しました。 /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
# network: {config: disabled}
network:
ethernets:
ens3:
dhcp4: true
match:
macaddress: fa:16:3e:d8:f7:7b
set-name: ens3
nameservers:
addresses:
- 1.1.1.1
- 1.0.0.1
search: [mydomain.com]
version: 2
その後、設定を適用して再起動しnetplan apply
ましたが、以前の設定はそのまま残りました。その後、確認した結果、次のようにls -la /etc/resolv.conf
ソフトリンクされていることがわかりました。
/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
。
そのため、そのファイルを削除して新しいファイルを作成しました。
rm -f /etc/resolv.conf
{ echo "nameserver 1.1.1.1";
echo "nameserver 1.0.0.1;
echo "search mydomain.com"; } > /etc/resolv.conf
chattr +i /etc/resolv.conf
reboot
再起動後もすべてが正常に動作し、私のファイルはまだそのまま残り、接続が解除されました。chattr +i /etc/resolv.conf
ソフトリンクの場合はこれを行わないでください。まず削除してください。