কার্ল যখন * খালি প্রতিক্রিয়া * পায় তখন কীভাবে সংযোগের সমস্যা সমাধান করবেন?


27

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

chad-integration:~ # curl -v 111.222.159.30
* About to connect() to 111.222.159.30 port 80 (#0)
*   Trying 111.222.159.30... connected
* Connected to 111.222.159.30 (111.222.159.30) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.19.0 (x86_64-suse-linux-gnu) libcurl/7.19.0     OpenSSL/0.9.8h zlib/1.2.3 libidn/1.10
> Host: 111.222.159.30
> Accept: */*
> 
* Empty reply from server
* Connection #0 to host 111.222.159.30 left intact
curl: (52) Empty reply from server
* Closing connection #0

সুতরাং, আমি বুঝতে পারি যে একটি খালি প্রতিক্রিয়া মানে কার্ল সার্ভার থেকে কোনও প্রতিক্রিয়া পায় নি। কোনও সমস্যা নেই, এটাই হ'ল আমি বের করার চেষ্টা করছি।

তবে আমি এখানে সিআরএল থেকে আরও কী সুনির্দিষ্ট তথ্য পেতে পারি?

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

দ্রষ্টব্য, আমি নেটওয়ার্কিংয়ের এই স্তরে কিছুটা সবুজ, তাই কিছু সাধারণ অভিযোজন সামগ্রী সরবরাহ করতে নির্দ্বিধায়।


1
আমি একই ত্রুটি পেয়েছিলাম, তবে আমার ক্ষেত্রে এটি ভিপিএন সফ্টওয়্যার যা নির্দিষ্ট নেটওয়ার্ক ট্র্যাফিককে বাধাগ্রস্ত করে এবং অবরুদ্ধ করেছিল। আরও দেখুন এখানে: stackoverflow.com/a/24189367/703200
ক্রিস বার্টলে

উত্তর:


16

আপনার সম্ভবত এটি ক্লায়েন্ট পক্ষ থেকে নয়, সার্ভার দিক থেকে সমস্যা সমাধানের প্রয়োজন হবে। আমি বিশ্বাস করি যে আপনি 'কোনও প্রতিক্রিয়া নেই' দিয়ে একটি 'ফাঁকা প্রতিক্রিয়া' বিভ্রান্ত করছেন। তারা একই জিনিস মানে না। সম্ভবত আপনি একটি উত্তর পেয়ে যাচ্ছেন যাতে কোনও ডেটা থাকে না।

আপনি কার্ল ব্যবহারের পরিবর্তে কেবল টেলনেট ব্যবহার করে এটি পরীক্ষা করতে পারেন:

telnet 111.222.159.30 80

একবার সংযুক্ত হয়ে গেলে, নিম্নলিখিতগুলি আটকে দিন (আপনার কার্ল আউটপুট থেকে নেওয়া):

GET / HTTP/1.1
User-Agent: curl/7.19.0 (x86_64-suse-linux-gnu) libcurl/7.19.0     OpenSSL/0.9.8h zlib/1.2.3 libidn/1.10
Host: 111.222.159.30
Accept: */*

কার্ল যেমন দেখায় তেমন প্রতিক্রিয়া আপনার দেখতে পাওয়া উচিত।

আপনি খালি জবাব পাওয়ার সম্ভাব্য কারণ হ'ল আপনি এমন কোনও ওয়েবসাইটকে হিট করার চেষ্টা করছেন যা একটি নাম ভিত্তিক ভার্চুয়াল হোস্ট। যদি তা হয়ে থাকে তবে সার্ভার কনফিগারেশনের উপর নির্ভর করে (যে সাইটে আপনি আঘাত করার চেষ্টা করছেন সেটি ডিফল্ট হিসাবে কনফিগার করা হয়েছে) আপনি কিছুটা কাজ না করে আইপি ঠিকানায় সাইটে পৌঁছাতে পারবেন না।

উপরের 'হোস্ট' লাইনটি পরিবর্তন করে আপনি ক্লায়েন্টের পক্ষে এটি পরীক্ষা করতে পারেন; আপনি যে সাইটে পৌঁছানোর চেষ্টা করছেন তার সাথে www.example.com প্রতিস্থাপন করুন:

GET / HTTP/1.1
User-Agent: curl/7.19.0 (x86_64-suse-linux-gnu) libcurl/7.19.0     OpenSSL/0.9.8h zlib/1.2.3 libidn/1.10
Host: www.example.com
Accept: */*

আমি অন্য ক্লায়েন্টের কাছ থেকে পৃষ্ঠাটি সফলভাবে ফিরে পেতে সক্ষম হয়েছি। এটি নির্দিষ্ট নেটওয়ার্কগুলির সাথে নির্দিষ্ট যা ক্লায়েন্ট চালু থাকতে পারে বলে আমি মনে করি।
চাদ

এবং, খালি প্রতিক্রিয়া হিসাবে = কোনও প্রতিক্রিয়া না পেয়ে, আমি স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 5929971 /… থেকে পেয়েছি , তবে আমি একটি দ্বিতীয় মতামত বিবেচনা করতে রাজি;)
চাদ

1
আপনার এখনও এটি সার্ভার দিক থেকে সমস্যা সমাধানের প্রয়োজন। সার্ভার যদি ডেটা প্রেরণ না করে তবে ক্লায়েন্ট কেন তা জানতে পারবেন না। এটি কেবল এটি জানে এটি এটি পায় নি। খালি বনাম না হিসাবে, আমি একটি সার্ভার পেয়েছি যা কার্ল একটি 'খালি' প্রতিক্রিয়া সম্পর্কে অভিযোগ করেছে এবং আমি অবশ্যই একটি প্রতিক্রিয়া পেয়েছি। * Empty reply from serverকার্ল থেকে, সরাসরি সংযোগ স্থাপনের সাথে সম্পর্কিত সমস্ত প্রাসঙ্গিক http শিরোনামগুলি সম্পূর্ণরূপে শরীরের সাথে দেখায় <!-- b5 -->। এটি যদি অন্য কোনও কার্লের সাথে কাজ করে এবং একটি নির্দিষ্ট নেটওয়ার্কে নয়, আমি সেই নেটওয়ার্কের পার্থক্যগুলি দেখব। খুব খারাপ আচরণ করা প্রক্সি সম্ভবত?
ইউনিক্স

7

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

wget -S -O /dev/null http://www.example.com

আপনি পাশাপাশি হোস্টনাম সেট করতে পারেন

wget -s -O /dev/null --header="Host: foo.bar" http://www.example.com

2

ব্যবহার করে দেখুন এই -> পরিবর্তে কার্ল মধ্য দিয়ে যাচ্ছে এর সাইট Telnet সহযোগে করার চেষ্টা করছেন pinging চেষ্টা করুন। আপনার সংযোগের প্রয়াসটি যে প্রতিক্রিয়া দেখায় তা হ'ল সিআরএল যখন সংযোগ স্থাপনের চেষ্টা করে ঠিক তা দেখতে পাবে (তবে এটি আপনাকে অনিচ্ছাকৃতভাবে অবলম্বন করে)। এখন, আপনি এখানে যা দেখছেন তার উপর নির্ভর করে আপনি বেশ কয়েকটি সিদ্ধান্তে আঁকতে পারেন:

আপনি এমন কোনও ওয়েবসাইটের সাথে সংযোগ স্থাপনের চেষ্টা করছেন যা নাম ভিত্তিক ভার্চুয়াল হোস্ট, এর অর্থ এটি আইপি ঠিকানার মাধ্যমে পৌঁছানো যায় না। হোস্টনামের সাথে কিছু ভুল হয়েছে - আপনি হয়ত কিছু ভুল লিখেছেন। নোট করুন যে পরামিতিগুলির জন্য POST এর পরিবর্তে জিইটি ব্যবহার করা আপনাকে আরও দৃ concrete় উত্তর দেবে।

ইস্যুটি 100-চালিয়ে যাওয়া শিরোনামের সাথেও আবদ্ধ হতে পারে। কার্ল_জেটইনফো চালানোর চেষ্টা করুন (LIN ch, CURLINFO_HTTP_CODE), এবং ফলাফলটি দেখুন।


1
দ্রষ্টব্য (যেহেতু আমি আপনাকে এই একই উত্তরটি আলাদা সিআরএল প্রশ্নের পোস্টে দেখেছি): এই প্রশ্নগুলি সিআরএল, সিএলআই বাইনারি সম্পর্কিত, এবং আপনি যে পিএইচপি র‌্যাপার বাস্তবায়ন করছেন তা নয়। অন্য কথায়, getinfoসিএলআই সিআরএল এর পতাকা বা বৈশিষ্ট্য বলে কিছুই নেই। @see curl.haxx.se
কেন

0

উইন্ডোজ এর ডাব্লুএসএল অধীনে কিছু অনুষ্ঠানে। ব্যাশের অভ্যন্তরে কার্ল চালানো একই ত্রুটি তৈরি করবে এবং এর কারণ ক্যাস্পার্ক্সি এটিকে HTTP / s এর সাথে সংযোগ স্থাপন থেকে আটকাচ্ছে।

এই বাগটি এখানে জানানো হয়েছে

একটি দ্রুত সমাধান হ'ল আপনি যে পোর্টটি সার্ভারে পৌঁছানোর চেষ্টা করছেন তার ক্যাস্পারস্কি সুরক্ষা অক্ষম করা (এক্সপ্লোরের জন্য টিসিপি 80)।

এটি ক্যাসপারস্কি - সেটিংস - নেটওয়ার্ক সেটিংস - "কেবলমাত্র নির্বাচিত পোর্টগুলি পর্যবেক্ষণ করুন" - পরীক্ষা করে পোর্টগুলি নির্বাচন করুন - বন্দরে ডাবল ক্লিপসি (80) এবং নিষ্ক্রিয় নির্বাচন করে এই কাজটি সম্পন্ন করা হয়

এখানে চিত্র বর্ণনা লিখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.