آموزش بررسی پورت های اشغال در لینوکس
یکی از مشکلات رایجی که برای کاربران جدید سیستم عامل لینوکس پیش می آید این است که نمی توانند پورت های اشغال در لینوکس را بررسی کنند. به همین دلیل در صدد فراهم کردن آموزش بررسی پورت های اشغال در لینوکس بر آمدیم. در ادامه با ما همراه شوید.
پورت شبکه در لینوکس عددی است که یک طرف ارتباط بین دو سیستم را مشخص می کند. تمام دستگاههای موجود در یک شبکه از شماره های پورت استفاده می کنند تا مشخص گردد پیام باید به کدام فرآیند تحویل داده شود. به عنوان مثال در آدرس نام دامنه و آدرس IP مانند آدرس خیابان و شماره های پورت مانند شماره ی پلاک است.
شماره پورت های محبوب در لینوکس
- HTTP – TCP 80
- HTTPS – TCP 443
- POP3 – TCP 110
- SMTP – TCP 25
- SSH – TCP 22
- DNS/DOMAIN – TCP/UDP 53
از دستور cat یا فرمان grep command / egrep برای بررسی شماره پورت ها به صورت زیر استفاده کنید:
cat /etc/services grep -w 80 /etc/services egrep -w '53/(tcp|udp)' /etc/services
آموزش بررسی پورت های اشغال در لینوکس
برای انجام این کار باید مراحل زیر را دنبال کنید:
1. برنامه ترمینال را باز کنید.
2. هر یک از فرمان های زیررا تایپ کنید تا ببینید آیا پورتی در لینوکس اشغال است یا خیر.
sudo lsof -i -P -n | grep LISTEN sudo netstat -tulpn | grep LISTEN sudo netstat -tulpn | grep :443 sudo ss -tulpn | grep LISTEN sudo ss -tulpn | grep ':22'
برای درک بیشتر موضوع بهتر است به سراغ مثال برویم.
چگونه می توانید دریابید که چه فرایندی به یک پورت در لینوکس گوش می دهد؟
دستور ss یا netstat را تایپ کنید تا ببینید آیا پورت TCP 443 در لینوکس در حال استفاده است یا خیر:
sudo netstat -tulpn | grep :443 sudo ss -tulpn | grep :443
خروجی این دستور چیزی شبیه به زیر خواهد بود:
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 438/nginx -g daemo
خروجی بالا نشان می دهد که پورت 443 در حال استفاده است و توسط سرویس nginx باز شده است. اما کجا؟
برای آن که بفهمیم در کجا از این پورت استفاده شده است باید با معنی علائمی که نمایش داده می شوند، آشنا شویم:
- -t : نمایش دهنده ی سوکت / پورت TCP
- -u : نمایانگر سوکت / پورت UDP
- -l : فقط سوکت های در حال گوش دادن یعنی پورت های باز را نشان می دهد.
- -p : هم چنین نام فرآیندی که پورت / سوکت را باز کرده است را نشان می دهد.
- -n : آدرس ها و شماره ی پورت ها را در فرمت عددی به نمایش می گذارد.
نحوه ی گرفتن لیست کامل پورت های باز
این کار به سادگی امکان پذیر است. تنها کافیست دستورات زیر را اجرا نمایید:
sudo lsof -i -P -n | grep LISTEN sudo ss -tulpn sudo netstat -tulpn
خروجی :
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 500/redis-server 12 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 438/nginx -g daemon tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 407/lighttpd tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 438/nginx -g daemon tcp6 0 0 :::80 :::* LISTEN 438/nginx -g daemon udp 0 0 0.0.0.0:68 0.0.0.0:* 277/dhclient
خروجی های دیگر از دستور lsof:
در خروجی های بالا روشن است که Lighttpd پورت TCP پورت 8080 و سرور Nginx پورت TCP 80 و 443 را باز کرده است. تمامی این سرورها تحت یک کاربر با نام “www-data” اجرا می شوند.
در این نوشتار به آموزش بررسی پورت اشغال در لینوکس پرداختیم. اگر با سوالی روبرو شدید، آن را در بخش نظرات یادداشت فرمایید تا متخصصین تک کلود به شما پاسخ دهند.