কীভাবে লিনাক্স নেটওয়ার্কিং ডিবাগ করবেন: ঠিকানা ইতিমধ্যে ব্যবহৃত


10

আমার একটি স্ল্যাকওয়ার লিনাক্স বাক্স রয়েছে যেখানে আমি কোনও পরিষেবা চালু করতে পারি না যা লোকালহোস্টের একটি নির্দিষ্ট বন্দরে শোনা যায়। স্ট্রেস ব্যবহার করে আমি জানতে পারি যে bind()কলটিতে ত্রুটি ঘটেছিল এবং ত্রুটিটি হ'ল EADDRINUSE (Address already in use):

bind(3, {sa_family=AF_INET, sin_port=htons(874), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EADDRINUSE (Address already in use)

আমি সেই বন্দরে শোনা শুরু করার চেষ্টা করার কোনও প্রক্রিয়াতেই এটি ঘটে তাই এটি প্রক্রিয়াটির সাথেই সম্পর্কিত নয়। উপরের স্ট্রেস আউটপুট কমান্ড থেকে আসে strace -ff nc -l -p 874 -s 127.0.0.1

সুতরাং, এটি প্রস্তাব করে যে লোকালহোস্ট বন্দরে 874 এ ইতিমধ্যে শোনার একটি প্রক্রিয়া রয়েছে However তবে, আমি এটি খুঁজে পাচ্ছি বলে মনে হচ্ছে না। নিম্নলিখিত কমান্ডগুলি সমস্ত কিছুই প্রত্যাবর্তন করে:

netstat -aplunt | grep :874
netstat -na | grep :874
lsof -i :874
lsof -i tcp | grep 874
fuser 874/tcp
socklist | grep 874
iptables -t filter -S | grep 874
iptables -t nat -S | grep 874
iptables -t mangle -S | grep 874
conntrack -L | grep 874

যদি আমি 0.0.0.0:874এটি শুনতে চেষ্টা করি তবে একই ত্রুটিটি ব্যর্থ হয়। একটি এনআইপি কনফিগার করা আইপি অ্যাড্রেসের একটিতে শুনে কাজ করা ঠিক আছে, এবং শোনাও ঠিক 127.0.0.2:874কাজ করে। একটি ভিন্ন বন্দরে শোনা সূক্ষ্ম কাজ করে, এছাড়াও 127.0.0.1বা এছাড়াও 0.0.0.0

সুতরাং, এখন আমি কৌতূহলী। নেটওয়ার্ক স্ট্যাক EADDRINUSE এখানে কেন দেয় তা আমি কীভাবে জানতে পারি? আমি কী কী জিনিসগুলিতে সন্ধান করতে পারি, বা আরও তথ্য পেতে আমি কী কী আদেশ ব্যবহার করতে পারি?

অতিরিক্ত তথ্য:

  • কার্নেল 4.1.31।
  • সেলিনাক্স এখানে ব্যবহার করা হয় না।
  • 127.0.0.1 এর সাথে টেলনেটের সাথে "সংযোগ প্রত্যাখ্যান করা" রিটার্নের সাথে সংযোগ স্থাপনের চেষ্টা করা হচ্ছে
  • কমান্ডগুলি মূল হিসাবে চালাচ্ছি

1
বন্দরটি iptables -Sআউটপুটে কোথাও উল্লেখ করা হয়েছে ?
হার্টিটু

1
আপনি কি দয়া করে স্ট্রেস-এনফ-এনসি-এল 874 এর আউটপুট প্রিন্ট করতে পারেন, আপনি যেটি ব্যবহার করেছেন সে 874 এর সাথে সোর্স পোর্ট হিসাবে সংযোগ স্থাপনের চেষ্টা করছে। ধন্যবাদ!
অনিরুদ্ধ মালহোত্রা

2
আফাইক লিনাক্স <1000 এর বন্দরে শোনার সময় রুট সুবিধাগুলি প্রয়োজন Maybe সম্ভবত এখানেই সমস্যা।
Koraktor

2
এই হোস্টটি কি এনএফএসের ক্লায়েন্ট? এটি কোনও এনএফএস মাউন্টের জন্য উত্স বন্দর 874 ব্যবহার করতে পারে। যাইহোক netstat -na | grep 874আপনার বর্তমান netstatপতাকাগুলি খুব সীমাবদ্ধ না হলে আমি চেষ্টা করব ।
টম শ

1
@ টমশো আপনি আমার দিনটি সবেমাত্র তৈরি করেছেন! এটা ঠিক ছিল এনএফএস । এটি ঠিক কীভাবে ঘটেছিল তা সম্পর্কে আমি নিশ্চিত নই, তবে সমস্ত এনএফএস মাউন্টগুলি আনমাউন্ট করে এবং আরপিসি এবং এনএফএস পরিষেবাদি পুনরায় চালু করার পরে সমস্যাটি কেটে গেছে। Tcpdump এর সাথে আমি 874 বন্দর থেকে 111 বন্দর পর্যন্ত কিছু ট্র্যাফিকও দেখেছি (কেন আমি এর আগে এটি ভাবিনি) যা এটি নিশ্চিত করে। আপনি একটি উত্তর হিসাবে পোস্ট করতে পারেন দয়া করে?
Roelvanmeer

উত্তর:


4

আপনার হোস্ট যদি কোনও এনএফএস ক্লায়েন্ট হয় তবে এটি কোনও এনএফএস মাউন্টের জন্য উত্স পোর্ট 874 ব্যবহার করতে পারে। আমার সন্দেহ হয় যে সংযোগটি ইউজারস্পেস থেকে উদ্ভূত না হওয়ায় এটি আপনি এখনও ব্যবহার করেছেন এমন সরঞ্জামগুলিতে দৃশ্যমান নাও হতে পারে।

নিম্নলিখিতগুলির মধ্যে একটি বিবেচনা করুন:

  • এনএফএস ক্লায়েন্ট ব্যবহার করে এমন সোর্স পোর্টের পরিসীমা পরিবর্তন করতে sysctls sunrpc.min_resvportএবং sunrpc.max_resvport(ডিফল্ট 665 এবং 1023) সামঞ্জস্য করুন
  • এই ব্যাপ্তির বাইরে শ্রুতি পোর্ট ব্যবহার করুন
  • ব্যবহার করুন noresvportNFS- র অ তৈরী পরিসীমা ব্যবহার করতে মাউন্ট বিকল্পটি (নিরাপত্তা প্রভাব থাকতে পারে)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.