सिंह / नाम संकल्प आदेश


9

(यह मुद्दा मेरे लिए 10.7.1 अपडेट के साथ दूर चला गया - / आदि / होस्ट अब मेरे लिए हमेशा की तरह काम करता है)

मैंने अपने मैक को शेर को अपडेट किया है और अब मैं नोटिस करता हूं कि / etc / मेजबान अंतिम रूप से DNS के बाद भी सलाह दी जाती है। यह बहुत कष्टप्रद है क्योंकि मेरे पास वहां कई होस्टनाम हैं जिनका मैं विकास के लिए उपयोग करता हूं।

नाम समाधान आदेश कहाँ कॉन्फ़िगर किया गया है? मैं इसे dscacheutil का उपयोग करके देख सकता हूं, इसलिए यहां स्नो लेपर्ड मशीन क्या बताती है:

pilif@tali ~ % dscacheutil -configuration
DirectoryService Cache search policy:
    /Local/Default
    /BSD/local

Settings:
AAAA Queries  - Disabled (link-local IPv6 addresses)
Default TTL   - 3600
Policy Flags  - 0

और यहाँ शेर मुझे बताता है

pilif@kosmos ~ % dscacheutil -configuration
DirectoryService Cache search policy:
    /Local/Default

Unable to get details from the cache node
Unable to get cache configuration information

दो त्रुटियों के अलावा, मुझे लगता है कि / बीएसडी / स्थानीय वही है जो इसे पहले पढ़ता है / आदि / मेजबान बनाता है।

क्या किसी के पास कोई भी विचार है कि यह "कैश खोज नीति" कहाँ संग्रहीत है और इसे वापस कैसे बदला जाए?

मुझे पता है कि मैं dcsl का उपयोग करके होस्ट नाम प्रविष्टियां बना सकता हूं, लेकिन मैं वास्तव में अपने / आदि / मेजबानों को रखना चाहूंगा जो मैं विभिन्न मशीनों पर उपयोग करता हूं।

अद्यतन: रिज़ॉल्यूशन ऑर्डर को डायरेक्ट्री यूटिलिटी में कॉन्फ़िगर किया जा सकता है। दुर्भाग्य से, यह इंस्टॉलेशन डायरेक्टरो यूटिलिटी बीएसडी फाइलों को सेवा टैब में सूचीबद्ध नहीं करता है।

क्या यह सुविधा शेर से मिली है? या यह स्थापना hosed है?

जवाबों:


5

मैंने समस्या हल की (और इस प्रकार प्रश्न को संशोधित करने के बजाय एक उत्तर के रूप में पोस्ट किया गया):

बीएसडी फाइलें वास्तव में डायरेक्ट्री यूटिलिटी में सूचीबद्ध नहीं हैं, न ही किसी भी तरह से dscacheutil में, लेकिन कम से कम / आदि / होस्ट अभी भी पढ़े जाते हैं, लेकिन इसमें एक समस्या है कि प्रति आईपी पते पर कई होस्ट नाम अब समर्थित नहीं लगते हैं या कम से कम, वे सही एटीएम काम नहीं करते।

जब आपके पुराने / आदि / मेजबान दिख सकते थे

127.0.0.1 localhost foo foobar

यह इन होस्ट नामों में से किसी को हल करने के लिए ~ 10 सेकंड के प्रतीक्षा समय का कारण होगा।

लेकिन अगर आप उपयोग करते हैं

127.0.0.1 localhost
127.0.0.1 foo
127.0.0.1 foobar

संकल्प तत्काल होगा।

RedGrittyBrick का उत्तर भी मान्य है, लेकिन मैं विशेष रूप से स्थानीय निर्देशिका को संशोधित करने के लिए मेजबानों की फाइल का उपयोग जारी रखना चाहता हूं क्योंकि यह खान की विभिन्न विकास मशीनों के बीच साझा की जाती है।

