127.0.0.1:49342: دليل عنوان IP المحلي، والمنفذ، وتصحيح الأخطاء

127.0.0.1:49342: دليل عنوان IP المحلي، والمنفذ، وتصحيح الأخطاء

ربما نقرتَ على شيء ما. ربما مرّت نافذة طرفية أمامك. ربما لفت انتباهك ملف سجل. أيًا كان السبب، ظهر هذا النص: `127.0.0.1:49342`. انتقل متصفحك إلى صفحة غير موجودة على الإنترنت. رصدتها أدوات المطورين. ظهرت نافذة تسجيل دخول ثم اختفت. لم يظهر أي عطل واضح. مع ذلك، لا يزال هناك شيء غير طبيعي.

لا تقلق، لا يوجد أي عطل. هذا العنوان الصغير هو في الواقع من أكثر الأشياء شيوعًا التي ستراها أثناء استخدامك للحاسوب، وبمجرد فهمك لجزأيه، ستقرأ أي سلسلة نصية لاحقة `127.0.0.1:` كجملة عادية. عنوان IP على اليسار هو عنوان الاسترجاع العالمي، وهو نفسه على جميع الأجهزة التي تستخدمها. أما المنفذ على اليمين فهو منفذ مخصص خصصه نظام التشغيل لخدمة محلية أو تطبيق ويب أو خدمة شبكة لإجراء اتصال قصير بين البرامج التي تعمل على جهازك. لا يتصل أي منهما بالشبكة الخارجية، بل يبقى كله على جهازك.

إليكم الخطة. شرحٌ مُفصّل ودليلٌ لحلّ المشكلات، مُدمجان معًا. أصل العنوان تاريخيًا. ما يُمثّله رقم المنفذ فعليًا. لماذا لا يُعدّ المنفذ 49342، تحديدًا، أمرًا استثنائيًا. متى يراه مُستخدم ويندوز مُقارنةً بمُستخدم لينكس أو ماك أو إس. كيف يبدو الوضع الأمني في عام 2026 تحديدًا. كيف يستخدم مُطوّرو العملات الرقمية النمط نفسه في بيئة تطوير Web3 مع Hardhat وAnvil وGanache وBitcoin Core. اقرأه من البداية إلى النهاية، أو انتقل مُباشرةً إلى القسم الذي يُناسب موضوع بحثك.

ما هو عنوان الاسترجاع 127.0.0.1: شرح عنوان الاسترجاع

لنبدأ بنصف عنوان IP. 127.0.0.1 أقدم من معظم ما تستخدمه على الإنترنت هذه الأيام. في أكتوبر 1989، قبل ظهور الإنترنت التجاري بفترة طويلة، أصدرت فرقة عمل هندسة الإنترنت (IETF) معيار RFC 1122. تضمن القسم 3.2.1.3 أحد أكثر قواعد الشبكات وضوحًا على الإطلاق: "يجب ألا تظهر عناوين بهذا الشكل خارج نطاق المضيف". يطبق نظام تشغيل هاتفك هذا المعيار اليوم، وكذلك جهاز التوجيه المنزلي. جميع أنظمة التشغيل التي صدرت منذ ذلك الحين تلتزم به ضمنيًا.

يُسبب الحجم الهائل مشكلة. ينطبق هذا على 16,777,216 عنوانًا. جميعها. ستة عشر مليون عنوان محجوزة بحيث يُمكن لأحدها، 127.0.0.1، أن يُشير بدقة إلى "هذا الجهاز، هنا تحديدًا" في أي مكان على وجه الأرض. هل هذا تبذير؟ نعم، لطالما كانت الشكاوى عالية لعقود. وصل نطاق عناوين IPv4 العالمي التابع لهيئة IANA إلى الصفر في 3 فبراير 2011. ووصل نطاق عناوين ARIN إلى الصفر في 24 سبتمبر 2015. وقامت RIPE NCC بتوزيع آخر كتلة /22 في 25 نوفمبر 2019. وقد تم تداول مسودة IETF بعنوان `draft-schoen-intarea-unicast-127` تُشير إلى إمكانية إعادة استخدام معظم نطاق 127 للبث الأحادي. لا أحد يُريد الخوض في هذا الأمر. فالكثير من البرامج الحالية تفترض أن نطاق 127 لن يتغير أبدًا.

إحدى المفاجآت التي تُثير دهشة المستخدمين الجدد: أن الحزمة لا تصل أبدًا إلى بطاقة الشبكة الفعلية. بل إنها لا تقترب منها حتى. أي حزمة مُوجّهة إلى أي وجهة تبدأ بـ 127.xxx يتم التقاطها بواسطة بروتوكول TCP/IP الخاص بنظام التشغيل في الطبقة الثالثة، ثم تُمرّر عبر واجهة افتراضية (يُطلق عليها في لينكس وماك أو إس اسم "lo"). مع ذلك، لا يزال نظام التشغيل يقوم بالعمل الفعلي - بناء مقطع TCP، وحساب المجموع الاختباري، وتتبع مسار الاستقبال. هذا عبء إضافي حقيقي، وليس معدومًا. لكن لا يوجد مُبدّل على شبكتك المحلية يرى هذه البيانات. ولا جهاز توجيه يراها. ولا حتى شبكة الإنترنت الرئيسية تراها.

