如何确保 DNS 在 Linux Mint 和 DNSmasq 上解析常见 URL

如何确保 DNS 在 Linux Mint 和 DNSmasq 上解析常见 URL

我在使用 Linux Mint 17.2 时遇到问题。一些实验表明解析 URL 存在一些问题。


更新2015年12月2日:

也许了解这个问题的人可以评论一下是否存在联系。在网络管理器中:

  • /var/log/暴发户/网络管理器.log

有以下错误:

  (NetworkManager:1015): GLib-WARNING **: GError set over the top of a previous GError or uninitialized memory.
  This indicates a bug in someone's code. You must ensure an error is NULL before it's set.
  The overwriting error message was: Key file does not have group 'connectivity'

我想知道它是否已连接的原因是 LaunchPad 上的这个 Ubuntu 错误:

参考此错误,它似乎与各种网络问题有关。

我目前的困境似乎与 StackOverflow 问题的原因相同,但我认为该问题已得到解决。它不是:

那么问题可能出在网络管理器上? 更新2015-12-01:

起初,问题仅与 TLS SSL / HTTPS 查找相关一切时不时——不是一直。

通常是“主流”网站,例如 google.com、linkedin.com、yahoo.com、facebook、github 以及其他不时出现的网站(例如我的移动服务提供商客户服务网站)。这真的很烦人。

有评论说不可能是HTTPS。到目前为止,实验证据仅显示加密链接上的问题。不过从昨天开始

apt-get update

正在失败。大多数事情都运行良好,然后......

  W: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/Release.gpg  Cannot initiate the connection to dl.google.com:80 (2404:6800:4006:800::200e). - connect (101: Network is unreachable)

  W: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/main/i18n/Translation-en_AU  Cannot initiate the connection to dl.google.com:80 (2404:6800:4006:800::200e). - connect (101: Network is unreachable)

  W: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/main/i18n/Translation-en  Cannot initiate the connection to dl.google.com:80 (2404:6800:4006:800::200e). - connect (101: Network is unreachable)

   W: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/main/binary-amd64/Packages  Cannot initiate the connection to dl.google.com:80 (2404:6800:4006:800::200e). - connect (101: Network is unreachable)

  W: Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/main/binary-i386/Packages  Cannot initiate the connection to dl.google.com:80 (2404:6800:4006:800::200e). - connect (101: Network is unreachable)

  E: Some index files failed to download. They have been ignored, or old ones used instead.

此时,这是唯一失败的非 HTTPS/SSL 链接。但看起来这个问题实际上与一些本地中间服务器/集群有关。发生故障的站点都足够大,足以拥有多个本地节点。

实验结果还是准确的。而且,该问题与错误的 DNS 查找或过期的 DNS 地址有关。

重新启动 DNSmasq 没有效果。

  • 有一些日志可以让我扫描查看吗???

[结束更新]


今晚的一个实际例子抵得上1000字。以 Chrome 或 Firefox 中的 GitHub 为例。

  • https://github.com-- 失败-s

重新发送为:

  • https://www.github.com- 将要工作

您可以通过 看到更多dig。下面是一个简单的演示用例。

