DNS होस्ट के साथ काम करता है, लेकिन wget के साथ नहीं


10

टी एल; डॉ

मुझे एक अजीब स्थिति मिली है जहां मैं कुछ मेजबानों पर DNS लुकअप कर सकता हूं लेकिन अन्य नहीं। यह resolv.conf से संबंधित है जो एक नेमसर्वर प्रविष्टि है जो मेरे नेमसर्वर को इंगित करता है और दूसरा जो डॉकटर के साथ करने के लिए संभव है, लेकिन मुझे यकीन नहीं है कि इसे कैसे ठीक किया जाए।

समस्या

मैं LXD के लिए स्टीफन ग्रेबर के शानदार परिचय को पढ़ रहा हूं और इसे आजमाना चाहता हूं । इसलिए, मैंने किया:

$ sudo usermod -a -G lxd <myusername>
$ newgrp lxd
$ sudo lxd init

मैंने इसे सभी डिफ़ॉल्ट सेटिंग्स के साथ कॉन्फ़िगर किया है। मैंने फिर टाइप किया:

$ lxc image list images:
error: Get https://images.linuxcontainers.org/streams/v1/index.json: lookup images.linuxcontainers.org: no such host

कुछ परीक्षण

मैंने दूसरे पीसी पर एक वेब ब्राउज़र से उस पते तक पहुंचने की कोशिश की और यह ठीक काम किया। इसलिए मुझे लगा कि डीएनएस सेट-अप के साथ कुछ गलत होना चाहिए, लेकिन:

$ host images.linuxcontainers.org
images.linuxcontainers.org is an alias for canonical.images.linuxcontainers.org.
canonical.images.linuxcontainers.org has address 91.189.91.21
canonical.images.linuxcontainers.org has address 91.189.88.37
canonical.images.linuxcontainers.org has IPv6 address 2001:67c:1560:8001::21
canonical.images.linuxcontainers.org has IPv6 address 2001:67c:1562::41

इसलिए मैंने wget की कोशिश की:

$ wget https://images.linuxcontainers.org/streams/v1/index.json
--2016-11-10 15:56:22--  https://images.linuxcontainers.org/streams/v1/index.json
Resolving images.linuxcontainers.org (images.linuxcontainers.org)... failed: Name or service not known.
wget: unable to resolve host address "images.linuxcontainers.org"

जो मुझे लगता है कि मेरे इंटरनेट कनेक्शन के साथ एक समस्या थी, लेकिन अगर मैं us.images.linuxcontainers.org (जो मैंने वेब पर कहीं देखा था) का उपयोग करता हूं:

$ wget https://us.images.linuxcontainers.org/streams/v1/index.json
--2016-11-10 15:57:26--  https://us.images.linuxcontainers.org/streams/v1/index.json
Resolving us.images.linuxcontainers.org (us.images.linuxcontainers.org)... 91.189.91.21, 2001:67c:1562::41
Connecting to us.images.linuxcontainers.org (us.images.linuxcontainers.org)|91.189.91.21|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3086 (3.0K) [application/json]
Saving to: "index.json"

index.json                                100%[==================================================================================>]   3.01K  --.-KB/s    in 0s

2016-11-10 15:57:26 (8.36 MB/s) - "index.json" saved [3086/3086]

मैंने भी canonical.images.linuxcontainers.org की कोशिश की, जो ( hostऊपर के अनुसार ) क्या है images.linuxcontainers.org एक उपनाम है और यह भी काम किया है, इसलिए ऐसा लगता है कि यह hostimages.linuxcontainers.org देख सकता है, जबकि wgetऔर lxcनहीं, लेकिन कर सकते हैं canonical.images.linuxcontainers.org और मेरी कोशिश की गई अन्य साइटों पर पहुँच wget सकते हैं

$ wget https://canonical.images.linuxcontainers.org/streams/v1/index.json
--2016-11-10 16:02:28--  https://canonical.images.linuxcontainers.org/streams/v1/index.json
Resolving canonical.images.linuxcontainers.org (canonical.images.linuxcontainers.org)... 91.189.91.21, 91.189.88.37
Connecting to canonical.images.linuxcontainers.org (canonical.images.linuxcontainers.org)|91.189.91.21|:443... connected.
ERROR: no certificate subject alternative name matches
        requested host name "canonical.images.linuxcontainers.org".