كلمة "localhost" هي مجرد اسم مستعار سهل الاستخدام مُخزّن في ملف نصي عادي يمكنك فتحه الآن. على أنظمة Linux و macOS: `/etc/hosts`. على نظام Windows: `C:\Windows\System32\drivers\etc\hosts`. يقوم مُحلِّل أسماء النطاقات بالوصول إلى هذا الملف قبل الاتصال بأي خادم DNS، ولهذا السبب يتم حل `localhost` بشكل صحيح على متن طائرة مع إيقاف تشغيل شبكة Wi-Fi. يوفر IPv6 إصداره الخاص، `::1/128`، المُحدد في RFC 4291 في فبراير 2006. من المشاكل الشائعة يوم الجمعة: يقوم متصفح حديث بحل `localhost` كـ `::1` أولاً، لكن تطبيق Python يستخدم فقط 127.0.0.1. منافذ مختلفة، لا يوجد تقاطع، فشل صامت. يُعطّل هذا الأمر سير عمل شخص ما كل أسبوع في مكان ما.

ما هو 127.0.0.1:49342

لماذا ترى المنفذ 49342: المنافذ المؤقتة ونطاقات IANA

والآن ننتقل إلى الجزء الثاني. تُربك أرقام المنافذ الناس أكثر من عناوين IP، ولسبب وجيه. يقوم سجل منافذ بروتوكولات النقل وأسماء الخدمات التابع لهيئة IANA بتقسيم المساحة الكاملة ذات 16 بت (من 0 إلى 65535) إلى ثلاث مجموعات، وتحديد المجموعة التي يقع فيها الرقم 49342 هو جوهر الموضوع.

يتراوح أرقام غاية
النظام (المعروف) 0–1023 الخدمات القياسية (HTTP 80، HTTPS 443، SSH 22، SMTP 25). يلزم وجود صلاحيات المسؤول للربط.
المستخدم (المسجل) 1024–49151 الخدمات المخصصة للبائعين (PostgreSQL 5432، MySQL 3306، RDP 3389)
ديناميكي / خاص / مؤقت 49152–65535 تخصيصات قصيرة الأجل؛ لا يُسمح بحجز الخدمات

يقع المنفذ 49342 ضمن النطاق الديناميكي. لا يوجد أي شيء مسجل عليه، ولن يكون هناك أي شيء مسجل عليه مستقبلاً، لأن هيئة IANA ترفض تخصيص خدمات في هذا النطاق تحديدًا حتى تتمكن أنظمة التشغيل من توزيع أرقام المنافذ بحرية للاستخدام المؤقت. المنفذ المؤقت هو منفذ يتم تخصيصه ديناميكيًا دون أن يطلبه التطبيق برقم منفذ محدد. بل طلب من نظام التشغيل أي منفذ متاح، فهو يحتاجه فقط لهذه الجلسة. أعاد نظام التشغيل المنفذ 49342، وقام التطبيق بربط مقبس استماع، وحصل أي تدفق بيانات يحتاج إلى عنوان ومنفذ لفترة قصيرة على واحد. غالبًا ما يُستخدم المنفذ 49342 لخادم محلي مؤقت باستخدام ربط مخصص من هذا النوع.

يختلف النطاق المؤقت الافتراضي باختلاف نظام التشغيل.

نظام التشغيل النطاق المؤقت الافتراضي مصدر
لينكس 32768–60999 `/proc/sys/net/ipv4/ip_local_port_range`، وثائق النواة
ويندوز (فيستا / سيرفر 2008+) 49152–65535 مايكروسوفت للتعلم
نظام التشغيل macOS (داروين / بي إس دي) 49152–65535 `sysctl net.inet.ip.portrange.first/hifirst`
فري بي إس دي 49152–65535 الإعدادات الافتراضية لـ sysctl

في نظامي التشغيل ويندوز وماك أو إس، يقع المنفذ 49342 ضمن النطاق الافتراضي. ومن شبه المؤكد أن مُخصِّص الذاكرة في نظام التشغيل هو من خصصه. أما في نظام لينكس، فالوضع مختلف؛ إذ يقع المنفذ 49342 فوق النطاق الافتراضي من 32768 إلى 60999، لذا اختاره تطبيقٌ طلب من النواة ربط عنوان IP 127.0.0.1 بالعنوان 0، وحصل على أي منفذ متاح. تنصّ المواصفة RFC 6056، الصادرة عن فريق هندسة الإنترنت (IETF) في يناير 2011، على توجيه بروتوكولات الشبكة لاختيار المنافذ المؤقتة عشوائيًا ضمن النطاق من 1024 إلى 65535 لأسباب أمنية. فالمنافذ التي يمكن التنبؤ بها تُسهِّل اختراق تدفقات البيانات. ولهذا السبب، قد يستخدم خادم التطوير نفسه المنفذ 49342 اليوم، ثم المنفذ 54871 غدًا، ثم المنفذ 33200 بعد غد.