使用案例:

  • github.com(失败

    ~ $ dig github.com
    
    ; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> github.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40526
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;github.com. IN A
    
    ;; AUTHORITY SECTION:
    . 42044 IN NS e.root-servers.net.
    . 42044 IN NS d.root-servers.net.
    . 42044 IN NS h.root-servers.net.
    . 42044 IN NS m.root-servers.net.
    . 42044 IN NS l.root-servers.net.
    . 42044 IN NS c.root-servers.net.
    . 42044 IN NS b.root-servers.net.
    . 42044 IN NS a.root-servers.net.
    . 42044 IN NS j.root-servers.net.
    . 42044 IN NS i.root-servers.net.
    . 42044 IN NS g.root-servers.net.
    . 42044 IN NS f.root-servers.net.
    . 42044 IN NS k.root-servers.net.
    
    ;; Query time: 91 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Tue Nov 17 21:41:20 AEDT 2015
    ;; MSG SIZE rcvd: 239
    
  • www.github.com(作品

    ~ $ 挖 www.github.com

    ; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> www.github.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25458
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags: do; udp: 512
    ;; QUESTION SECTION:
    ;www.github.com. IN A
    
    ;; ANSWER SECTION:
    www.github.com. 3599 IN CNAME github.com.
    github.com. 29 IN A 192.30.252.131
    
    ;; Query time: 827 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Tue Nov 17 21:41:26 AEDT 2015
    ;; MSG SIZE rcvd: 73
    

不幸的是,该www.解决方案不适用于以下 URL:

www.google.com去搜索。所以我不能使用任何谷歌或YouTube等。

这是一个间歇性问题。通过松散耦合的有线连接,似乎可以持续大约 2 到 4 天。例如 USB 调制解调器或 USB 转 Wi-Fi 接入点;重新连接或系统重新启动/恢复通常需要获取新地址。至少这看起来是有道理的。

但这并不能解释我的 Gmail 会话在重新启动电脑后一两个小时就退出了,所以我必须使用 StackExchange。

我没有发现任何类似的提及。但话又说回来,我不知道该如何称呼这个问题。


系统信息:

  Linux 3.16.0-38-generic #52~14.04.1-Ubuntu 
    SMP Fri May 8 09:43:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
  DISTRIB_ID=LinuxMint
  DISTRIB_RELEASE=17.2
  DISTRIB_CODENAME=rafaela
  DISTRIB_DESCRIPTION="Linux Mint 17.2 Rafaela"

更新 (2015-11-18

经过我的实验强制使用 github.com 示例;今天的普通浏览器似乎可以令人满意地找到 github.com。大概直到下一次辍学。

我主要担心的是邮件.google.com 查找失败;我认为这个github例子是一个很好的、易于理解的 URL。

钻头给出或多或少相同的答案mail.google.com- 我不确定如何理解返回的报告:

    ~ $ drill @8.8.8.8  dns-admin.google.com
    ;; ->>HEADER<<- opcode: QUERY, rcode: NXDOMAIN, id: 32352
    ;; flags: qr rd ra ; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 
    ;; QUESTION SECTION:
    ;; dns-admin.google.com.    IN  A

    ;; ANSWER SECTION:

    ;; AUTHORITY SECTION:
    google.com. 59  IN  SOA ns2.google.com. dns-admin.google.com. 108125159 900 900 1800 60

    ;; ADDITIONAL SECTION:

    ;; Query time: 537 msec
    ;; EDNS: version 0; flags: do ; udp: 512
    ;; SERVER: 8.8.8.8
    ;; WHEN: Wed Nov 18 22:13:27 2015
    ;; MSG SIZE  rcvd: 89

而搜索https://google.com

nslookup尽管缺乏信息,但更具可交换性:

    ~ $ nslookup host 8.8.8.8  mail.google.com

    ;; connection timed out; no servers could be reached
    ~ $  ping 8.8.8.8
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=105 ms
    64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=97.8 ms
    64 bytes from 8.8.8.8: icmp_seq=3 ttl=54 time=95.8 ms
    ^C
    --- 8.8.8.8 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2002ms
    rtt min/avg/max/mdev = 95.899/99.745/105.446/4.120 ms

所以它到达 8.8.8.8 DNS 服务器就足够了。这是怎么回事。


文件...(编辑以添加配置内容。)仅注意积极的(未注释)选项粘贴在下面。任何其他选项都应遵循 Linux Mint 默认值和 DNSmasq 安装默认值。

  • /etc/dnsmasq.conf

     # Configuration file for dnsmasq.
     #
     # Format is one option per line, legal options are the same
     # as the long options legal on the command line. See
     # "/usr/sbin/dnsmasq --help" or "man 8 dnsmasq" for details.
    
     #       :
     #   only showing active options from this file
     #       :
    
     # Change this line if you want dns to get its upstream servers from
     # somewhere other that /etc/resolv.conf
     #resolv-file=
     ## use resolv
     #
     resolv-file=/etc/resolv.dnsmasq.conf
    
     # By  default,  dnsmasq  will  send queries to any of the upstream
     # servers it knows about and tries to favour servers to are  known
     # to  be  up.  Uncommenting this forces dnsmasq to try each query
     # with  each  server  strictly  in  the  order  they   appear   in
     # /etc/resolv.conf
     strict-order
    
  • /etc/resolv.dnsmasq.con解析文件

     ##  file:   /etc/resolv.dnsmasq.conf
    
     #-- Google's nameservers:
     nameserver 8.8.8.8
     nameserver 8.8.4.4
    
     #
     ##  [end]  ##
    
  • /etc/resolv.conf

     # 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 127.0.0.1
    

相关内容