একটি অন্য আর্টিকেলে, আমরা কম্পিউটার পোর্ট এবং সেগুলোর ব্যবহার ব্যাখ্যা করেছি। তার বাইরে, পোর্ট ইনফরমেশন দিয়ে আমরা কী করতে পারি? যেহেতু কম্পিউটারের ভেতর ও বাইরের সকল ট্রাফিক পোর্টের মাধ্যমে হয়, আমরা সেগুলো চেক করে দেখতে পারি সেগুলো কী করছে। হয়তো পোর্টটি ট্রাফিকের জন্য লিসেন করছে না? অথবা কোনো কিছু একটি পোর্ট ব্যবহার করছে যা উচিত নয়?
আমরা উইন্ডোজ কমান্ড netstat ব্যবহার করে আমাদের লিসেনিং পোর্ট এবং PID (Process ID) দেখব। আমরা এছাড়া দেখব এই ইনফরমেশন দিয়ে কী করা যায়।
Netstat কী?
netstat কমান্ডটি 'network' এবং 'statistics' শব্দদ্বয়ের সংমিশ্রণ। netstat কমান্ডটি উইন্ডোজ XP থেকে উইন্ডোজ ১০ পর্যন্ত সব ভার্সনে কাজ করে। এটি অন্যান্য অপারেটিং সিস্টেমে (OS) যেমন ইউনিক্স এবং লিনাক্সেও ব্যবহৃত হয়, কিন্তু এখানে আমরা উইন্ডোজের কথা বলব।
Netstat আমাদের নিচের ইনফরমেশন দিতে পারে:
- পোর্ট যে প্রোটোকল ব্যবহার করছে তার নাম (TCP বা UDP)।
- লোকাল IP অ্যাড্রেস এবং কম্পিউটারের নাম এবং ব্যবহৃত পোর্ট নম্বর।
- আমরা যে IP অ্যাড্রেস এবং পোর্ট নম্বরের সাথে কানেক্ট হচ্ছি।
- TCP কানেকশনের স্টেট। এই স্টেটগুলো কী সেটি জানতে RFC 793-এর Event Processing সেকশন পড়ুন।
Netstat ব্যবহার করে লিসেনিং পোর্ট এবং PID দেখা
- Win Key + X কী কম্বিনেশন চাপুন। খুলা মেনু থেকে Command Prompt সিলেক্ট করুন।
- কমান্ড লিখুন
netstat -a -n -o
। netstat-এর প্যারামিটারগুলো হাইফেন দিয়ে শুরু হয়, ফরওয়ার্ড স্ল্যাশ দিয়ে না như অন্যান্য অনেক কমান্ড।
-a বলতে আছে এটি আমাদের সকল এক্টিভ কানেকশন এবং যেসব পোর্টে কম্পিউটার লিসেন করছে সেগুলো দেখাবে।
-n বলতে আছে netstat-কে IP অ্যাড্রেস এবং পোর্টগুলো শুধু নম্বর হিসেবে দেখাতে। আমরা এটা বলে দিচ্ছি নামগুলো রিজলভ করতে চেষ্টা না করতে। এটি ডিসপ্লে দ্রুত ও সুন্দর করে। -o বলতে আছে netstat-কে PID অন্তর্ভুক্ত করতে। আমরা পরে PID ব্যবহার করব কোনো প্রসেস নির্দিষ্ট পোর্ট ব্যবহার করছে কিনা সেটি জানতে।
- রেজাল্ট দেখুন এবং অ্যাড্রেস, পোর্ট নম্বর, স্টেট, এবং PID নোট করুন। ধরা যাক আমরা জানতে চাই পোর্ট 63240 কী ব্যবহার করছে। নোট করুন এর PID 8552 এবং এটি IP অ্যাড্রেস 172.217.12.138-এর পোর্ট 443-এ কানেক্ট হচ্ছে।
সেই পোর্টটি কী ব্যবহার করছে?
- Task Manager খুলুন। এটি সবচেয়ে সহজে Ctrl + Shift + Esc কী কম্বিনেশন দিয়ে করা যায়।
- Details ট্যাবে ক্লিক করুন। খুঁজে বের করতে সহজ করতে, PID কলাম হেডারে ক্লিক করুন PID গুলো সংখ্যাসূচকভাবে সর্ট করতে।
- নিচে স্ক্রোল করুন PID 8552 পর্যন্ত এবং দেখুন সেটি কী প্রসেস। এই কেসে, এটি googledrivesync.exe। কিন্তু সেটি কি আসলেই সেটি? কখনও কখনও ভাইরাস নিজেদের বaille গত প্রসেসের মত দেখাতে পারে।
- ওয়েব ব্রাউজারে ipinfo.io-এ যান। IP অ্যাড্রেস 172.217.12.138 লিখুন। আমরা দেখতে পাচ্ছি, IP অ্যাড্রেসটি গুগলের নিবন্ধিত। তাই এই googledrivesync.exe একটি লেজিটিমেট প্রসেস।
PowerShell-এ পোর্ট, PID, এবং প্রসেস নাম পাওয়ার পদ্ধতি
PowerShell হল মাইক্রোসফ্টের নতুনর পদ্ধতি উইন্ডোজের সাথে কমান্ড-লাইন ইন্টারফেস ব্যবহার করার। আমরা নতুন বললাম, কিন্তু এটি কয়েকটি ভার্সন ধরে আছে। আপনি হোম ইউজার হলেও PowerShell শিখা উচিত।
বেশিরভাগ উইন্ডোজ কমান্ড PowerShell-এও কাজ করে, প্লাস আমরা সেগুলো PowerShell-এর cmdlets (উচ্চারণ command-lets) এর সাথে কম্বাইন করতে পারি। Winteltools.com-এর জো এই মেথডের স্ক্রিপ্ট দিয়েছেন।
- Notepad খুলুন এবং নিচের কোড লিখুন:
$netstat = netstat -aon | Select-String -pattern "(TCP|UDP)"
$processList = Get-Process
foreach ($result in $netstat) {
$splitArray = $result -split " "
$procID = $splitArray[$splitArray.length – 1]
$processName = $processList | Where-Object {$_.id -eq $procID} | select processname
$splitArray[$splitArray.length – 1] = $procID + " " + $processName.processname
$splitArray -join " "
}
- ফাইলটি get-NetstatProcessName.ps1 হিসেবে সংরক্ষণ করুন। সেটি কোথায় সংরক্ষিত হচ্ছে সেটি নোট করুন। Save as type: কে All Files (*.*) এ পরিবর্তন করা গুরুত্বপূর্ণ, না হলে এটি get-NetstatProcessName.ps1.txt হিসেবে সংরক্ষিত হবে এবং আমাদের জন্য কাজ করবে না।
- PowerShell খুলুন এবং সেই লোকেশনে নেভিগেট করুন যেখানে স্ক্রিপ্টটি সংরক্ষিত। এই কেসে, এটি
cd C:\Scripts
। কমান্ড রান করতে Enter চাপুন।
- ডট-সোর্সিং ব্যবহার করে স্ক্রিপ্ট রান করুন যাতে সেটি কাজ করে। মানে ফাইল নামের আগে ./ ব্যবহার করুন। কমান্ড হবে
./get-NetstatProcessName.ps1
- এখন আমরা সকল ট্র্যাডিশনাল netstat ইনফরমেশন প্লাস প্রসেস নাম দেখতে পাচ্ছি। আর Task Manager খুলতে হয় না।
চলুন খুঁজে বের করি
আমরা netstat কমান্ড ব্যবহার করে লিসেনিং পোর্ট দেখার দুটি উপায় কভার করেছি। এটি পুরনো Command Prompt-এ বা PowerShell স্ক্রিপ্টের ভিতরে ব্যবহার করা যায়। এতে যা ইনফরমেশন मिलে, তার সাহায্যে আমরা দেখেছি কীভাবে আমাদের কম্পিউটার কী করছে সেটি বুঝতে পারি।
আপনি যদি মনে করেন netstat একটি চমৎকার ইউটিলিটি, তবে অন্যান্য উইন্ডোজ TCP/IP ইউটিলিটি যেমন tracert, ipconfig, এবং nslookup দেখুন। অথবা Resource Monitor ব্যবহার করুন লুকানো ওয়েবসাইট এবং ইন্টারনেট কানেকশন দেখতে। আপনার কম্পিউটার কী করছে সেটি সঠিকভাবে দেখার জন্য আপনি অনেক কিছু করতে পারেন।
আপনি কি netstat ব্যবহার করে কোনো সমস্যা সমাধান করেছেন? কী করলেন সেটি আমাদের বলুন। netstat কীভাবে ব্যবহার করতে হয় সে সম্পর্কে কোনো প্রশ্ন আছে? নিচে কমেন্টে জিজ্ঞাসা করুন।