أين يظهر العنوان 127.0.0.1:49342 على جهازك؟

متى يظهر هذا في الواقع خلال يوم عادي؟ قد يكون الخادم المحلي الذي يعمل على المنفذ 49342 أي شيء تقريبًا من قائمة طويلة من أدوات المطورين التي يختبرون فيها التطبيقات باستخدام مقبس محلي. يوضح الجدول أدناه الحالات الشائعة التي تظهر فيها منافذ مثل 49342، حيث تعمل الخدمات وتستقبل الاتصالات على هذا المنفذ في كل مرة.

برمجة ميناء نموذجي ما تراه
تسجيل الدخول عبر واجهة سطر الأوامر OAuth (gh، aws، gcloud) عشوائي زائل يفتح المتصفح 127.0.0.1، ويؤكد، ثم يغلق
دفتر ملاحظات جوبيتر 8888، ثم عابر تستخدم مقابس النواة منافذ عشوائية في نطاق 49152
خادم تطوير Vite 5173 إعادة تحميل الواجهة الأمامية الساخنة
React / webpack-dev-server 3000 نفس العائلة
تصحيح الأخطاء في VS Code / JetBrains عشوائي زائل محول تصحيح الأخطاء يربط خادمًا محليًا
تطبيقات Electron (Slack، Discord، Spotify) عشوائي زائل جسر IPC داخلي
عقدة الخوذة الصلبة 8545 إيثيريوم JSON-RPC
سندان (مسبك) 8545 إيثيريوم JSON-RPC
غاناش واجهة المستخدم الرسومية 7545 سلسلة اختبار إيثيريوم
اختبار تسجيل Bitcoin Core 18443 RPC منذ الإصدار 0.16

ما هي الحالة الوحيدة التي يظهر فيها العنوان `127.0.0.1:49342` حرفيًا في شريط عنوان المتصفح؟ غالبًا ما يكون ذلك عبر بروتوكول OAuth. صدرت وثيقة RFC 8252 الصادرة عن فريق هندسة الإنترنت (IETF) بعنوان "OAuth 2.0 للتطبيقات الأصلية" في أكتوبر 2017، وتُلزم التطبيقات الأصلية باستخدام مسار إعادة التوجيه المحلي (loopback redirect flow)، مع قاعدة أساسية: يجب على خادم المصادقة "السماح بأي رقم منفذ". شغّل الأمر `gh auth login` أو `gcloud auth login`. يقوم سطر الأوامر بتشغيل خادم HTTP صغير على منفذ مؤقت عشوائي، ويفتح المتصفح على موفر الهوية، ويستقبل رد الاتصال على عنوان إعادة التوجيه المحلي، ثم يُغلق نفسه. سترى أحد عناوين المضيف المحلي، مثل 127.0.0.1:49342، يومض لثانيتين تقريبًا قبل أن يختفي. ليس هذا خطأً برمجيًا، ولا أداة تتبع، ولا عملية احتيال. إنها مجرد عملية مصافحة قصيرة جدًا، محلية بالكامل، ولا تصل أبدًا إلى الشبكة الخارجية.

استكشاف أخطاء وتعارضات المنافذ في 127.0.0.1:49342 وإصلاحها

بحسب تجربتي، تأتي مشاكل الخادم المحلي بخمسة أنواع. أي شيء يدفعك للبحث في الساعة الحادية عشرة مساءً يندرج ضمن أحد هذه الأنواع بطريقة أو بأخرى.

المنفذ قيد الاستخدام بالفعل. يُصدر Node رسالة خطأ `EADDRINUSE`. يُظهر لك Python رسالة خطأ `OSError: [Errno 98] Address already in use`، وهي رسالة مزعجة. أما Windows فيُظهر فقط رسالة `WinSock 10048` ثم يُغلق. في كل الحالات، يبقى الواقع كما هو: عملية أخرى على جهازك استولت على المنفذ 49342 أولاً. مهمتك هي العثور عليها، وإيقافها، واستعادة المنفذ.

  • على نظام لينكس: `ss -tulpn | grep :49342`، أو استخدم الأمر القديم `sudo lsof -i :49342`
  • على نظام ماك: `lsof -nP -iTCP:49342 -sTCP:LISTEN`
  • في نظام ويندوز باستخدام PowerShell: `netstat -ano | findstr :49342`، ثم `tasklist /fi "PID eq "` لتحويل معرّف العملية (PID) إلى اسم برنامج.

