
私はyoctoで構築された組み込みデバイスにカスタムLinuxイメージを使用しています。 ifup/ifdown インターフェイス構成以外のネットワーク管理機能はありません。 /etc/resolv.confはdhcp(dhcpcd)によって生成され、システムにはこれらのファイルを管理する他のソフトウェア(resolvconfやdnsmasqなど)はありません。
# Generated by dhcpcd from eth0.dhcp
# /etc/resolv.conf.head can replace this line
domain routername.home
nameserver 192.168.0.1
この設定を使用すると、/etc/resolv.confを動的に更新して更新できますか?
答え1
update resolv.confを検索すると、このコミュニティで多くの結果が得られます。たとえば、
resolv.confを上書きするときにDNSをどのように設定しますか?
ディストリビューションを知っていると、正しいディストリビューションを見つけるのに役立ちます。たとえば、これはDebian 10ベースのBunsenlabs Lithium 3では動作しませんが、純粋なDebian 10では役に立ちます。
答え2
~によるとマンページ、dhcpcd
明らかに使用dhcpcd-run-hooks
各DHCPイベント(IPアドレスの初期取得、更新、および再構成など)で必要な数のシェルスクリプトを実行します。
これらのフックスクリプトの場所は、/libexec/dhcpcd-hooks
システムのデフォルトフックとカスタムフックのディレクトリとして/etc/dhcpcd.enter-hook
提供されていますが、/etc/dhcpcd.exit-hook
この部分はもちろんシステムビルダーによってカスタマイズできます。
カスタムビルドでこれらのスクリプトがどこにあるかを確認して調べて目的を理解し、DNS設定を変更するスクリプトを強化、変更、または完全に置き換えることで、正確に目的の結果を得ることができます。
マニュアルページdhcpcd.conf
nohook
1つ以上のフックスクリプトを無効にするために使用できる設定キーワードもあることを意味します。
あなたの質問と非常に関連性の高い使用例:
nohook script
このフックスクリプトを実行しないでください。フルネームと一致するか、最後に2桁のオプションのプレフィックスが一致します
.sh
。だからdhcpcdがDNS設定にアクセスできないようにするまたは開始するには、wpa_supplicant
次のようにします。nohook resolv.conf, wpa_supplicant