آموزش دستور Telnet در لینوکس (با مثال‌های کاربردی)



Telnet یک پروتکل شبکه کلاینت-سرور است که به کاربران امکان می‌دهد تا به صورت ریموت (از راه دور) به یک سیستم دیگر متصل شوند و با آن تعامل کنند. این ابزار خط فرمان برای آزمایش اتصالات، مدیریت سرورها و عیب‌یابی مشکلات شبکه بسیار مفید است. اگرچه Telnet به دلیل مسائل امنیتی تا حد زیادی با پروتکل امن‌تر SSH جایگزین شده است، اما همچنان برای بررسی باز بودن پورت‌ها یک ابزار سریع و کارآمد به شمار می‌رود.

این مقاله به صورت جامع به آموزش دستور Telnet در لینوکس، از نصب و راه‌اندازی گرفته تا نحوه استفاده برای تست پورت‌ها و اتصالات، می‌پردازد. تسلط بر این دستور به ویژه برای مدیران سیستم که مسئولیت نگهداری سرورهایی مانند خرید vps را بر عهده دارند، می‌تواند بسیار کاربردی باشد.

 

چرا از Telnet استفاده کنیم؟

علیرغم قدیمی بودن، Telnet هنوز هم در موارد خاصی کاربرد دارد:

  • تست پورت: ساده‌ترین و سریع‌ترین راه برای بررسی اینکه آیا یک پورت خاص روی یک سرور ریموت باز و در حال پاسخگویی است یا خیر.
  • عیب‌یابی سرور: می‌توان از آن برای ارسال دستورات به سرورهای وب (HTTP) یا ایمیل (SMTP) و تحلیل پاسخ‌های آنها استفاده کرد.
  • اتصال به دستگاه‌های قدیمی: برخی از تجهیزات شبکه قدیمی فقط از طریق Telnet قابل مدیریت هستند.

هشدار امنیتی: پروتکل Telnet هیچ‌گونه رمزنگاری ارائه نمی‌دهد. این بدان معناست که تمام داده‌ها، از جمله نام کاربری و رمز عبور، به صورت متن ساده (Plain Text) منتقل می‌شوند و به راحتی توسط هکرها قابل شنود هستند. هرگز از Telnet برای اتصال به سیستمی در یک شبکه عمومی و غیرقابل اعتماد استفاده نکنید.

 

نحوه نصب Telnet در لینوکس

بسیاری از توزیع‌های مدرن لینوکس به طور پیش‌فرض Telnet را نصب ندارند. برای نصب آن می‌توانید از مدیر بسته توزیع خود استفاده کنید.

 

نصب در اوبونتو و دبیان

در سیستم‌های مبتنی بر دبیان مانند اوبونتو، دستورات زیر را در ترمینال وارد کنید:

sudo apt update
sudo apt install telnetd -y

 

نصب در AlmaLinux و RHEL

در توزیع‌های مبتنی بر RHEL مانند AlmaLinux، از مدیر بسته `dnf` استفاده کنید:

sudo dnf update
sudo dnf install telnet telnet-server -y

 

فعال‌سازی سرویس Telnet

پس از نصب، باید سرویس Telnet را فعال و راه‌اندازی کنید:

sudo systemctl enable telnet.socket
sudo systemctl start telnet.socket

برای بررسی وضعیت سرویس و اطمینان از فعال بودن آن، از دستور زیر استفاده کنید:

sudo systemctl status telnet.socket

 

سینتکس و استفاده از دستور Telnet

ساختار اصلی دستور Telnet بسیار ساده است:

telnet [hostname or IP address] [port]
  • hostname or IP address: آدرس دامنه یا آدرس IP سروری است که می‌خواهید به آن متصل شوید.
  • port: شماره پورت سرویس مورد نظر است. این بخش اختیاری است و اگر مشخص نشود، Telnet به طور پیش‌فرض از پورت ۲۳ استفاده می‌کند.

 

مثال ۱: اتصال به یک سرور

برای برقراری یک جلسه Telnet با یک سرور، کافی است نام هاست یا IP آن را وارد کنید. برای مثال:

telnet test.com

پس از اتصال، سرور از شما نام کاربری و رمز عبور می‌خواهد. به یاد داشته باشید که این اطلاعات به صورت رمزنگاری نشده ارسال می‌شوند.

 

مثال ۲: تست باز بودن پورت

یکی از اصلی‌ترین کاربردهای Telnet، بررسی وضعیت یک پورت روی یک سرور ریموت است. این کار به خصوص زمانی مفید است که می‌خواهید از در دسترس بودن یک سرویس در موقعیت جغرافیایی خاص، مثلا روی یک vps فنلاند، اطمینان حاصل کنید.

برای مثال، برای بررسی اینکه آیا وب‌سرور روی دامنه `test.com` روی پورت ۸۰ (HTTP) فعال است یا خیر، از دستور زیر استفاده کنید:

telnet test.com 80

اگر اتصال موفقیت‌آمیز باشد، خروجی چیزی شبیه به این خواهد بود:

Trying 93.184.216.34...
Connected to test.com.
Escape character is '^]'.

این خروجی به این معناست که پورت باز است. برای خروج، کلیدهای `Ctrl + ]` را فشار دهید و سپس `quit` را تایپ کنید.

اگر پورت بسته باشد یا فایروال آن را مسدود کرده باشد، با پیامی مانند `Connection timed out` یا `Connection refused` مواجه خواهید شد.

 

مثال ۳: ارسال درخواست به وب‌سرور

شما می‌توانید از Telnet برای ارسال دستی درخواست‌های HTTP به یک وب‌سرور و مشاهده پاسخ خام آن استفاده کنید. این کار برای درک بهتر نحوه عملکرد پروتکل HTTP و عیب‌یابی سرور مفید است.

  1. با دستور `telnet test.com 80` به وب‌سرور متصل شوید.
  2. پس از برقراری اتصال، دستور زیر را تایپ کرده و دو بار کلید Enter را فشار دهید:
    GET / HTTP/1.1
    Host: test.com

در پاسخ، سرور کدهای وضعیت HTTP و محتوای HTML صفحه اصلی را برای شما ارسال می‌کند.

 

جایگزین امن: SSH

همان‌طور که اشاره شد، Telnet به دلیل عدم رمزنگاری ناامن است. جایگزین مدرن و امن آن، پروتکل SSH (Secure Shell) است. SSH تمام ارتباطات بین کلاینت و سرور را رمزنگاری می‌کند و یک تونل امن برای انتقال داده‌ها فراهم می‌آورد. برای هرگونه مدیریت ریموت سرور، استفاده از SSH به شدت توصیه می‌شود.