উবুন্টু ৮.০৪-তে কোনও বন্দর উপলব্ধ কিনা তা আমি কীভাবে জানতে পারি?


28

আমি বাশ থেকে চালাতে পারি এমন কোনও আদেশ আছে যা আমাকে বলবে যে একটি বন্দর ইতিমধ্যে খোলা আছে কিনা?

উত্তর:


37

বন্দরগুলি ব্যবহার করে বর্তমানে পরীক্ষা করতে "নেটট্যাট" ব্যবহার করুন।

netstat -antp

প্রোটো রেক-কিউ প্রেরণ-কি স্থানীয় ঠিকানা বিদেশী ঠিকানা রাজ্যের পিআইডি / প্রোগ্রামের নাম
tcp 0 0 xxx.xxx.xxx.xxx 0.0.0.0:* তালিকাভুক্ত 16297 / নাম     
tcp 0 0 xxx.xxx.xxx.xxx:53 0.0.0.0:* তালিকাভুক্ত 16297 / নাম     
tcp 0 0 xxx.xxx.xxx.xxx:53 0.0.0.0:* তালিকাভুক্ত 16297 / নাম     
tcp 0 0 127.0.0.1:53 0.0.0.0:* তালিকাভুক্ত 16297 / নাম দেওয়া হয়েছে     

2
"নেটস্যাট্যাট্যান্ট | গ্রেপ 80" যেখানে সন্ধানের জন্য 80 বন্দর নম্বর।
উমায়ের এ।

13

এটি (নেটট্যাট) দ্রুততম সমাধান ...

netstat -lnt

... তবে এটি আপনাকে আরও নিয়ন্ত্রণ দেয় (গতির দামে (কখনও কখনও প্রচুর গতিতে)) ...

lsof -n -i -a -u www-data

উদাহরণস্বরূপ উপরের উদাহরণটি আপনাকে সমস্ত টিসিপি বন্দর খোলে এবং LISTENরাজ্যে এবং -aআপাচে ( www-data) ব্যবহারকারীর অন্তর্ভুক্ত এবং ( ) দেখায় ।


8

সব ভাল উত্তর।

তবে আপনি প্রশ্নে কম্পিউটারে লগ ইন করেছেন কিনা তা উল্লেখ করবেন না। ; p

যদি তা না হয় তবে এনএম্যাপ আপনার বন্ধু।

শুরু করার চেষ্টা করুন:

nmap -Otarget

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

শুরু করার চেষ্টা করুন:

amaptarget1-6000


7

চেষ্টা

lsof -i :<port number>

আপনি যদি কোনও ফলাফল পান তবে কিছু শুনছে এবং আবদ্ধ হয়, যেমন

# lsof -i :80
COMMAND   PID   USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
nginx    1833 nobody    3u  IPv4 51091229      0t0  TCP odessa.cheney.net:http->79.173.188.214:52918 (ESTABLISHED)
nginx    1833 nobody    5u  IPv4 46221856      0t0  TCP odessa.cheney.net:http->66.36.243.182:37876 (CLOSE_WAIT)
nginx    1833 nobody    9u  IPv4 34733048      0t0  TCP localhost.localdomain:http (LISTEN)
nginx    1833 nobody   10u  IPv4 34733049      0t0  TCP odessa.cheney.net:http (LISTEN)
nginx    1833 nobody   14u  IPv4 46221857      0t0  TCP odessa.cheney.net:http->66.36.243.182:37880 (CLOSE_WAIT)
nginx    1833 nobody   15u  IPv4 51091030      0t0  TCP odessa.cheney.net:http->msnbot-65-55-106-132.search.msn.com:51708 (ESTABLISHED)
nginx   11832   root    9u  IPv4 34733048      0t0  TCP localhost.localdomain:http (LISTEN)
nginx   11832   root   10u  IPv4 34733049      0t0  TCP odessa.cheney.net:http (LISTEN)

