pingআমাকে বলে যে এটি কোনও ইউআরএলে কিছু হোস্টনাম ("পিং: অজানা হোস্ট ডোমেন ডটকম.লোকাল") সমাধান করতে পারে না তবে আমি যখন কমান্ড লাইনে hostবা nslookupএকই কম্পিউটারে ব্যবহার করি তখন রেজোলিউশনগুলি ঠিক কাজ করে (যেমন এটি দ্রুত এবং নির্ভরযোগ্য) )।
কি এই সৃষ্টি হতে পারে?
আরও পরীক্ষা: ফায়ারফক্স wgetএবং pingএকই সমস্যা রয়েছে। আইপি অ্যাড্রেস পিংিং কাজ করে।
ওএস: লিনাক্স (উবুন্টু 13.04)
সম্পাদনা আমার /etc/resolv.confলেখা আছে:
nameserver 127.0.1.1
search domain.company.local
netstat রিপোর্ট:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN -
সুতরাং এই বন্দরে কিছু চলছে ( nslookupএটি 127.0.1.1ডিএনএস সার্ভার হিসাবে ব্যবহার করে এমনও প্রতিবেদন করে )।
কোনও নেই /etc/*inetd.conf, সুতরাং আমি নিশ্চিত নই যে কোন অ্যাপ্লিকেশনটি এই বন্দরটিতে কাজ করে।
এটি dnsmasqব্যবহার করা হয় বলে মনে হয়:
/usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces
--pid-file=/var/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1
--conf-file=/var/run/NetworkManager/dnsmasq.conf --cache-size=0 --proxy-dnssec
--enable-dbus=org.freedesktop.NetworkManager.dnsmasq
--conf-dir=/etc/NetworkManager/dnsmasq.d
সমস্ত কনফিগার ফাইল এবং ফোল্ডার খালি are যেহেতু nslookupএটি বলছে এটি 127.0.1.1#53আমার অনুমান ব্যবহার dnsmasqকরে তা এটি কোনও কনফিগারেশন ছাড়াও কাজ করে। তবে এটি কীভাবে জানতে পারে যে কোন পিতামাতাকে ডিএনএস জিজ্ঞাসা করবে?
EDIT2 হ্যারিমিকেরdnsmasq পরামর্শ অনুসারে অক্ষম করা কোনও উপকারে আসেনি। সুতরাং আমি দৌড়েছি strace pingযা আমাকে এই বিজোড় আউটপুট দিয়েছে (কেবল আকর্ষণীয় অংশ):
open("/etc/host.conf", O_RDONLY|O_CLOEXEC) = 4
read(4, "127.0.0.1\tlocalhost\n#127.0.1.1\ta"..., 4096) = 613
...
open("/lib/libnss_mdns4_minimal.so.2", O_RDONLY|O_CLOEXEC) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\f\0\0\0\0\0\0"..., 832) = 832
...
mmap(NULL, 2105560, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f7829b00000
...
socket(PF_FILE, SOCK_STREAM, 0) = 4
fcntl(4, F_GETFD) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
connect(4, {sa_family=AF_FILE, path="/var/run/avahi-daemon/socket"}, 110) = 0
fcntl(4, F_GETFL) = 0x2 (flags O_RDWR)
fstat(4, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f782a4f8000
lseek(4, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(4, "RESOLVE-HOSTNAME-IPV4 domain.com"..., 44) = 44
read(4, "-15 Timeout reached\n", 4096) = 20
তাই pingদেখায় /etc/hostsযা জ্ঞান করে তোলে। তারপর এটি লোড করে এবং mmap()গুলি /lib/libnss_mdns4_minimal.so.2যা পাশাপাশি জ্ঞান করে তোলে।
তবে তারপরেই তা অবাহির সাথে কথা বলে !?
যা আমাকে এই ফোরাম পোস্টে নিয়ে গেছে: পিং কোনও ডিএনএস অনুরোধ করে না ।
আমার /etc/nsswitch.confমধ্যে এই লাইনটি রয়েছে:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
যদি আমি pingএকটি কাজের ঠিকানা, আমি দেখতে পাচ্ছি যে প্রক্রিয়াটি লোড হয় /lib/libnss_mdns4_minimal.so.2তবে তারপরে, এটি পোর্ট 53 এর মাধ্যমে একটি ডিএনএস কোয়েরি করে।
সুতরাং আমার অনুমানটি এখন /lib/libnss_mdns4_minimal.so.2একরকম লক্ষ্য করছে যে আইপি ঠিকানাটি শেষ হয় .localএবং সাথে হয় না .comএবং তারপরে [NOTFOUND=return]ট্রিগার হয়।
আমি কিভাবে এটা ঠিক করব?
wget।
nslookupবা hostঅন্য যে কোনও কিছুই কীভাবে সমাধান করা যায় বা কী তা আমি বুঝতে পারি না।
/etc/NetworkManager/NetworkManager.confএবং মন্তব্য করুন dns=dnsmasq(এর সামনে একটি # রাখুন) তারপরে একটি করুন sudo restart network-manager। এটি স্থানীয় রিসলভারটি বন্ধ করে দেবে। ( উত্স )
/etc/resolv.conf?