الخادم يعمل، لكن لا يمكن لأي شيء الاتصال. لقد واجهت هذه المشكلة أكثر مما تتذكر. يبدو أن بروتوكولي IPv4 وIPv6 قد تداخلا دون علمك. ربط خادمك نفسه بالعنوان 127.0.0.1. قام متصفحك بتحليل `localhost` إلى `::1` دون أي سبب واضح. إنهما منفذان مختلفان، لذا من الطبيعي ألا يتم الاتصال. يمكنك حل المشكلة بربط كلا النوعين من المنافذ في آن واحد (الاستماع على `::` يساعد في التقاط عناوين IPv4 المُرتبطة في معظم أنظمة البروتوكولات أيضًا) أو ببساطة اكتب 127.0.0.1 مباشرةً في عنوان URL.

تُسبب شبكات VPN مشاكل في الاتصال بالشبكة المحلية. ويُعدّ Cloudflare WARP المُسبب الرئيسي لهذه المشكلة. حتى أن Cloudflare نفسها تُقرّ بذلك في صفحة توثيق القيود المعروفة: ففي نظام macOS تحديدًا، قد يؤدي فصل WARP إلى حذف مسار 127.0.0.1. إذا انقطع اتصال جهازك المحلي مباشرةً بعد تشغيل VPN، فمن المُرجّح أن يكون هذا هو السبب. أعد الاتصال بـ WARP، أو أعد المسار يدويًا باستخدام الأمر `sudo ifconfig lo0 127.0.0.1 alias`. لا تُسبب Proton VPN وMullvad وNordVPN هذه المشكلة عادةً. أما برامج مكافحة الفيروسات وبرامج الكشف والاستجابة لنقاط النهاية (EDR) المُخصصة للمؤسسات، فالوضع مُختلف؛ إذ يقوم بعضها باعتراض حركة مرور الشبكة المحلية وتوجيهها بطرق مُعقّدة.

يتذكر HSTS اختبارات HTTPS التي نسيتها. قبل أشهر، اختبرتَ شهادة موقعة ذاتيًا على `localhost`. قام Chrome كعادته بتخزين رأس HSTS مؤقتًا. الآن، كل طلب `http://localhost` عادي يُعاد توجيهه تلقائيًا إلى HTTPS. يا له من أمر مُرهق لتصحيح الأخطاء! الحل في دقيقتين: افتح `chrome://net-internals/#hsts` واحذف الإدخال.

قواعد جدار الحماية. يسمح بروتوكول Loopback بتجاوز معظم جدران الحماية افتراضيًا. معظمها. تقوم بعض أنظمة تشغيل أجهزة الكمبيوتر المحمولة الخاصة بالمؤسسات بتصفية localhost عمدًا كجزء من إجراءات مكافحة البرامج الضارة، وتكتشف ذلك في نهاية يوم خميس طويل. تُعد قواعد Windows Defender Firewall المتقدمة الواردة هي المكان المناسب للتحقق. على نظام Linux، استخدم الأمر `sudo ufw status verbose`. إذا كان هناك منفذٌ ما يحتاج إلى الفتح فعلاً، فاسمح فقط بالمنفذ المحدد المعني؛ لا تقم بتعطيل جدار الحماية بالكامل.

هناك عادة واحدة تُنقذني في كل مرة. قبل تعديل أي قاعدة أو مسار في جدار الحماية، شغّل الأمر `lsof` أو `netstat`. في أغلب الأحيان، يكون السبب عملية عالقة تُبقي المنفذ مُستخدماً منذ تشغيل تجريبي تعطل في وقت سابق من اليوم. استخدم الأمر `kill -9` لحذف مُعرّف العملية (PID). ستُحل المشكلة في ثوانٍ.

إعداد تكوين الخادم المحلي وتكوين الخادم للاستخدام التطويري

هل تُفضّل بناء البرامج بدلاً من تصحيح الأخطاء؟ تعلّم بعض عادات تهيئة الخوادم وستوفر على نفسك الكثير من الوقت. الأمر بسيط للغاية. نحن نسعى وراء شيء عادي: اختبار موثوق وتصحيح الأخطاء عبر خدمات شبكية متعددة وخدمات مختلفة على جهاز كمبيوتر محمول واحد، هذا كل ما في الأمر.

القاعدة الأولى، وهي القاعدة المملة: اربط الخادم بـ `127.0.0.1`، وليس `0.0.0.0`. إذا استمعت على `0.0.0.0`، فسيعلن خادم الويب الخاص بك عن نفسه فجأةً عبر جميع واجهات الشبكة التي تملكها. بمعنى آخر: سيجده أي شخص على الطاولة المجاورة في شبكة الواي فاي بالمقهى. أما إذا ربطته بـ 127.0.0.1، فلن يصل إليه إلا ما هو موجود بالفعل على جهازك. تقبل دوال مثل `http.server` في بايثون، و`express.listen()` في نود، و`http.ListenAndServe` في جو، جميعها عنوان IP حرفيًا. ما عليك سوى كتابته.