To connect to canonical.images.linuxcontainers.org insecurely, use `--no-check-certificate'.

$ wget --no-check-certificate https://canonical.images.linuxcontainers.org/streams/v1/index.json
--2016-11-10 16:02:37--  https://canonical.images.linuxcontainers.org/streams/v1/index.json
Resolving canonical.images.linuxcontainers.org (canonical.images.linuxcontainers.org)... 91.189.88.37, 91.189.91.21
Connecting to canonical.images.linuxcontainers.org (canonical.images.linuxcontainers.org)|91.189.88.37|:443... connected.
WARNING: no certificate subject alternative name matches
        requested host name "canonical.images.linuxcontainers.org".
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://uk.images.linuxcontainers.org/streams/v1/index.json [following]
--2016-11-10 16:02:37--  https://uk.images.linuxcontainers.org/streams/v1/index.json
Resolving uk.images.linuxcontainers.org (uk.images.linuxcontainers.org)... 91.189.88.37, 2001:67c:1560:8001::21
Connecting to uk.images.linuxcontainers.org (uk.images.linuxcontainers.org)|91.189.88.37|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3086 (3.0K) [application/json]
Saving to: "index.json.1"

index.json.1                              100%[==================================================================================>]   3.01K  --.-KB/s    in 0s

2016-11-10 16:02:38 (96.5 MB/s) - "index.json.1" saved [3086/3086]

मैं भी कोशिश की है wget -4और wget -6आईपीवी 6 मुद्दों को शासन करने के लिए, लेकिन परिणाम एक ही किसी भी तरह से कर रहे थे। अंत में मैंने कुछ अन्य कार्यक्रमों की कोशिश की, w3mलेकिन वहां भी कोई अंतर नहीं है।

मुझे स्पष्ट रूप से कुछ याद आ रहा है; क्या कोई इस बारे में कोई सलाह दे सकता है कि मुझे lxcछवि सूची डाउनलोड करने के लिए क्यों नहीं मिल सकता है ?

पीसी

पीसी एक अपेक्षाकृत नया इंस्टॉल है जो मुख्य होस्ट में स्थापित बहुत कम अतिरिक्त पैकेज के साथ Ubuntu सर्वर 16.10 पर चल रहा है । डॉकर स्थापित और चल रहा है लेकिन कोई कंटेनर ऊपर नहीं हैं। दिलचस्प बात यह है कि मैंने हाल ही में कर्नेल 4.8.6 में रिबूट किया था जो मुझे होने वाली एक अन्य समस्या का परीक्षण करने के लिए था और उस कर्नेल के साथ मैं images.linuxcontainers.org एक्सेस कर सकता था, लेकिन docker प्रारंभ नहीं होगा, इसलिए मैं सोच रहा था कि क्या यह docker के साथ हो सकता है ।

विन्यास

/etc/resolv.confइस तरह दिखता है (लेकिन किसी कारण से मैं इसके बारे में नहीं जानता, वास्तव में एक सिम्लिंक है /run/resolvconf/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 192.168.1.254
nameserver 127.0.0.53
search lan

यदि मैं पहली सूचीबद्ध नेमसर्वर को क्वेरी करता हूं तो मुझे वैसा ही परिणाम मिलेगा जैसे कि मैं नेमसेवर पते को संलग्न नहीं करता हूं:

$ host images.linuxcontainers.org 192.168.1.254
images.linuxcontainers.org is an alias for canonical.images.linuxcontainers.org.
canonical.images.linuxcontainers.org has address 91.189.91.21
canonical.images.linuxcontainers.org has address 91.189.88.37
canonical.images.linuxcontainers.org has IPv6 address 2001:67c:1560:8001::21
canonical.images.linuxcontainers.org has IPv6 address 2001:67c:1562::41

यदि मैं दूसरी क्वेरी करता हूं, तो यह सर्वर तक पहुंच के बिना कई बार बाहर निकलता है:

$ host images.linuxcontainers.org 127.0.0.53
;; connection timed out; no servers could be reached

अगर मैं दूसरी क्वेरी करता हूं, लेकिन विहित नाम का उपयोग करता है तो यह काम करता है और फिर बाहर ???

$ host canonical.images.linuxcontainers.org 127.0.0.53
Using domain server:
Name: 127.0.0.53
Address: 127.0.0.53#53
Aliases:

canonical.images.linuxcontainers.org has address 91.189.88.37
canonical.images.linuxcontainers.org has address 91.189.91.21
;; connection timed out; no servers could be reached
;; connection timed out; no servers could be reached

1 संपादित करें:

/etc/nsswitch.conf इस तरह दिखता है:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat
gshadow:        files

hosts:          files resolve [!UNAVAIL=return] dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

संपादित करें २

संशोधित nsswitch.conf अब इस तरह दिखता है:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat
gshadow:        files

hosts:          files resolve dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

संपादित करें 3

/Etc/systemd/resolved.conf की सामग्री:

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See resolved.conf(5) for details

[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
#Domains=
#LLMNR=yes
#DNSSEC=no
#Cache=yes

1
/etc/resolv.confआमतौर पर उबंटू पर एक सिमलिंक है, यह सामान्य है। क्या होता /etc/nsswitch.confहै?
मूरू

@ मरमू मैंने इसे ऊपर जोड़ा है (यह कोई
सिम्बलिन

2
@ThatGuy इसके लिए धन्यवाद। यह हर सर्वर के साथ काम नहीं करेगा (जैसा कि यह निर्भर करता है कि सर्वर डोमेन नाम के लिए दिखता है) - इस मामले में मैं बस canonical.images.linuxcontainers.org का उपयोग कर सकता हूं, वैसे भी यह काम करने लगता है। हालाँकि, मुझे भी अंतर्निहित पते के बजाय इसे मनाने lxc image listऔर lxc launchउपयोग करने की आवश्यकता होगी ।
13

1
@DrAl, यह पहली बार resolveहोस्ट कीवर्ड को देखने के लिए है , यह गलत लगता है। आपके पास कुछ ऐसा होना चाहिए hosts: files dns [!UNAVAIL=return]या यदि आपके पास mDNS स्थापित है files dns mdns4_minimal [NOTFOUND=return] mdns4। आप हटा सकते हैं [NOTFOUND=return]या [!UNAVAIL=return], यह वैसे भी डिफ़ॉल्ट क्रिया है यदि कुछ भी क्वेरी के लिए नहीं छोड़ा गया है।
user.dz

1
@ user.dz, मैंने इसे हटाने की कोशिश की है (हालाँकि यह मेरी स्थापना द्वारा तयशुदा है क्योंकि मैंने इस फ़ाइल को पहले कभी नहीं छुआ है)। यह काम करने की अनुमति देता है (यद्यपि कुछ सेकंड देरी के बाद "images.linuxcontainers.org को हल करने में देरी।) धन्यवाद। किसी भी विचार क्यों यह मेरे /etc/nsswitch.conf में जोड़ा गया हो सकता है? संकुल की सूची मैंने देखी है? सर्वर पर स्थापित "ऊपर पीसी" अनुभाग में एक लिंक में सूचीबद्ध है।
DrAl

जवाबों:


2
  • यह पहली बार resolveहोस्ट कीवर्ड देखने के लिए है , यह गलत लगता है। आपके पास कुछ होना चाहिए

    hosts: files dns [NOTFOUND=return]
    

    या यदि आपके पास mDNS स्थापित है

    hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4
    

    आप हटा सकते हैं [NOTFOUND=return]या [!UNAVAIL=return], यह वैसे भी डिफ़ॉल्ट क्रिया है यदि कुछ भी क्वेरी के लिए नहीं छोड़ा गया है।

  • खैर, कुछ खुदाई के बाद मुझे पता चला कि मेरे लिए एक एनएसएस मॉड्यूल नया है

    libnss-resolve

    nss module to resolve names via systemd-resolved
    
    nss-resolve is a plugin for the GNU Name Service Switch (NSS) functionality
    of the GNU C Library (glibc) providing DNS and LLMNR resolution to programs via
    the systemd-resolved daemon (provided in the systemd package).
    
    Installing this package automatically adds resolve to /etc/nsswitch.conf.
    

    आप इसे किसी भी तरह से स्थापित कर सकते हैं और आपके द्वारा बताए गए पैकेज के साथ नहीं। कोई पैकेज नहीं है इस पर निर्भर करता है।

    ~$ apt-cache rdepends libnss-resolve
    libnss-resolve
    Reverse Depends:
    

    लेकिन मैं अभी कुछ नहीं कह सकता, क्यों systemd-resolvedअविश्वसनीय था। इसे बग के रूप में रिपोर्ट करना बेहतर है systemd


1
दिलचस्प है, धन्यवाद। मैंने "समाधान" को हटाने की कोशिश की और wgetबहुत तेज हो गया, इसलिए ऐसा लग रहा है कि समस्या क्या थी। Nsswitch.conf में मेरी मेजबानों की लाइन अभी "फाइल डीएनएस" है।
DrAl

1
मैं dpkg-query -l '*resolve*'जाँच करता था और पाया गया कि libnss-resolveस्थापित है, इसलिए मैंने स्थापित किया aptitudeऔर भाग गया aptitude why libnss-resolveऔर यह कहता है i ubuntu-standard Recommends libnss-resolve
DrAl

1
@DrAl, यह कौन सा रिलीज़ है? मैं U16.04 के बीच ऐसी कोई निर्भरता है ubuntu-standardऔर libnss-resolve
user.dz

1
यह हमें वर्तमान सेटअप के बारे में कुछ प्रकाश देता है, लेकिन आपके पास अंतिम फिक्स है, जिसका अर्थ है कि यह दूसरा बग (सिस्टमड-सॉल्यूड / nss- रिज़ॉल्यूशन अविश्वसनीय है)। क्या आपके पास इसकी सेवा चल रही हैsystemctl status systemd-resolved.service
user.dz

1
@ डीआरएल, इसलिए यह डिफॉल्ट का उपयोग करता है man resolved.conf, इसका मतलब है कि हम वापस आ गए हैं /etc/resolv.conf: /। में के resolveरूप dnsमें एक ही प्रभाव होना चाहिए nsswitch.conf
user.dz
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.