এটি কীভাবে সম্ভব যে আমি কোনও হোস্ট লুকআপ করতে পারি তবে কার্ল নয়?


20

এর আগে কেউ কি কখনও দেখেছেন? নোট করুন যে এটি কেবল গুগল.কমের মাধ্যমেই নয়, তবে আমি চেষ্টা করি এমন প্রতিটি ডোমেনের সাথেই ঘটে। এটি একটি ওয়্যারলেস সংযোগ (ডব্লিউইপি), তবে কীভাবে এটি প্রাসঙ্গিক হবে তা আমি নিশ্চিত নই:

$ curl -v google.com
# This takes about 60s to return
* getaddrinfo(3) failed for google.com:80
* Couldn't resolve host 'google.com'
* Closing connection #0
curl: (6) Couldn't resolve host 'google.com'

$ wget google.com
--2011-11-28 14:44:08--  http://google.com/
Resolving google.com... failed: Name or service not known.
wget: unable to resolve host address `google.com'

$ ping google.com
PING google.com (209.85.148.147) 56(84) bytes of data.
64 bytes from fra07s07-in-f147.1e100.net (209.85.148.147): icmp_req=2 ttl=54 time=136 ms
64 bytes from fra07s07-in-f147.1e100.net (209.85.148.147): icmp_req=3 ttl=54 time=34.0 ms
64 bytes from fra07s07-in-f147.1e100.net (209.85.148.147): icmp_req=4 ttl=54 time=34.3 ms
64 bytes from fra07s07-in-f147.1e100.net (209.85.148.147): icmp_req=5 ttl=54 time=42.5 ms
64 bytes from fra07s07-in-f147.1e100.net (209.85.148.147): icmp_req=6 ttl=54 time=44.7 ms
64 bytes from fra07s07-in-f147.1e100.net (209.85.148.147): icmp_req=7 ttl=54 time=34.5 ms
^C
--- google.com ping statistics ---
8 packets transmitted, 6 received, 25% packet loss, time 7007ms
rtt min/avg/max/mdev = 34.063/54.376/136.026/36.758 ms


$ host google.com
google.com has address 209.85.148.106
google.com has address 209.85.148.147
google.com has address 209.85.148.99
google.com has address 209.85.148.103
google.com has address 209.85.148.104
google.com has address 209.85.148.105
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.

$ host google.com 192.168.1.201
Using domain server:
Name: 192.168.1.201
Address: 192.168.1.201#53
Aliases: 

google.com has address 209.85.148.103
google.com has address 209.85.148.104
google.com has address 209.85.148.105
google.com has address 209.85.148.106
google.com has address 209.85.148.147
google.com has address 209.85.148.99
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 30 alt2.aspmx.l.google.com.

$ cat /etc/resolv.conf 
# Generated by NetworkManager
nameserver 192.168.1.201

$ cat /etc/hosts
127.0.0.1       localhost
::1             localhost

$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.254   0.0.0.0         UG        0 0          0 wlan0
127.0.0.0       127.0.0.1       255.0.0.0       UG        0 0          0 lo
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0

মূলত ফায়ারফক্স সহ কোনও অ্যাপ্লিকেশন নাম অনুসন্ধানের জন্য কাজ করতে পারে না। আরও কী, আমি যদি ওয়াইফাই অফলাইনে নিই এবং ইথারনেট কেবলটি প্লাগ করি তবে সবকিছু ঠিক আছে।


1
হয়তো আরও কিছু তথ্য যুক্ত করুন - এটি কি কেবল কার্ল? উইজেট, ব্রাউজার, পিং ইত্যাদি সম্পর্কে কী?
Sandman4

আমি দেখেছি আপনি একটি উত্তর চিহ্নিত করেছেন তবে বিষয়টি এবং সমাধানটি ঠিক কী ছিল? এটি কোনও সেলিনাক্স সমস্যা ছিল?
বেলমিন ফার্নান্দেজ

"সমাধান "টি ঠিক তেমন ছিল যে নেটওয়ার্কটি ডান-গিবলড বলে মনে হচ্ছে। আমি ল্যাপটপে কোনও সেলইনাক্স চালাচ্ছি না এবং "নেটওয়ার্ক" স্রেফ একটি ক্রেপি স্টোর-কেনা ওয়াইফাই রাউটার দ্বারা পরিচালিত। এই উত্তরটি হ'ল আমি বুঝতে পেরেছিলাম যে আমি পুরো জায়গা জুড়ে প্যাকেট ফেলে দিচ্ছি, সুতরাং আমি বুঝতে পেরেছিলাম যে এটি এমন কিছু যা আমি সমাধান করতে পারি না এবং সেই লোকটিকে কৃতিত্ব দিয়েছিলাম। কেন, আপনার আরও ভাল ধারণা আছে?
ড্যানিয়েল কুইন

pinggithub.com/iputils/iputils/blob/master/ping/ping.c#L574 কিছুটা আলাদা প্যারামিটার দিয়ে getaddrinfo কল করতে পারে ai_protocol = IPPROTO_UDPযে getaddrinfo বিভ্রান্তিকরভাবে কোনওভাবে বিভ্রান্ত করে? মনে হয় hostকমান্ডটি সর্বদা হয় যা ব্যবহৃত হয় না: unix.stackexchange.com/a/553438/8337
রোজারডপ্যাক

উত্তর:


8

সম্ভবত আপনার কাছে খুব অদ্ভুত এবং সীমাবদ্ধ কিছু সেলইনাক্স (বা গার্সিকিউরিটি ...) নিয়ম রয়েছে?

যদি তা না strace -o /tmp/wtf -fF curl -v google.comহয় তবে /tmp/wtfআউটপুট ফাইলটি যা চলছে তা থেকে চেষ্টা করার চেষ্টা করুন।


1
দেখে মনে হচ্ছে এটি নিজেই ওয়াইফাই সংযোগ। আউটপুট ফাইলটি এই জাতীয় সামগ্রীর সম্পূর্ণ:9344 poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Timeout)
ড্যানিয়েল কুইন

@ ড্যানিয়েল কুইন, আপনি কি আউটপুট পোস্ট করতে পারবেন /tmp/wtf?
শচীন দিভেকার

এই ফলাফলটি এখানে: পেস্টবিন.com
ড্যানিয়েল কুইন

হুম, দেখে মনে হচ্ছে এটি 192.168.1.201 এ ক্যোয়ারী করছে। আপনি কি ধর্মীয়তার জন্য "হোস্ট google.com 192.168.1.201" করতে পারেন? মূলত, আপনার ডিএনএস সার্ভারের বিরুদ্ধে বিশেষত ডিএনএস চেহারা।
সিজেসি

সম্পন্ন (এটি প্রশ্নের সাথে যুক্ত হয়েছে)। এবং এটি ঠিক কাজ করে - যা কোনও সার্ভার আর্গুমেন্ট ছাড়াই হোস্ট প্রদান করা সঠিকভাবে কাজ করে বলেই তা বোঝায়। দেখে মনে হচ্ছে এটি কেবল আসল এইচটিটিপি কলও, যেহেতু আইসিএমপি (বেশিরভাগ ক্ষেত্রে এটি প্রথম পিংকে ফেলে দেয়) কাজ করে।
ড্যানিয়েল কুইন

8

এটি ব্যবহার করে: https://www.centos.org/modules/newbb/viewtopic.php?topic_id=39343

আমি একটি কী কমান্ড পেয়েছি যা আমাকে সমস্যা সমাধানে সহায়তা করেছে:

[রুট @ লোকালহোস্ট ~] # উইজেট -6 ইউআরএল ব্যর্থ হয়েছে

[রুট @ লোকালহোস্ট ~] # উইজেট -4 ইউআরএল কাজ করেছে

এটি ডিফল্ট আইপিভি 6 স্ট্যাকের সাথে করার যা কিছু নির্দিষ্ট ব্যবহারে সমস্যা সৃষ্টি করে। সমাধান করার জন্য ipv6 অক্ষম করুন।


5

আপনার পরীক্ষা করুন /etc/nsswitch.confhostsলাইন যদি কিছু বলে

hosts:      files dns

আমি তোমার মতোই বিভ্রান্ত তবে এটি যদি কিছু বলে

hosts:      files

তারপরে ডিএনএস কাজ করছে ( hostকমান্ডের আউটপুট দেখুন ) কার্লকে সাহায্য করবে না, যা স্ট্যান্ডার্ড ওএস লাইব্রেরিগুলির মাধ্যমে নাম রেজোলিউশন করছে, যেগুলি ডিএনএস ব্যবহার না করতে বলা হয়েছে।


হুম। আমি এটি ভেবে দেখিনি, তবে আমি কেবল যাচাই করেছি এবং এটি বলেছে files dnsতাই অনুমান করি যে এটি নয় :-(
ড্যানিয়েল কুইন

1
আমার মধ্যে, হোস্ট লাইনে আরও অনেক জিনিস ছিল। "[ডিএনএস" "" [নটফাউন্ড = রিটার্ন]] "এর পরে তালিকাভুক্ত হয়েছিল যা আমার বোধ অনুযায়ী, কনফিগার করা ডিএনএস সার্ভারগুলি পরীক্ষা করার আগেও সিস্টেমটি খুঁজে পাওয়া যায়নি! নোটফাউন্ড জিনিসটি আমার সিস্টেমকে ঠিক করার আগে "ডিএনএস" এ সরানো (পুনরায় বুট করতে হয়েছিল)।
trebormf

3

আমার একই সমস্যা ছিল - হোস্ট, এনস্লুআপ আপ ঠিক করে, কার্ল সমাধান করে - একই হোস্টনামে থাকতে পারে না।

টিসিপিডাম্পিং যোগাযোগের পরে আমি দেখতে পেলাম যে কার্লটি ডিএনএস পোর্টের সাথে টিসিপি (ইউডিপি ছাড়াও) সংযোগ স্থাপনের চেষ্টা করে যা আমার রাউটারে বন্ধ ছিল। টিসিপি পোর্ট 53 সক্রিয় হওয়ার পরে কার্ল নির্বিঘ্নে কাজ শুরু করে।

আর একটি আশ্চর্যের বিষয় হ'ল যদি ডিএনএস সার্ভার নিয়মিত বাইন্ড ইনস্টলেশন হয় তবে এই সমস্যাটি ফুটে উঠবে না। যদি আমি রাউটার ডিএনএস সার্ভারে এম্বেড ব্যবহার করি তবে কার্ল হঠাৎ করে টিসিপি পোর্টগুলি ব্যবহার করার চেষ্টা করে এমনকি যদি ইতিমধ্যে ইউডিপি 2 এমএসের মাধ্যমে ইতিমধ্যে (!) উত্তর পেয়ে থাকে তবে। আমি মনে করি এটি বাগ।


1

আমার ভিএতে আমার আজ একই সমস্যা ছিল (আমার ল্যাপটপে চলছে) এবং এটি বেশ অবাক করে দিয়েছি। খনন এবং এনস্ক্লুআপ কাজ করে তবে কার্ল ব্যর্থ হয়।

উদাহরণস্বরূপ:

# curl -v google.com
* getaddrinfo(3) failed for google.com:80
* Couldn't resolve host 'google.com'
* Closing connection #0
curl: (6) Couldn't resolve host 'google.com'

তবে আমি যখন ডেভিড টি-এর পোস্টটি এখানে দেখলাম, আমি সিদ্ধান্ত নিয়েছি এটি কার্ল দিয়ে চেষ্টা করব। সুতরাং এটি ব্যর্থ হওয়ার সময়:

# curl  google.com -6
curl: (6) Couldn't resolve host 'google.com'

এটি সফল হয়:

# curl  google.com -4
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>

-6 উল্লেখ করে যে কার্ল IPv6 এবং -4 ব্যবহার করে IPv4 ব্যবহার করতে পারে। উইজেট ব্যবহার করার সময় আমি একই ত্রুটিগুলি পেয়েছি, তাই হোস্টের আইপিভি 6 স্ট্যাকের সাথে অবশ্যই কিছু সমস্যা।

সমস্যাটি এই ইউটিলিটিগুলিতে না হওয়ায় এনএসএসইচ.সিএনএফ ফাইল এবং অন্যান্য বিআইএনএনডি কনফ ফাইলগুলিতে অন্যান্য সমস্ত পরিবর্তনগুলি সহায়তা করে না।


1

যদি কোনও AWS ইসি 2 উদাহরণের জন্য ডিএনএস স্থাপনের চেষ্টা করে এমন কারওর জন্য এটি ঘটে থাকে তবে সেই উদাহরণটি ব্যবহার করা সুরক্ষা গোষ্ঠীতে এইচটিটিপি এবং এইচটিটিপিএসের জন্য আইপিভি 6 বিধি (:: / 0) সক্ষম করার বিষয়টি নিশ্চিত করুন।


0

আপনার কার্ল ইনস্টলেশনটি কি মসৃণ ছিল? সম্ভব হলে কার্লটি পুনরায় ইনস্টল করার চেষ্টা করুন।

curl -v google.comডিবাগিংয়ের জন্য আরও ভার্বোজ আউটপুট পাওয়ার চেষ্টা করুন ।

উদাহরণ:

curl -v dnserror.test
* getaddrinfo(3) failed for dnserror.test:80
* Couldn't resolve host 'dnserror.test'
* Closing connection #0
curl: (6) Couldn't resolve host 'dnserror.test'

আপনি কি একই রকম আউটপুট পাচ্ছেন?


ঠিক একই :-( আমি আউটপুটটি দিয়ে প্রশ্নটি আপডেট করেছি
ড্যানিয়েল কুইন

0

আপনার /etc/resolv.conf ফাইলটিতে একটি ত্রুটি থাকতে পারে যা এনস্লুআপ আপ সহ্য করে তবে কার্ল তা দেয় না।

প্রশ্নটি জিজ্ঞাসা করা হয়েছিল "এটি কীভাবে সম্ভব যে আমি কোনও হোস্ট লুকআপ করতে পারি তবে কার্ল না?"

এটি সম্ভব কারণ কার্ল FQDN সমাধান করার জন্য getaddrinfo () ব্যবহার করে, যেখানে এনস্ক্লুআপ দেয় না। পরিবর্তে, আমি বিশ্বাস করি যে nslookup পার্স /etc/resolv.conf অন্য কোনও ফাংশন বা লাইব্রেরি ব্যবহার করে বা তার নিজস্ব কাস্টম কোডের মাধ্যমে। আমি এটি যাচাই করার জন্য উত্স কোডের দিকে নজর দিইনি, তবে আপনি /etc/resolv.conf এ নেমসারভার টোকেনের সামনে সাদা স্থান যোগ করে এটি প্রমাণ করতে পারেন। nslookup এটিকে পার্স করতে পারে তবে getaddrinfo () পারছে না।


Example /etc/resolv.conf
 nameserver 8.8.8.8

যদি আপনার রেজোলভকনফের এই ত্রুটিটি রয়েছে, বা অন্যান্য ত্রুটিগুলি যা এনস্লুআপ দ্বারা সহ্য করা হয়েছে তবে getaddrinfo () না থেকে থাকে, তবে আপনি nslookup দিয়ে একটি FQDN সমাধান করতে পারবেন, তবে আপনি সেই FQDN এ কার্ল ব্যবহার করতে পারবেন না।

ঠিক করুন: রুট হিসাবে, সম্পাদনা /etc/resolv.conf এবং নেমসার্ভার লাইনে যে কোনও শীর্ষস্থানীয় সাদা স্থান সরিয়ে ফেলুন।


straceআউটপুট শো ডিএনএস প্রশ্নের জবাব দেওয়া গ্রহণ ছাড়া পাঠানো হচ্ছে। এটি পার্সিং ত্রুটির অনুমানটিকে সমর্থন করে না /etc/resolv.conf। তবে এটি সম্ভব যে পুনরাবৃত্তিকারী ত্রুটিযুক্ত এবং একটি পৃথক পুনরাবৃত্তকারী ব্যবহার করে সহায়তা করতে পারে।
ক্যাস্পারড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.