القاعدة الثانية: عندما لا يهمك المنفذ، لا تختره. مرر المنفذ 0 إلى المستمع (`server.listen(0)` في Node.js، و`bind(('127.0.0.1', 0))` في Python)، وسيقوم النظام بإعادة أي منفذ متاح في تلك اللحظة. استدعِ `getsockname()` لاحقًا لمعرفة المنفذ الذي حصلت عليه، ثم مرره إلى المكون الذي يحتاج إلى عنوان URL. في الواقع، كل واجهة سطر أوامر OAuth وكل محول تصحيح أخطاء استخدمته من قبل يقوم بذلك تمامًا.

القاعدة الثالثة: استخدم متغيرات البيئة، وليس المنافذ الثابتة. استخرج قيمة `PORT` من متغيرات البيئة، واستخدم قيمة افتراضية مناسبة في حال عدم وجودها. يعمل نفس البرنامج على بيئة التطوير على المنفذ 5173 (127.0.0.1) وبيئة الإنتاج خلف خادم وكيل عكسي على المنفذ 443. طبّق نفس النمط على سلاسل قواعد البيانات، ومفاتيح واجهة برمجة التطبيقات، وكل شيء آخر. وثيقة "تطبيقات العوامل الاثني عشر" أقدم من بعض زملائك، لكنها لا تزال الطريقة الأقل تكلفة لتجنب انقطاع الخدمة.

القاعدة الرابعة: لم يعد استخدام HTTPS على الخادم المحلي مشكلة. يمنح كل من متصفحي Chrome وFirefox حالة "السياق الآمن" لـ `localhost` و`127.0.0.1` لمعظم الميزات الآن، حتى بدون شهادة حقيقية. هل ما زالت مكتبة معينة ترفض شهادة موقعة ذاتيًا؟ استخدم `mkcert`، فهي لا تزال أسهل أداة لإصدار الشهادات المحلية. تتيح لك الأدوات المدمجة مثل `http.server` في Python ووحدة `net` في Node.js إعداد خادم محلي في خمسة أسطر تقريبًا أثناء التطوير المحلي، مما يسمح للمطورين باختبار تطبيق الويب تحت ضغط واقعي من خلال إعادة استخدام نفس البرامج النصية لاختبارات التكامل حيث يكفي أن تتواصل الخدمات عبر حلقة الاسترجاع.

القاعدة الأخيرة، وهي الأهم في الواقع: بيئة الإنتاج ليست محلية. انتهى الكلام. جهازك المحلي هو حدود الثقة، بينما حاوية الإنتاج ليست كذلك. لا تترك نقاط نهاية التصحيح تعمل على 127.0.0.1 داخل حاوية إنتاج، لأن العمليات الأخرى في نفس الحاوية تصل إليها منذ اليوم الأول، وبعد ثغرة أمنية واحدة أثناء التشغيل، يمكن للمهاجم الدخول بسهولة. استخدم حركة مرور localhost فقط في بيئات التطوير، وليس في أي مكان آخر. وعندما ينتقل أي واجهة برمجة تطبيقات داخلية تستخدم هذا المنفذ إلى بيئة مشتركة أو بيئات إنتاج، فعّل المصادقة الحقيقية فورًا. لا تقبل بعبارات مثل "سنصلحها بعد الإطلاق". هذا ما كانت تفعله الشركة السابقة.

ما هو 127.0.0.1:49342

استخدام المنفذ 49342 بأمان: الأمان على عنوان الاسترجاع

يبدو موقع Localhost خاصًا. وهو كذلك في الغالب. إلى أن يصبح فجأةً غير ذلك.

هذا هو المأزق الذي يواجهه الجميع في النهاية. صحيح أن المهاجمين الخارجيين لا يستطيعون الاتصال مباشرةً بـ 127.0.0.1، لكن بإمكانهم بالتأكيد خداع متصفحك ، أو أي تطبيق موثوق على جهازك، ليقوم بالاتصال نيابةً عنهم. يُطلق على هذا النوع من الهجمات اسم إعادة توجيه نظام أسماء النطاقات (DNS). وقد بدأ هذا النوع من الهجمات يُؤثر على خدمات المضيف المحلي منذ زمنٍ بعيد، حتى قبل أن يبدأ معظم من يقرأ هذا الكلام بكتابة البرامج.