4
netstat -tlnp  

দেখান tCP পোর্ট যে listening দেখাতে numbers শুধুমাত্র (সমাধানে নাম করবেন না - করে তোলে দ্রুত ছিল না) এবং প্রদর্শন process যে শোনা করছে ( pশুধুমাত্র কাজ করে আপনি নিজেই রুট হন)

netstat -ulnp  

uযে ডিপি পোর্টগুলি ব্যয় করছে তা দেখান l, nকেবল ওম্বারগুলি দেখান (নামগুলি সমাধান করবেন না - এটি দ্রুত হয়েছিল) এবং pশ্রোতাদের যে রোসটি দেখায় তা দেখান ( pআপনি যদি রুট হন তবে একমাত্র কাজ করে)

netstat -unp  

uখোলা আছে তবে শুনছে nনা এমন ডিপি পোর্টগুলি দেখান , কেবল উম্বারগুলি দেখান (নামগুলি সমাধান করবেন না - এটি দ্রুত ছিল)) এবং pশ্রুতি যে রোসটি করছে তা দেখান ( pআপনি যদি মূল হন তবে একমাত্র কাজ করে)

netstat -an

aব্যবহৃত nএলএল পোর্টগুলি দেখান , কেবল ওম্বারগুলি দেখান - নামগুলি সমাধান করবেন না

lsof -i <proto>@<host>:<port>

যেমন

lsof -i tcp@localhost:25

লোকালহোস্ট 25 / টিসিপি, বা কিছুতে কিছু শুনছে কিনা তা দেখতে

lsof -i tcp@0.0.0.0:636 

কোনও হোস্ট / ইন্টারফেসের জন্য স্থানীয় বা দূরবর্তী শোনার (স্থানীয়) বা সংযুক্ত (স্থানীয় বা রিমোট) কোনও সকেট রয়েছে কিনা তা দেখতে


2

কোনও প্রক্রিয়া কোনও বন্দরে শুনছে কিনা তা দেখার জন্য lsof (তালিকা ফাইল খুলুন) একটি ভাল সরঞ্জাম

lsof -P | গ্রেপ: <port- সংখ্যা>>

কোনও সক্রিয় সংযোগ রয়েছে কিনা তা দেখার জন্য নেটস্যাট একটি ভাল সরঞ্জাম।

netstat -n | গ্রেপ: <port- সংখ্যা>>


2

আপনি কোন প্রোটোকলটি ব্যবহার করতে চান তা উল্লেখ করেন না, যেমন টিসিপি বা ইউডিপি - এবং এটি উপলব্ধি করাও গুরুত্বপূর্ণ যে "পোর্ট" সিস্টেমটি সকেটগুলি ছিন্নমূল করতে দানাদার হিসাবে যথেষ্ট নয়। উদাহরণস্বরূপ, যদি আপনার সিস্টেমে একাধিক আইপি ঠিকানা থাকে তবে পোর্ট 80 সমস্ত আইপি ঠিকানাগুলিতে ব্যবহৃত হতে পারে (হয় অ্যাপ্লিকেশনটি "0.0.0.0" বা "::" বা প্রতিটি আইপি ঠিকানার সাথে আবদ্ধ হয়েছে), বা এটিতে হতে পারে কেবলমাত্র সেই আইপি ঠিকানাগুলির একটি উপসেটে ব্যবহার করুন।

কোনও বন্দর / ঠিকানা নিখরচায় এবং উপলভ্য কিনা তা নির্ধারণ করার সর্বোত্তম এবং নিশ্চিত উপায়, এটির সাথে আবদ্ধ হওয়ার চেষ্টা করা। নেটকাট এর জন্য সুবিধাজনক।

nc -l [-s abcd] -p NN

