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 ما همهٔ آدرسهای ویژه را برچسبگذاری میکند.