لا يزال خبراء العملات الرقمية يستشهدون بمثال MyEtherWallet في 24 أبريل 2018. فقد نفّذ المهاجمون ثغرة BGP ضدّ خدمة Route 53 التابعة لشركة أمازون، وأعادوا توجيه نظام أسماء النطاقات (DNS) لموقع myetherwallet.com، ونشروا نسخةً مُقلّدةً من عملية التصيّد الاحتيالي، والتي بقيت فعّالةً لفترةٍ كافيةٍ لسحب حوالي 215 إيثيريوم (ما يُعادل 152,000 إلى 160,000 دولار أمريكي تقريبًا، بحسب التوقيت المُعتمد، وفقًا لتقارير The Register وجمعية الإنترنت). أعلم أن هذه ليست ثغرةً محليةً بالمعنى الدقيق، لكنها كانت نقطة التحوّل التي توقّف عندها مجتمع العملات الرقمية عن التظاهر بأنّ نموذج المصدر في المتصفح يُشكّل حدًّا أمنيًّا حقيقيًّا. فجأةً، شعر كلّ جسر محفظة محلية يستمع بهدوء عبر منفذ loopback بأنه مكشوف.

جاء ردّ متصفح كروم تحت مسمى "الوصول إلى الشبكة الخاصة"، والذي كان يُعرف سابقًا باسم CORS-RFC1918 في المسودات. منذ مارس 2024، يُرسل المتصفح الآن طلب CORS مسبقًا يحمل `Access-Control-Request-Private-Network: true` قبل السماح لأي موقع ويب عام بالوصول إلى عنوان خاص أو عنوان محلي. يجب أن يُجيب خادمك المحلي بـ `Access-Control-Allow-Private-Network: true` لتمرير الطلب. سيتم تطبيق هذا الإجراء بالكامل في إصدارات كروم من 123 إلى 130. لذا، إذا كنت تُشغّل خادم تطوير على العنوان 127.0.0.1:49342 وتتوقع وصول صفحة عامة إليه أثناء اختبارات التكامل، فقم بتعيين هذا العنوان. وإلا، سيتم تجاهل الطلب دون إشعار.

هناك ثغرتان أمنيتان في Electron من عام 2025 تستحقان التنويه. الأولى هي CVE-2025-10585، وهي ثغرة في V8 تتعلق بنوع البيانات، وقد أُضيفت إلى قائمة الثغرات الأمنية المعروفة والمستغلة التابعة لوكالة الأمن السيبراني وأمن البنية التحتية (CISA) في 23 سبتمبر 2025. أما الثانية فهي CVE-2025-55305، وهي ثغرة أمنية تسمح بتجاوز سلامة الكود من خلال التلاعب بلقطات ذاكرة V8، وقد تم الكشف عنها في نفس الفترة تقريبًا. يُغلف Electron بيئة Chromium، ويحتوي حاسوبك المحمول على العديد من تطبيقات Electron (مثل Slack وVS Code وDiscord وNotion وTeams، وربما غيرها). يُعرّض العديد منها خدمات محلية على مستوى الشبكة المحلية. لذا، سارع بتحديث أنظمتك. ويرجى عدم إنشاء أي نقطة نهاية RPC على العنوان 127.0.0.1 بدون رمز مصادقة إذا كانت هذه النقطة قادرة على قراءة المفاتيح أو توقيع المعاملات أو التعامل مع أي نوع من الأموال.

كيف يستخدم مطورو العملات الرقمية Localhost في Hardhat و Anvil و Ganache

تطوير Web3 عبارة عن سلسلة لا تنتهي من عناوين الشبكة 127.0.0.1، سواءً كان تركيزك على نشر العقود، أو اختبار البروتوكولات، أو مجرد تطوير مواقع الويب اليومية على شبكة محلية. يوجد حاليًا مجموعة صغيرة من العُقد المحلية تعمل على المضيف المحلي (localhost) على حاسوبك المحمول (حتى لو نسيت نصفها تقريبًا). لكل عقدة قواعدها الخاصة بالخادم والمنفذ. تُعرّض كل عقدة عنوان IP ومنفذًا مختلفين للعملاء للاتصال بهما، وعادةً ما يستخدمان منفذًا محددًا افتراضيًا للأداة.

ملخص سريع. تستخدم شبكة Hardhat من مؤسسة Nomic العنوان `http://127.0.0.1:8545` مع مُعرّف السلسلة 31337 كعنوان افتراضي. يستخدم برنامج Anvil من Foundry نفس العنوان والمنفذ، ويمكن ضبطهما عبر `--port` في حال وجود مجموعتي اختبار مفتوحتين تتعارضان. يستخدم برنامج Ganache GUI العنوان `127.0.0.1:7545` مع مُعرّف الشبكة 5777، بينما يستخدم برنامج سطر الأوامر الخاص به نفس مُعرّف Hardhat 8545. في الوقت نفسه، يُشغّل وضع regtest في Bitcoin Core بروتوكول JSON-RPC على العنوان `127.0.0.1:18443`، وهو تغيير أُضيف في الإصدار 0.16 عبر طلب السحب رقم 10825، بعد أن أشار أحدهم إلى تعارض مع مُعرّف الشبكة 18332 في شبكة الاختبار.

