شبکه مطالعه در 3 دقیقه

Localhost نامی است که کامپیوتر شما برای خودش به کار می‌برد. این نام در IPv4 به آدرس loopback یعنی 127.0.0.1 و در IPv6 به ::1 ترجمه می‌شود. ترافیکی که به آن فرستاده می‌شود هرگز از دستگاه شما خارج نمی‌شود: مستقیماً به کامپیوتر خودتان برمی‌گردد.

آدرس loopback چگونه کار می‌کند

کل محدودهٔ 127.0.0.0/8 (بیش از 16 میلیون آدرس) برای loopback رزرو شده است، هرچند تقریباً همه از 127.0.0.1 استفاده می‌کنند. سیستم‌عامل شما یک رابط شبکهٔ مجازی دارد (lo در Linux و lo0 در macOS) که بدون درگیر کردن کارت شبکه یا روتر به این آدرس‌ها پاسخ می‌دهد.

نام localhost در فایل hosts شما به این آدرس نگاشت شده است:

  • Windows: C:\Windows\System32\drivers\etc\hosts
  • macOS و Linux: /etc/hosts

localhost برای چه استفاده می‌شود

  • توسعهٔ وب. توسعه‌دهندگان پیش از انتشار سایت، آن را روی کامپیوتر خود اجرا می‌کنند و http://localhost:3000 یا http://127.0.0.1:8080 را باز می‌کنند. عدد بعد از دونقطه پورت است.
  • آزمایش نرم‌افزارهای شبکه بدون نیاز به شبکه.
  • سرویس‌های محلی: پایگاه‌های داده، رابط‌های وب چاپگرها و برخی برنامه‌ها فقط روی localhost گوش می‌دهند تا از دستگاه‌های دیگر قابل دسترسی نباشند.
  • مسدود کردن سایت‌ها: اشاره دادن یک دامنه به 127.0.0.1 در فایل hosts مانع از دسترسی کامپیوتر شما به آن می‌شود.

localhost در برابر سایر آدرس‌های شما

آدرس چیست چه کسی می‌تواند به آن دسترسی داشته باشد
127.0.0.1 / ::1 کامپیوتر خودتان فقط برنامه‌های روی همان کامپیوتر
192.168.x.x، 10.x.x.x IP خصوصی شما دستگاه‌های شبکهٔ خانگی شما
IP عمومی اتصال شما در اینترنت اینترنت، از طریق روتر شما

خطاهای رایج

  • «localhost refused to connect» (localhost اتصال را رد کرد): هیچ برنامه‌ای روی آن پورت گوش نمی‌دهد. سرور توسعه را اجرا کنید یا شمارهٔ پورت را بررسی کنید.
  • روی localhost کار می‌کند اما از دستگاه دیگر نه: سرویس به 127.0.0.1 متصل (bind) شده است. آن را به 0.0.0.0 (همهٔ رابط‌ها) متصل کنید و پورت را در فایروال مجاز کنید.
  • localhost به ::1 ترجمه می‌شود و برنامه فقط روی IPv4 گوش می‌دهد: صراحتاً از 127.0.0.1 استفاده کنید.

آیا 127.0.0.1 یک خطر امنیتی است؟

خیر. هیچ‌کس خارج از کامپیوتر شما نمی‌تواند به آن دسترسی داشته باشد. اگر کسی بگوید «127.0.0.1 را هک کن»، شوخی می‌کند: این آدرس به دستگاه خودش اشاره می‌کند.

‏127.0.0.1:8080، ‏localhost:3000 و پورت‌های دیگر

عددی که بعد از دونقطه می‌آید پورت است و مشخص می‌کند کدام برنامه روی 127.0.0.1 باید جواب بدهد. http://127.0.0.1:8080 و http://localhost:8080 یک معنی دارند.

پورت معمولاً استفاده‌کننده
3000 Node.js، React، Next.js، Ruby on Rails
5173 Vite
4200 Angular
5000 Flask، ‏.NET
8000 Django، python -m http.server
8080 Tomcat، Jenkins و وب‌سرورهای جایگزین دیگر

اگر http://127.0.0.1:8080 باز نمی‌شود، هیچ برنامه‌ای روی آن پورت منتظر اتصال نیست: اول برنامه را اجرا کنید و خروجی آن را در ترمینال ببینید؛ آدرس و پورت درست همان‌جا نوشته می‌شود. صفحه‌ای که روی 127.0.0.1 باز می‌شود فقط روی همان کامپیوتر کار می‌کند و دیگران به آن دسترسی ندارند.

سوالات متداول

0.0.0.0 چیست؟

برای یک سرور به معنای «روی همهٔ رابط‌ها گوش بده» است. به‌عنوان مقصد معتبر نیست و معمولاً مانند localhost رفتار می‌کند.

آیا می‌توانم از 127.0.0.2 استفاده کنم؟

بله. در بیشتر سیستم‌ها هر آدرسی در 127.0.0.0/8 به خود دستگاه برمی‌گردد که برای اجرای چند سرویس محلی روی یک پورت مفید است.

چرا جست‌وجوی IP می‌گوید «loopback»؟

چون 127.0.0.1 آدرس عمومی نیست و موقعیتی ندارد. جست‌وجوی IP ما همهٔ آدرس‌های ویژه را برچسب‌گذاری می‌کند.