টিসিপি পোর্ট এনএন-এ বাঁধার চেষ্টা করবে (alচ্ছিক, ডিফল্টটি সমস্ত ঠিকানা হবে) abcd ইউডিপিতে একই কাজ করার জন্য -u বিকল্পটি যুক্ত করুন।

এরপরে, আপনার জিজ্ঞাসার সাথে বন্দরটি সত্যই "উন্মুক্ত" কিনা তা জানাতে - আপনাকে সম্ভাব্য ফায়ারওয়াল নিয়মগুলি সন্ধান করা উচিত। আবার সবচেয়ে সহজ জিনিসটি বন্দরটির সাথে সংযোগ স্থাপনের চেষ্টা করা। সার্ভারে উপরের মতো নেটক্যাট ব্যবহার করুন এবং ক্লায়েন্ট থেকে নেটক্যাট ব্যবহার করে আপনি যে পোর্টটি খোলেন তার সাথে সংযোগ স্থাপনের চেষ্টা করুন।

nc [-u] abcd NN

ইউ-ডিপি ব্যবহার করে ইউ-ডি-কে ব্যবহার করে, abcd- তে পোর্ট এনএন-এর সাথে সংযোগ স্থাপন করবে। তারপরে আপনি ক্লায়েন্ট প্রান্তে ইনপুট টাইপ করতে পারেন এবং এটি সার্ভারে প্রদর্শিত হবে। যদি এটি না হয় তবে আপনাকে সিস্টেম এবং নেটওয়ার্ক নির্দিষ্ট সরঞ্জামগুলি সন্ধান করতে হবে।


2

আমি ব্যবহার ফিউজার (প্যাকেজ psmisc মধ্যে):

fuser -n tcp Port

ফিরে আনে PID এই পোর্টের আবদ্ধ প্রক্রিয়ার।

এটি যদি কোনও বন্দর শুনতে পাচ্ছে কিনা তা যদি জানতে হয় তবে ভাল পুরাতন টেলনেট কৌশলটি ব্যবহার করে :)

টেলনেট 127.0.0.1 পোর্ট


2

এই ওয়ান-লাইনারটি আপনাকে ব্যবহৃত সমস্ত টিসিপি পোর্টের একটি তালিকা পাবে। এটি উবুন্টু এবং ওএস এক্স-তে বাশে কাজ করে

netstat -ant | sed -e '/^tcp/ !d' -e 's/^[^ ]* *[^ ]* *[^ ]* *.*[\.:]\([0-9]*\) .*$/\1/' | sort -g | uniq

তালিকায় কোনও অতিরিক্ত তথ্য ছাড়াই প্রতি লাইনে একটি পোর্ট থাকবে।


এটা ভালবাসা! ব্যাশ স্ক্রিপ্ট জন্য gret ড্রপ উদাহরণ:for port in $(netstat -ant | sed -e '/^tcp/ !d' -e 's/^[^ ]* *[^ ]* *[^ ]* *.*[\.:]\([0-9]*\) .*$/\1/' | sort -g | uniq); do echo EXECUTE COMMAND FOR PORT $port; done
Grzegorz Wierzowiecki

0

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

(নিশ্চিত করুন যে আপনি নোড ইনস্টল করেছেন এবং এটি ঠিক তেমন কাজ করে nodeনা nodejsবা সেই অনুযায়ী প্রোগ্রামটি পরিবর্তন করে না )

check-portআপনার পথে বা আপনার প্রকল্পে ডাকা একটি ফাইলের জন্য নিম্নলিখিতগুলি সংরক্ষণ করুন

#!/usr/bin/env node
var http = require('http');
var app = new http.Server();
app.listen(process.argv[2], () => {
  process.exit(0)
});

অনুমতি সেট করুন

chmod +x path/to/check-port

আপনার পথ থেকে চালানো

check-port 8080

বা একই ডিরেক্টরি থেকে চালানো

./check-port 8080

এখনও পর্যন্ত এটি বেশ ভাল কাজ করছে।

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