मेरे बाकी सवालों के जवाब देने के लिए भी (अब सब मेरे लिए स्पष्ट है):

  • कैश रिज़ॉल्यूशन ऑर्डर आप निर्देशिका उपयोगिता में कॉन्फ़िगर करते हैं जहां आप यह बता सकते हैं कि आप किस सक्षम निर्देशिका को देखना चाहते हैं।
  • निर्देशिकाओं को कॉन्फ़िगर करने के लिए, निर्देशिका उपयोगिता का भी उपयोग करें
  • डायरेक्टरी यूटिलिटी को सिस्टम प्रेफरेंस> अकाउंट्स> लॉगइन ऑप्शंस> ज्वाइन डायरेक्टरी> डायरेक्टरी यूटिलिटी में जाकर लॉन्च किया जाता है
  • लायन में, बीएसडी फाइलें "निर्देशिका" अभी भी उपलब्ध नहीं हैं, हालांकि मदद फ़ाइल अभी भी इसे संदर्भित करती है
  • जैसा कि मैंने कहा, / etc / मेजबान अभी भी पढ़ा जाता है, लेकिन वहाँ बग मैं ऊपर वर्णित है।

प्रत्येक प्रविष्टि को अपनी लाइन पर रखना मेरे लिए इसे हल नहीं करता था। क्या आप Chrome और Safari दोनों में "foo" और "foobar" पर जा सकते हैं? मेरे लिए, यह केवल क्रोम में काम करता है। क्या आप किसी मौजूदा वेबसाइट को ओवरराइड कर सकते हैं, जैसे "127.0.0.1 www.google.com"? मेरे लिए, यह क्रोम या सफारी में काम नहीं करता है।
रीचर्डकैमिलर

इसने मेरे लिए 10 के दशक के इंतजार को हल कर दिया। धन्यवाद, वह मुझे पागल कर रहा था।
जोश ब्लीचर स्नाइडर

10.7.3 याय पर मेरे लिए इसे हल कर दिया!
ईएमइलर

3

यह मामला लॉयन हैंडल है। थोकल टीएलडी अलग-अलग है क्योंकि यह कुछ मल्टीकास्ट डीएनएस सुविधाओं (बोंजोर द्वारा प्रयुक्त) के लिए आरक्षित है। इस मुद्दे को हल करने का एकमात्र तरीका मुझे विकास होस्ट (यानी: .देव) के लिए एक अलग TLD का उपयोग करना है। यह मेरे लिए ठीक काम करता है, आशा है कि यह दूसरों के लिए उपयोगी होगा!


यह वही था जो मेरे बॉक्स पर हो रहा था। thx
slf

1

जैसा कि मुझे उम्मीद है कि आप जानते हैं, इसे संभालने के लिए पारंपरिक यूनिक्स तरीका hostresorderया orderनिर्देश का उपयोग करके है /etc/resolv.conf। ओएस एक्स करता है (या इन फ़ाइलों को पढ़ने के लिए) बनाया जा सकता है लेकिन ओएस एक्स में नेटवर्क वरीयताओं के माध्यम से प्रशासित एक अलग प्रणाली है जो मेरा मानना ​​है कि बूटअप पर इन कॉन्फ़िगरेशन फ़ाइलों को ओवरराइट करता है।

http://hints.macworld.com/article.php?story=20070223050607406

http://docs.info.apple.com/article.html?path=ServerAdmin/10.6/en/od4939886e.html

https://discussions.apple.com/thread/2493759

http://blog.daemon.com.au/go/blog-post/managing-the-host-file-on-leopard

यह आपके प्रश्न का उत्तर नहीं देता है लेकिन जानकारी और लिंक एक खोजने में मदद कर सकते हैं। मैं इसे एक टिप्पणी में डाल देता अगर मैं इसे फिट करने के लिए संक्षेपण दे सकता।


मुझे dscl के बारे में पता है, लेकिन मैं विशेष रूप से मेजबानों की फाइल का उपयोग करना चाहता था जिसे शेर में स्पष्ट रूप से चालू और बंद नहीं किया जा सकता है। यह हमेशा पढ़ा जाता है, लेकिन पहले की तुलना में अलग-अलग पार्सिंग नियमों के साथ - मेरे सवाल का जवाब देखें।
पायल