يتصل MetaMask بأي منها حرفيًا. أضف شبكة مخصصة باستخدام عنوان URL الخاص بـ RPC المحلي، وستكون جاهزًا. يعمل عنوان IP 127.0.0.1 كجسر بسيط بين واجهة محفظتك المستندة إلى المتصفح وأي سلسلة كتل محاكاة تعمل على حاسوبك المحمول في تلك اللحظة. عندما ترى `127.0.0.1:` في تتبع مكدس Web3، فإنه غالبًا ما يكون أحد أمرين: إما أن محول تصحيح الأخطاء الخاص ببيئة التطوير المتكاملة (IDE) يتصل بالعقدة، أو أن العقدة نفسها تُنشئ نقطة نهاية WebSocket على منفذ عشوائي بجوار RPC الثابت الخاص بها.

تتكرر هذه الآلية في عمليات دمج أنظمة الدفع. هل تقوم بإنشاء نظام دفع بالعملات المشفرة مدعوم من Plisio؟ ستضطر في النهاية إلى تشغيل حزمة تطوير البرامج (SDK) محليًا باستخدام مستمع Flask أو Express صغير على العنوان `127.0.0.1:3000/plisio/callback`. لا يمكن لخطاف بوابة الدفع الوصول إلى حاسوبك المحمول مباشرةً من الإنترنت العام، لذا يستخدم الاختبار المحلي نفقًا (مثل ngrok أو Cloudflare Tunnel أو Tailscale Funnel) لعرض المنفذ. هذا منفذ محدد على رقم منفذ محدد تختاره أنت، أيها التاجر، وتتحكم فيه. تتضمن حزم تطوير البرامج (SDK) الخاصة بـ Plisio، والمتوافقة مع PHP وPython وLaravel وNode.js، دالة مساعدة `verifyCallbackData` التي تعيد حساب خوارزمية HMAC-SHA1 للبيانات المرسلة مقابل المفتاح السري للمتجر. يتم إجراء هذا الفحص على كل رد نداء عند وصوله إلى المستمع المحلي. نفس عنوان الاسترجاع، نفس المهمة، والتوقيع الحقيقي مرفق.

انظر إلى الصورة الأوسع للحظة. النمط موجود في كل مكان: خدمات الدفع، وOAuth، وخدمات شبكة Web3 المستخدمة في التطوير تبدو جميعها متشابهة من الداخل - خادم على المنفذ 49342 أو أي منفذ ديناميكي آخر، واتصالات حقيقية على المنفذ المحدد، ويعمل على المضيف المحلي طوال الوقت.

فحص سريع للمضيف المحلي والمنفذ لأي نظام تشغيل

ملخص مختصر. احتفظ به مفتوحًا في نافذة طرفية. ستلجأ إليه أكثر مما تتخيل.

تخيل جهاز لينكس، أي توزيعة. يُجيب الأمر `sudo ss -tulpn | grep :49342` على سؤال "من يستخدم المنفذ 49342؟". إذا حذفتَ الأمر grep، فستحصل على جميع منافذ الاستماع المفتوحة على الجهاز. هل أنت مهتم بمعرفة الحد الأقصى الديناميكي للمنافذ في النواة؟ استخدم الأمر `cat /proc/sys/net/ipv4/ip_local_port_range`. إذا كنت تريد فقط التأكد من أن عنوان IP المحلي (loopback) يعمل، فاستخدم الأمر `ip addr show lo`. وإذا اختفى `lo` من الناتج، فهذا يعني أنك وجدت مشكلة أكبر بكثير من مجرد منفذ.

يعمل نظام ماك بشكل مشابه، ولكن بأدوات مختلفة لأنه يعمل ضمن بيئة BSD. يعرض الأمر `lsof -nP -iTCP:49342 -sTCP:LISTEN` العملية التي تستخدم المنفذ. احذف النقطتين والرقم لعرض جميع المستمعين. استخدم الأمر `sudo` قبل الأمر `sudo` عند الحاجة إلى رؤية منافذ المستخدمين الآخرين. يوجد النطاق المؤقت في `sysctl net.inet.ip.portrange.first net.inet.ip.portrange.hifirst`. يُسمى Loopback هنا `lo0` (وليس `lo`)، وهذا الخطأ الطفيف في التسمية قد يُربك المستخدمين مرة واحدة فقط قبل أن يعتادوا عليه. يمكنك التحقق من ذلك باستخدام الأمر `ifconfig lo0`.

