سؤال في ملفي / etc / hosts / file على Linux / OSX ، كيف أقوم بإجراء نطاق فرعي لحرف بدل؟


أحتاج إلى اختبار نطاقات فرعية على مضيفي المحلي. كيف يمكنني الحصول على هذه النتيجة بشكل فعال *.localhost.com لي /etc/hosts/ ملف؟

إذا لم يكن ذلك ممكنًا ، كيف يمكنني التغلب على هذه المشكلة؟ أحتاج إلى اختبار النطاقات الفرعية للحرف البدل على localserver الخاص بي. هو خادم Django devserver ، هل يمكن لملقم Django dev التعامل مع النطاقات الفرعية؟ هل يمكن أن تعطيني بعض البرامج الأخرى / التوجيه النتيجة النهائية التي أريدها؟


153
2018-03-02 16:43


الأصل


ينتمي إلى المستخدم المتميز؟ - Paul R
أعلم أن الناس يقولون أنه غير ممكن! ولكن كيف أفعل ذلك على أي حال! ما هو الشيء خارج / etc / hosts / يمكنني استخدامه للحصول على التأثير. أنا اختبر خادم تطوير. - MikeN
على مستخدم متميز: unix.stackexchange.com/questions/3352/... - Ciro Santilli 新疆改造中心 六四事件 法轮功
نظرًا لأن معظم الإجابات تركز على سؤالك الأول (wildhost subdomain wildcards) ، فسأجيب عن سؤالك الثانوي كتعليق: نعم ، فإن خادم Django dev قادر تمامًا على التعامل مع نطاقات localhost الفرعية ، عليك فقط إقناع المتصفح ونظام التشغيل الخاص بك لإرسال حركة المرور في طريقها (باستخدام أحد الحلول المختلفة أدناه)! - hheimbuerger


الأجوبة:


لقد كتبت وكيل DNS في بيثون. ستقرأ إدخالات أحرف البدل في / etc / hosts. انظر هنا: https://github.com/hubdotcom/marlon-tools/blob/master/tools/dnsproxy/dnsproxy.py


40
2018-05-02 09:30



هذا ممتاز! لقد كنت أبحث عن حل بسيط مثل هذا لفترة طويلة (العمل على OSX Mavericks BTW) - Billy Moon
الآن ، إذا استطعنا فقط فقط pip install انها :) - metakermit
لقد قمت بتثبيت هذا ، وفعلت كل شيء وركضته ، لكنه لا يمنع المواقع. - DisplayName
لا يمكن أن يصلح هذا بما فيه الكفاية. كنت في حاجة إلى هذا إلى الأبد ، وتعثرت على هذه الأحجار الكريمة من سؤال وجواب ، وأنا قليلا من القراصنة بايثون ، وهذا هو مرتب أنيق. شكرا للمشاركة! - Farley


التثبت dnsmasq (أفعل هذا على جميع أجهزة سطح المكتب في Linux كمخزن DNS على أي حال). في dnsmasq.conf أضف السطر:

address=/localhost.com/127.0.0.1

145
2018-03-03 02:37



متألق! ملاحظة لمستخدمي ماك ، هو حقا بهذه البساطة: 1. sudo port install dnsmasq 2. تحرير /opt/local/etc/dnsmasq.conf 3. sudo port load dnsmasq - tomc
OSX مع الشراب: كما هو مذكور أعلاه ولكن المشروب dnsmasq تثبيت - Matt Humphrey
fyi brew> port (reMattHumphrey suggestion) - electblake
لا يعمل هذا المثال معي ، ربما لأنني أستخدمه vagrantup.com للخدمة المحلية. لا تقلق ، لقد قمت بالفعل بتغيير IP إلى واحد صحيح 192.168.50.11 لكن DNS لا حل. أي أفكار ، هل هذا المثال صحيح لـ "غير 127.0.0.1" IP؟ - Brian
نصيحة رائعة. بالنسبة لسطح مكتب Ubuntu 14.04 (الذي يقوم بتشغيل dnsmasq بشكل افتراضي) ، قم بإنشاء ملف يسمى /etc/NetworkManager/dnsmasq.d/dnsmasq-localhost.conf ووضع الخط address=/localhost.com/127.0.0.1 في ذلك ، ثم إعادة تشغيل. - user38397