1

स्थानीय DNS के रूप में dnsmasq का उपयोग करके और वहां प्रविष्टियाँ जोड़कर या उपयोग करने के लिए dnsmasq का उपयोग करके इस समस्या को हल करना संभव है /etc/hosts

DNS सर्वर ऑर्डर सेट करने के लिए स्क्रिप्ट का उपयोग करना संभव है:

Filename: setdsn
-------------------------------------------------
#!/bin/bash

# Script is used to set the Nameserver Lookup under Max OS X 10.4 with the Console
# Script by Stephan Oeste

if [ $# -lt 2 ] ; then
echo "Use: $0 [2.Nameserver]"
echo "Example Use: $0 example.tld 1.2.3.4 1.2.3.5"
exit 1
fi

PSID=$( (scutil | grep PrimaryService | sed -e 's/.*PrimaryService : //')<< EOF
open
get State:/Network/Global/IPv4
d.show
quit
EOF
)

scutil << EOF
open
d.init
d.add ServerAddresses * $2 $3
d.add DomainName $1
set State:/Network/Service/$PSID/DNS
quit
EOF
-------------------------------------------------

फ़ाइल बनाएँ:

chmod +x setdns

और फिर (उदाहरण के साथ) का उपयोग करें: setdns domain.com 12.23.34.45
( http://hints.macworld.com/article.php?story=20050621051643993 पर emzy द्वारा पोस्ट )

यदि आप चाहते हैं कि स्क्रिप्ट स्वचालित रूप से नेटवर्क परिवर्तन पर लोड हो, तो आपको एक .plist बनाना चाहिए, उसे /Library/LaunchDaemonsउपयोग में लाना चाहिए :

sudo launchctl load -w /LibraryLaunchDaemons/name.your.plist

1

मैं हिम तेंदुए में इस मुद्दे पर भाग गया, जबकि एक पारदर्शी सॉफ्टवेयर अपडेट सर्वर स्थापित करने की कोशिश कर रहा था। मैं इसे अब शेर पर भी काम कर रहा हूँ। सॉफ़्टवेयर अपडेट सर्वर स्वयं एक हैक और कीचड़ के बीच आधा है, लेकिन इस मुद्दे को बहुत सुरुचिपूर्ण ढंग से हल किया गया था। यहाँ मुझे पता है:

  • / etc / होस्ट सिंह में मौजूद हैं और हाल ही में OS X संस्करणों को DNS के बाद पढ़ने के लिए सेट किया गया है।
  • /etc/resolv.conf शेर में मौजूद है, लेकिन /var/run/resolv.conf के लिए एक सहानुभूति है।
  • /var/run/resolv.conf को फिर से लिखा जाता है जब भी आपका नेटवर्क कॉन्फ़िगरेशन अपडेट किया जाता है। यह पुनरारंभ, डीएचसीपी लीज नवीकरण, आदि के कारण हो सकता है।

मैंने निम्नलिखित स्क्रिप्ट बनाई। / Usr / स्थानीय / hostsBind:

mv /var/run/resolv.conf /var/run/resolv.conf.new
echo order hosts, bind > /var/run/resolv.conf
cat /var/run/resolv.conf.new >> /var/run/resolv.conf

यह वर्तमान मुख्य resolv.conf फ़ाइल का बैकअप देता है, BIND से पहले मेजबानों के वांछित क्रम के साथ एक नया बनाता है, और पिछली फ़ाइल को अंत तक जोड़ता है।

मैं इस स्क्रिप्ट को मुख्य लॉलव.कॉन्फ़ फ़ाइल को निम्न लॉन्च की गई नौकरी के साथ /Library/LaunchDaemons/com.domain.hostsBind.plist पर देख कर कॉल करता हूं (आप कॉम.डोमेन को कुछ बदल सकते हैं जो आपके लिए समझ में आता है):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.domain.hostsBind</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/hostsBind</string>
    </array>
    <key>WatchPaths</key>
    <array>
        <string>/var/run/resolv.conf</string>
    </array>
</dict>
</plist>

यह लायन सॉफ्टवेयर अपडेट सर्वर के साथ हमारे संगठन के लिए काम कर रहा है।

नोट करने की अंतिम बात, यह स्नो लेपर्ड के साथ ठीक काम करता है और यदि आप resolv.conf से /etc/resolv.conf के लिए रास्ता बदलते हैं। सिंह ने सिंपलिंक के क्यूरबॉल को / var / run / के बजाय / etc / के लिए फेंक दिया।

बी

पुनश्च: स्क्रिप्ट के लिए स्रोत: http://forums.macrumors.com/showthread.php?p=6742920


जब मैंने यह कोशिश की, तो नौकरी ने फ़ाइल पर आदेश जारी रखा क्योंकि फ़ाइल बदलने से एक नया अपडेट शुरू हो गया।
हरमनजद

1

अपाचे-सर्वर के साथ कई चीजें गलत हैं जो OSX शेर के साथ जहाज करती हैं।

  1. बहुत सारे मॉड्यूल डिफ़ॉल्ट रूप से लोड किए जाते हैं।
    खोलें /etc/apache2/httpd.confऔर सक्षम मॉड्यूल की सूची के माध्यम से जाना (उनमें से सभी डिफ़ॉल्ट रूप से सक्षम हैं)। आप शायद उनमें से बहुत सारे #को लाइन के सामने रख कर बंद कर सकते हैं ।

    ये वे हैं जिन्हें मैंने बंद कर दिया:

#LoadModule authn_dbm_module libexec/apache2/mod_authn_dbm.so
#LoadModule authn_anon_module libexec/apache2/mod_authn_anon.so
#LoadModule authn_dbd_module libexec/apache2/mod_authn_dbd.so
#LoadModule authn_default_module libexec/apache2/mod_authn_default.so
#LoadModule authz_groupfile_module libexec/apache2/mod_authz_groupfile.so
#LoadModule authz_user_module libexec/apache2/mod_authz_user.so
#LoadModule authz_dbm_module libexec/apache2/mod_authz_dbm.so
#LoadModule authz_owner_module libexec/apache2/mod_authz_owner.so
#LoadModule authz_default_module libexec/apache2/mod_authz_default.so
#LoadModule auth_basic_module libexec/apache2/mod_auth_basic.so
#LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so
#LoadModule dbd_module libexec/apache2/mod_dbd.so
#LoadModule mime_magic_module libexec/apache2/mod_mime_magic.so
#LoadModule unique_id_module libexec/apache2/mod_unique_id.so
#LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so
#LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so
#LoadModule proxy_scgi_module libexec/apache2/mod_proxy_scgi.so
#LoadModule proxy_ajp_module libexec/apache2/mod_proxy_ajp.so
#LoadModule dav_module libexec/apache2/mod_dav.so
#LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
#LoadModule bonjour_module libexec/apache2/mod_bonjour.so
#LoadModule fastcgi_module libexec/apache2/mod_fastcgi.so
  1. मेजबान फ़ाइल सही एक नहीं है।
    अब अपनी मेजबान फ़ाइल खोलें, पर स्थित है /etc/hosts। यहाँ आप इस लाइन (और कुछ टिप्पणियाँ) देखेंगे:

127.0.0.1 मैकबुक-प्रो-वैन-बार्ट.लोक

(अन्य संगणना पाठ्यक्रम से दूर)। निम्नलिखित पंक्ति जोड़ें (गणना बदलें):

fe80::1%lo0 macbook-pro-van-bart.local
  1. अपने Apache config पर एक नज़र डालें
    सुनिश्चित करें कि आपका vhostsIP पर भरोसा नहीं है। उन्हें इस तरह बदलें:

NameVirtualHost 127.0.0.1:80

हो जाता है:

NameVirtualHost *: 80

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.