به بیان ساده، به راه‌های ورودی به یک کامپیوتر پورت می‌گویند؛ هر کدام از این پورت‌ها با یک عدد مشخص می‌شوند که بین 1 تا 65535 می‌باشد؛ به عنوان مثال برای ورود به سرویس MySQL در یک کامپیوتر، باید از پورت 3306 استفاده کنیم. برای بررسی باز بودن یک پورت بر روی کامپیوتر یا سرور خودمان، می‌توانیم از دستور netstat استفاده کنیم؛ اما در صورتی که بخواهیم از باز بودن یک پورت در یک کامپیوتر یا سرور دیگر مطلع شویم، راه چیست؟ دستور netcat این امکان را به ما می‌دهد! قبل از اتصال به یه پورت خاص در یک سرور، بهتر است بدانیم کدام ‌پورت‌ها باز بوده و در حال اجرای سرویس برروی آن دستگاه ‌می‌باشد.

در این جا، ما چگونگی تعیین پورتهای باز یا دردسترس یک سرور ریموت را با استفاده از دستور ساده netcat (یا به طور اختصار nc) آموزش ‌می‌دهیم.

 

netcat (یا به طور اختصار nc) یک ابزار قدرتمند و آسان است که ‌می‌تواند برای تقریبا تمام موارد مرتبط با سوکت‌های TCP‌، UDP یا UNIX-domain استفاده گردد.

برای نصب  netcat  با توجه به توزیع لینوکس خود، دستور آن را اجرا کنید:

توزیع‌های CentOS/RHEL :

yum install nc

توزیع‌های Fedora 22+ :

dnf install nc

توزیع‌های Debian/Ubuntu :

sudo apt-get install netcat

 

ما ‌می‌توانیم از netcat برای برقراری اتصالات TCP‌، گوش دادن به پورت‌های TCP و UDP دلخواه‌، ارسال بسته‌های UDP‌، اسکن کردن پورت تحت IPv4 و IPv6 و فراتر از آن استفاده کنیم.
با استفاده از netcat‌، ‌می‌توانید باز بودن یک یا چند پورت یا طیف وسیعی از پورت‌ها را بررسی کنید. دستور زیر به ما کمک ‌می‌کند تا ببینیم که آیا پورت 22 روی هاست 192.168.1.103 باز است:

nc -zv 192.168.1.103 22

کاربرد ویژگی‌های استفاده شده در دستور فوق‌ به شرح زیر ‌می‌باشد:
    •  -z  :  این سوئیچ netcat را تنظیم ‌می‌کند تا پورت یا پورت‌های مورد نظر را بدون اینکه اطلاعاتی برای آن پورت ارسال کند، بررسی کند.
    •  -v  : حالت گفتاری (verbose) را فعال ‌می‌کند؛ در این حالت netcat تمامی اطلاعات را نمایش خواهد داد.

خروجی دستور بالا به صورت زیر می‌باشد:


از خروجی بالا می‌توان متوجه شد که پورت 22 بر روی هاست 192.168.1.103 باز می‌باشد.

 

دستور بعدی بررسی ‌می‌کند که آیا پورت‌های 80، 22 و 21 در هاست ریموت  192.168.5.10  باز هستند (‌می‌توانیم از نام میزبان مثلا: google.com نیز استفاده کنیم):

nc -zv 192.168.56.10 80 22 21

 

همچنین ‌می‌توان طیف وسیعی از پورت‌ها که باید اسکن شوند را نیز مشخص کرد؛ به عنوان مثال برای بررسی باز بودن پورت‌های 50 تا 80 بر روی هاست 192.168.1.103 از دستور زیر استفاده می‌کنیم:

nc -zv 192.168.1.103 50-80

خروجی دستور بالا به صورت زیر می‌باشد:


از خروجی دستور بالا می‌توان متوجه شد پورت‌های 53 و 80 باز می‌باشند و سایر پورت‌ها بسته هستند.

منبع:

tecmint