ليس من الممكن تحديد أحرف البدل في /etc/hosts ملف. إما أن تحدد أسماء المضيف المطلوبة بشكل صريح أو بشكل بديل إعداد خادم اسم محلي بالقواعد المناسبة.


53
2018-03-02 16:46





تحتاج إلى إعداد خادم DNS والحصول على كل عميل استخدامه للقرار. الخادم نفسه يمكن أن يكون شيئا مثل "النور" dnsmasq أو ثقيلة مثل ربط.


14
2018-03-02 20:28



+1 لـ dnsmasq ، وهو بالفعل موثق جيدًا وسهل الاستخدام - David Schmitt
dnsmasq غير قادر على القيام بذلك. - DisplayName
أي جزء من السلوك الموصوف في --address= لا يغطي القسم الخاص بصفحة dnsmasq.conf حالة الاستخدام المذكورة أعلاه؟ - Gerald Combs


سير عمل بسيط (لا تحتاج إلى تثبيت أي شيء)

أنا شخصياً أحب إنشاء ملف PAC لذلك وجعل المتصفح الخاص بي يستخدمه فقط.

الخطوة 1: إنشاء ملف على سبيل المثال: *.proxy.pac* في مكان ما (أنا استخدم بلدي $home مجلد)

الخطوة 2: الصق هذه الشفرة (المثال مع المنفذ 8000):

function FindProxyForURL(url, host) {
  if (shExpMatch(host, "*localhost")) {
    return "PROXY localhost:8000";
  }
  return "DIRECT";
}

الخطوه 3: اجعل المتصفح يستخدم ملف PAC هذا.

Youtube Video for PAC & Firefox 

الخطوة 4: يمكنك الآن اختبار تطبيقك من خلال الدخول إلى: http://mysubdomain.localhost/

الخطوة الخامسة: استمتع :)


8
2018-03-02 16:47



ربما تجدر الإشارة إلى أن هذا سيؤثر فقط على متصفحك. برامج أخرى (مثل wget، لن تتأثر بهذا). هذا ليس بحد ذاته مشكلة ، ولكن ربما من الأفضل ذكر ذلك. - Willem Van Onsem


لا يمكنك استخدام حرف بدل في /etc/hosts.

الق نظرة هنا للحصول على إرشادات جيدة حول كيفية تحقيقه على OS X باستخدام BIND ، خادم DNS المدمج ولكن غير نشط ، و Apache.


3
2018-04-16 09:11



لا يرتبط Apache بالنطاقات الفرعية. - Anonymous


لقد قمت بتنظيم مشروع قديم خاص بي:

https://github.com/airtonix/avahi-aliases

المتطلبات:

  • لينكس حيث avahi و python-avahi قابلة للتثبيت
  • أنت موافق على نطاقات .local (لا تدعم avahi أي نوع آخر)

مزايا استخدام dnsmasq أو proxy python dns:

  • يمكن لمستخدمي avahi / bonjour الآخرين على شبكتك المحلية حل الأسماء المستعارة التي تقوم بإنشائها والإعلان عنها إلى الشبكة (بما يتيح لك الوصول إلى المنفذ 5353)

3
2018-03-06 22:02





هذا الحل القائم على DNS يعمل بشكل مثالي في حالتي ، دون الحاجة إلى تثبيت أي شيء: https://gist.github.com/fedir/04e60d679d5657d1f9f9aa10b3168282 (Mac OSX 10.9)


3
2018-03-02 16:49



هذا حل مذهل لنظام التشغيل Mac OSX. - iDev247
رابط ميت ، يرجى تحديث الرابط ، الحل الخاص بك ، أو بطريقة ما إهمال هذه الإجابة. في صحتك. - Relic
تمت (تمت إضافة النسخة الاحتياطية) - Fedir RYKHTIK