উত্তর:
বন্দরগুলি ব্যবহার করে বর্তমানে পরীক্ষা করতে "নেটট্যাট" ব্যবহার করুন।
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 / নাম দেওয়া হয়েছে
এটি (নেটট্যাট) দ্রুততম সমাধান ...
netstat -lnt
... তবে এটি আপনাকে আরও নিয়ন্ত্রণ দেয় (গতির দামে (কখনও কখনও প্রচুর গতিতে)) ...
lsof -n -i -a -u www-data
উদাহরণস্বরূপ উপরের উদাহরণটি আপনাকে সমস্ত টিসিপি বন্দর খোলে এবং LISTEN
রাজ্যে এবং -a
আপাচে ( www-data
) ব্যবহারকারীর অন্তর্ভুক্ত এবং ( ) দেখায় ।
সব ভাল উত্তর।
তবে আপনি প্রশ্নে কম্পিউটারে লগ ইন করেছেন কিনা তা উল্লেখ করবেন না। ; p
যদি তা না হয় তবে এনএম্যাপ আপনার বন্ধু।
শুরু করার চেষ্টা করুন:
nmap -O
target
এ্যাম্যাপটিও একটি ভাল পছন্দ যা ব্যানার পৃষ্ঠাগুলি দখল করে সার্ভার সফ্টওয়্যারটি অনুমান করার চেষ্টা করবে।
শুরু করার চেষ্টা করুন:
amap
target
1-6000
চেষ্টা
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)
netstat -tlnp
দেখান t
CP পোর্ট যে l
istening দেখাতে n
umbers শুধুমাত্র (সমাধানে নাম করবেন না - করে তোলে দ্রুত ছিল না) এবং প্রদর্শন p
rocess যে শোনা করছে ( 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
কোনও হোস্ট / ইন্টারফেসের জন্য স্থানীয় বা দূরবর্তী শোনার (স্থানীয়) বা সংযুক্ত (স্থানীয় বা রিমোট) কোনও সকেট রয়েছে কিনা তা দেখতে
আপনি কোন প্রোটোকলটি ব্যবহার করতে চান তা উল্লেখ করেন না, যেমন টিসিপি বা ইউডিপি - এবং এটি উপলব্ধি করাও গুরুত্বপূর্ণ যে "পোর্ট" সিস্টেমটি সকেটগুলি ছিন্নমূল করতে দানাদার হিসাবে যথেষ্ট নয়। উদাহরণস্বরূপ, যদি আপনার সিস্টেমে একাধিক আইপি ঠিকানা থাকে তবে পোর্ট 80 সমস্ত আইপি ঠিকানাগুলিতে ব্যবহৃত হতে পারে (হয় অ্যাপ্লিকেশনটি "0.0.0.0" বা "::" বা প্রতিটি আইপি ঠিকানার সাথে আবদ্ধ হয়েছে), বা এটিতে হতে পারে কেবলমাত্র সেই আইপি ঠিকানাগুলির একটি উপসেটে ব্যবহার করুন।
কোনও বন্দর / ঠিকানা নিখরচায় এবং উপলভ্য কিনা তা নির্ধারণ করার সর্বোত্তম এবং নিশ্চিত উপায়, এটির সাথে আবদ্ধ হওয়ার চেষ্টা করা। নেটকাট এর জন্য সুবিধাজনক।
nc -l [-s abcd] -p NN
টিসিপি পোর্ট এনএন-এ বাঁধার চেষ্টা করবে (alচ্ছিক, ডিফল্টটি সমস্ত ঠিকানা হবে) abcd ইউডিপিতে একই কাজ করার জন্য -u বিকল্পটি যুক্ত করুন।
এরপরে, আপনার জিজ্ঞাসার সাথে বন্দরটি সত্যই "উন্মুক্ত" কিনা তা জানাতে - আপনাকে সম্ভাব্য ফায়ারওয়াল নিয়মগুলি সন্ধান করা উচিত। আবার সবচেয়ে সহজ জিনিসটি বন্দরটির সাথে সংযোগ স্থাপনের চেষ্টা করা। সার্ভারে উপরের মতো নেটক্যাট ব্যবহার করুন এবং ক্লায়েন্ট থেকে নেটক্যাট ব্যবহার করে আপনি যে পোর্টটি খোলেন তার সাথে সংযোগ স্থাপনের চেষ্টা করুন।
nc [-u] abcd NN
ইউ-ডিপি ব্যবহার করে ইউ-ডি-কে ব্যবহার করে, abcd- তে পোর্ট এনএন-এর সাথে সংযোগ স্থাপন করবে। তারপরে আপনি ক্লায়েন্ট প্রান্তে ইনপুট টাইপ করতে পারেন এবং এটি সার্ভারে প্রদর্শিত হবে। যদি এটি না হয় তবে আপনাকে সিস্টেম এবং নেটওয়ার্ক নির্দিষ্ট সরঞ্জামগুলি সন্ধান করতে হবে।
এই ওয়ান-লাইনারটি আপনাকে ব্যবহৃত সমস্ত টিসিপি পোর্টের একটি তালিকা পাবে। এটি উবুন্টু এবং ওএস এক্স-তে বাশে কাজ করে
netstat -ant | sed -e '/^tcp/ !d' -e 's/^[^ ]* *[^ ]* *[^ ]* *.*[\.:]\([0-9]*\) .*$/\1/' | sort -g | uniq
তালিকায় কোনও অতিরিক্ত তথ্য ছাড়াই প্রতি লাইনে একটি পোর্ট থাকবে।
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
এটি করার অনেকগুলি উপায় আমাকে ইস্যু দিয়েছে কারণ তারা লিনাক্স এবং ওএসএক্সে কাজ করে না, এবং / অথবা তারা ডকারের দ্বারা ব্যবহৃত পোর্টগুলি বা রুটের মালিকানাধীন প্রক্রিয়াগুলি প্রদর্শন না করে। এখন আমি কেবল এই জাভাস্ক্রিপ্ট প্রোগ্রামটি ব্যবহার করছি:
(নিশ্চিত করুন যে আপনি নোড ইনস্টল করেছেন এবং এটি ঠিক তেমন কাজ করে 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
এখনও পর্যন্ত এটি বেশ ভাল কাজ করছে।