আমার লিনাক্স মেশিনে ব্যস্ত এবং ফ্রি পোর্ট নম্বরগুলি খুঁজে পেতে এবং তালিকাভুক্ত করার জন্য কোনও কমান্ড লাইন কমান্ড বা অন্য কোনও উপায় আছে?
আমার লিনাক্স মেশিনে ব্যস্ত এবং ফ্রি পোর্ট নম্বরগুলি খুঁজে পেতে এবং তালিকাভুক্ত করার জন্য কোনও কমান্ড লাইন কমান্ড বা অন্য কোনও উপায় আছে?
উত্তর:
আদেশ
netstat -antu
সমস্ত টিসিপি এবং ইউডিপি পোর্ট ব্যবহৃত হবে show আউটপুটটি এরকম কিছু দেখবে:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:59753 0.0.0.0:* LISTEN
লোকাল অ্যাড্রেস ফিল্ডে কোলনের পরে নম্বরটি ব্যবহৃত পোর্টটি দেখায়। রাজ্য যদি "তালিকা" থাকে তবে এর অর্থ একটি পোর্ট যা আগত সংযোগগুলির জন্য ব্যবহার করছে। আইপি ঠিকানা তাহলে Local Address
ক্ষেত্র 0.0.0.0
এটা মানে ইনকামিং সংযোগ একটি ইন্টারফেস নির্ধারিত কোনো IP ঠিকানার উপর গ্রহণ করা হবে - তাই আপনার মেশিনের সংযোগ উদ্ভব বাইরে থেকে এই উপায়।
যদি এটি বলে localhost
বা 127.0.0.1
এটি কেবল আপনার মেশিন থেকে সংযোগ গ্রহণ করবে।
অতিরিক্তভাবে, আপনি যদি -p
প্যারামিটারটি যুক্ত করেন এবং এটি রুট হিসাবে চালান, এটি পোর্টটি খোলার প্রক্রিয়াটি দেখায়:
$ sudo netstat -antup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:59753 0.0.0.0:* LISTEN 860/rpc.statd
ব্যবহারে যেমন প্রদর্শিত হচ্ছে না তেমন কিছুই নিখরচায়, তবে ব্যবহারকারীরা (অনিবদ্ধ অ্যাকাউন্ট) কেবলমাত্র 1023 এর উপরে পোর্ট খুলতে পারবেন।
-antu
হিসাবে লেখা যেতে পারে-tuna
একটি ভাল এবং নির্ভরযোগ্য উপায় খোলা ব্যবহার করছে পোর্ট জন্য চেক করতে ss
(জন্য প্রতিস্থাপন অবচিত netstat
), এটা উঁচু বিশেষাধিকার (অর্থাত প্রয়োজন ছাড়া একটি স্ক্রিপ্টের মধ্যে ব্যবহারযোগ্য এর sudo
)।
ব্যবহার: -l
শোনার বন্দরগুলির বিকল্প -n
, ডিএনএস রেজোলিউশনকে বাইপাস করার বিকল্প এবং উত্স পোর্টের ফিল্টার NN
: src :NN
( NN
আপনি যে পোর্টটি পর্যবেক্ষণ করতে চান সেটি প্রতিস্থাপন করুন )। আরও বিকল্পের জন্য, দেখুনman ss
ss -ln src :NN
উদাহরণ:
[user@server ~]# ss -ln src :80
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:80 *:*
[user@server ~]# ss -ln src :81
State Recv-Q Send-Q Local Address:Port Peer Address:Port
এবং একটি স্ক্রিপ্টে, গ্রেপ ব্যবহার করে, আমরা আউটপুটটিতে আমাদের অনুরোধ করা পোর্ট রয়েছে কিনা তা পরীক্ষা করতে পারি। 80 ব্যবহারের বন্দর সহ উদাহরণ (উপরে দেখুন):
myport=80
# count the number of occurrences of port $myport in output: 1= in use; 0 = not in use
result=$(ss -ln src :$myport | grep -Ec -e "\<$myport\>")
if [ "$result" -eq 1 ]; then
echo "Port $myport is in use (result == $result) "
else
echo "Port $myport is NOT in use (result == $result) "
fi
# output:
Port 80 is in use (result == 1)
ব্যবহারযোগ্য নয় পোর্ট Example১ সহ উদাহরণ (উপরে দেখুন)
myport=81
result=$(ss -ln src :$myport | grep -Ec -e "\<$myport\>")
if [ "$result" -eq 1 ]; then
echo "Port $myport is in use (result == $result) "
else
echo "Port $myport is NOT in use (result == $result) "
fi
# output:
Port 81 is NOT in use (result == 0)
অন্য উপায়:
telnet localhost <PORT_NUMBER>
বন্দরটি বিনামূল্যে থাকলে আপনি একটি ত্রুটি পাবেন। বন্দরটি ব্যবহারে থাকলে টেলনেট সংযুক্ত হবে।
( http://www.unix.com/unix-for-dummies-questions-and-answers/8456-how-know-whether-particular-port-number-free-not.html এ পাওয়া গেছে )