16.04-installationを16.10にアップグレードした後、DNSに問題があります。
まず、イーサネットで動作している間に、WiFiに接続すると数回問題が発生しました。今ではWiFiでも動作するようです。理由はわかりませんが、それが今直面している問題に何らかの形で関連しているのであれば:
Cisco Anyconnect VPNを使用してVPNホストに接続する場合、'/ etc/resolv.conf'に行を追加します。 Ubuntuは現在 systemd-resolve を使用していることを理解しており、manページには/etc/resolv.confを処理するための3つの異なるモードがあると書かれています。私の/etc/resolv.confはシンボリックリンクではなく、127.0.0.53をDNSサーバーとしてリストしていません。そのため、systemd-resolvedが「DNS構成データを読み取る」べきだと理解しています。しかし、それは気にしないようです。
奇妙なこと(私にとって)は、Dig Host.customer.tld
が、要求されたホストのIPを示すANSWER SECTIONを含むNice応答を返し、vpnクライアントによってSERVERとして/etc/resolv.confに追加されたDNSサーバーを参照することです。 VPN接続が無効になっていると、応答がありません。つまりDigは/etc/resolv.confを読み取ります。
一方、ブラウザは/etc/resolv.confにアクセスせず、ホスト名を解決できません。ちなみに、どちらもping/curlではありません。
関連する投稿 を見つけて、実行してみました
nmcli device show <interfacename> | grep IP4.DNS
ただし、cscotun0デバイスのDNSはリストされません。 (ただし、16.04でも同じではありません。)また、nmcliは、eth/wlan接続のIP4.DNSホストとして、dhcpサーバー(ルーター)をリストします。パブリックドメインにDig @192.168.0.1 xxx
を使用しても問題ありません。
/run/systemd/resolve/resolv.confにリストされている他のDNSサーバーがいくつかあります。
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
# Too many DNS servers configured, the following entries may be ignored.
nameserver 2001:4860:4860::8844
これらは私のDHCPサーバーによって提供されません。ファイル/etc/systemd/resolved.confには、セクションヘッダーを除くコメント行のみが含まれます。
[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
resolved.confのmanページには、
DNS=システムDNSサーバーとして使用するIPv4およびIPv6アドレスのスペース区切りリスト。 ...互換性の理由から、この設定が指定されていない場合、/ etc/resolv.confにリストされているDNSサーバーが代わりに使用されます(そのファイルが存在し、サーバーが構成されている場合)。この設定のデフォルトは空のリストです。
FallbackDNS=フォールバックDNSサーバーとして使用するIPv4およびIPv6アドレスのスペース区切りリスト。 systemd-networkd.service(8)から取得したリンクごとのDNSサーバーは、この設定よりも優先されます。DNS= aboveまたは/etc/resolv.confを介して設定されたサーバーも同様です。したがって、この設定は、他のDNSサーバー情報が不明な場合にのみ使用されます。このオプションが指定されていない場合、代わりにDNSサーバーのコンパイル済みリストが使用されます。
私の場合、フォールバックは/run/systemd/resolve/resolv.confで終わるようです。
編集:私は問題が何であるか確信がありませんでした、そして正直に言うと、私はまだこれがどのように機能するのか正確にはわかりませんが、少なくとも私の場合はソリューションはsystemd-resolved
を無効にすることでしたサービス。サービスが必要であり、すべてのローカルアプリケーションにDNSサービスを提供するコンポーネントであると考えましたが、明らかにその仕事をしている何かがそこにあります。
USB Wifiドングルを追加するなど、同様の問題が発生しました。最初に、上記のようにnetworkmanagerでdnsmasqを無効にし、dnsmasqを停止しました(service dnsmasq stop)
VPN接続中に問題を解決すると、ルーティングテーブルが少し異なって見えることに気付きました(routeコマンドの出力)。ゲートウェイの名前は、動作しない場合はDD-WRTであり、動作する場合は単に「ゲートウェイ」です。この出力は変更されませんでした:
nmcli device show wlp1s0 | grep IP4.DNS
ルーターのIPが表示され続けました。しばらく動作させるための回避策は、systemd-resolvdを再起動することです。
Sudo service systemd-resolved restart
Dnsmasqは式から外れているため、問題の原因であるsystemd-resolvd、またはルーティングテーブルを変更するもののいずれかです。
だから、これは私が見る唯一の違いです:
ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 601 0 0
動作します。そして、これが機能しないとき:
ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default DD-WRT 0.0.0.0 UG 601 0 0 wlp1s0
そして、VPN回線上の同じ名前の違い:
vpn-dns.name gateway 255.255.255.255 UGH 0 0 0 wlp1s0
ルーティングテーブルに何が影響を与えるかを誰が知っていますか?バグレポートを提出できるようにこれを特定できれば素晴らしいと思います。私はこれらすべてのバグを追跡することにうんざりして疲れていますが、将来のユーザーと私たちが幸せになるように修正したいと思います:)。
[更新] systemd-resolvedを停止することでこれを修正でき、他のものに悪影響を与えないようです。あなたはそれを試して、それが何かを壊すかどうかを知らせることができます。デバッグ時にsystemd-resolvdを実行すると、壊れたときに見た:
Removing scope on link wlp1s0, protocol llmnr, family AF_INET
Removing scope on link wlp1s0, protocol llmnr, family AF_INET6
Removing scope on link *, protocol dns, family *
無効にするには:
Sudo systemctl disable systemd-resolved.service
Ubuntuレポートを提案して更新しました。 [/ update]追加:注:バグレポート: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317 には、17.04のパッチがいくつかの問題について含まれています。バグレポートを確認し、可能であればパッチをテストしてください。ありがとうございました!
[更新]
上記のバグレポートを確認してください。問題は17.10で解決されたようで、簡単なコマンドでDNSリークも無効にできます。
[/更新]
OpenVPN接続中のDNSの動作は、ubuntuforumsで 提案 を実行するとすぐに改善されました。
/etc/NetworkManager/NetworkManager.conf
を開きます。#
を読み取る行を削除(またはハッシュdns=dnsmasq
でコメントアウト)Sudo service NetworkManager restart
経由でNetworkManagerを再起動します同じ問題に遭遇しました。どういうわけか、DNSmasqを何らかのアプリケーションと共にインストールする必要があります。 dnsmasqを削除するだけで問題は解決しました。
Sudo apt-get remove dnsmasq
それ以降、接続が切断されたり、一部のサイトがロードできなくなったりすることはありません(他のサイトは機能していましたが、Gmailのロードで問題が発生しました。つまり、Gmailに突然接続できませんでした)。
/etc/nsswitch.conf
を編集して変更
hosts: files mdns4_minimal [NOTFOUND=return] dns
に
hosts: files dns mdns4_minimal [NOTFOUND=return]
編集:
私はかなり長い間同じ問題を抱えていました。 VPNからドメイン名を解決できましたが、それらをpingまたはカールしたり、他のアプリケーションで使用したりできませんでした。上記の変更はそれを解決しました。