يُغيّر نظام ويندوز لغة البرمجة تمامًا. افتح PowerShell كمسؤول. يُخرج الأمر `netstat -ano | findstr :49342` مُعرّف العملية (PID). استخدم هذا المُعرّف في الأمر `tasklist /fi "PID eq "` لتحويل الرقم إلى اسم التطبيق. أما بالنسبة للنطاق الديناميكي، فاستخدم الأمر `netsh int ipv4 show dynamicport tcp`. هل تحتاج إلى تقليص النطاق لأن تطبيقًا قديمًا مُصرًا على استخدام منفذ tcp منخفض؟ استخدم الأمر `netsh int ipv4 set dynamic tcp start=49152 num=16384` لتقليصه.

اجعل هذه التعليمات جزءًا من ذاكرتك، وستتقلص مشاكل جهازك المحلي إلى حلول لا تستغرق أكثر من خمس دقائق، وربما أقل. جرب هذا الأمر: شغّل الأمر `lsof -nP -iTCP -sTCP:LISTEN | grep 127.0.0.1` على حاسوبك المحمول. ستجد أن قائمة التمرير أطول مما تتوقع. علامات تبويب المتصفح في الخلفية. عدد من خوادم لغات التحرير، غالبًا أكثر من واحد. نظام أسماء النطاقات الداخلي لـ Docker. جسور الاتصال بين العمليات (IPC) الخاصة بـ Electron من Slack وDiscord وLinear، وأي تطبيقات أخرى تستخدمها. برنامج خدمة بيانات نظام التشغيل الذي لم تكن تعلم بوجوده. بالإضافة إلى ستة أو سبعة خوادم تطوير من صباح اليوم التي نسيت إيقافها بالتأكيد. هذا الضجيج طبيعي. هذا هو صوت بيئة التطوير العاملة في الخلفية.

أي أسئلة؟

في الغالب، نعم. تبقى حركة مرور الشبكة المحلية على الجهاز، فلا يمكن للجهات الخارجية الوصول إليها. تكمن المخاطر الحقيقية في إعادة توجيه نظام أسماء النطاقات (حيث يقوم موقع عام بخداع متصفحك لاستدعاء وظائف محلية) وواجهات برمجة التطبيقات المحلية غير المصادق عليها. تعمل ميزة الوصول إلى الشبكة الخاصة في متصفح كروم على حل المشكلة الأولى، بينما يعمل رمز مميز على نقطة النهاية الخاصة بك على حل المشكلة الثانية.

على نظامي ماك ولينكس، أسرع طريقة هي استخدام الأمر `lsof -i :49342` (مع إضافة sudo إذا كان مستخدم آخر يستخدم المنفذ). أما على نظام ويندوز، فافتح PowerShell وجرّب الأمر `netstat -ano | findstr :49342`، ثم أدخل مُعرّف العملية (PID) في الأمر `tasklist`. إذا لم يظهر أي شيء، فهذا يعني أن المنفذ مُتاح لك، يمكنك ربطه.

في الغالب: أعمال تطوير. اختبار التطبيقات، تصحيح الأخطاء، استدعاء الإجراءات عن بُعد المحلية، قواعد البيانات أثناء اختبارات التكامل، استدعاءات واجهة سطر أوامر OAuth. بالنسبة لمطوري العملات الرقمية، فهو المكان الذي توجد فيه أدوات مثل Hardhat وAnvil وGanache وBitcoin regtest. أما بالنسبة للآخرين، فهو "الخادم الذي شغّلته قبل خمس دقائق للتأكد من عمله".

لا، ليس بمفرده. إنه مجرد اتصال محلي. إذا كنت تستخدم dnsmasq أو unbound أو Pi-hole على نفس الجهاز، فبالتأكيد سيستمع أحدها على 127.0.0.1:53 ويقوم بدور محلل أسماء النطاقات (DNS). لكن العنوان ليس هو المهمة. في الواقع، يأتي البحث عن `localhost` من ملف hosts، وليس من DNS.

ما عليك سوى كتابة الرابط. `http://localhost:` أو `http://127.0.0.1:`، كلاهما يعمل. إذا كان هناك خدمة تستمع، فسيتم تحميل الصفحة؛ أما إذا لم يكن هناك خدمة تستمع، فستظهر لك صفحة فارغة أو رسالة "تم رفض الاتصال". للتحقق من السبب، شغّل الأمر `lsof` على نظامي Mac أو Linux، أو الأمر `netstat -ano` على نظام Windows.

باختصار، هو عنوان Loopback. خصصت له RFC 1122 في عام 1989 لتمكين جهازك من التواصل مع نفسه دون الحاجة إلى بطاقة خارجية. ترتبط خوادم الويب وقواعد البيانات به، كما أن معظم أدوات التطوير تستخدمه افتراضيًا. لا يوجد شيء مميز في العنوان نفسه؛ فكل نظام تشغيل يأتي به مُهيأً مسبقًا، لذا لن تحتاج للتفكير فيه أبدًا.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.