क्या मैं रूट एक्सेस के बिना / etc / मेजबान में लिखने के समान ओवरराइड डीएनएस बना सकता हूं


48

मैं एक डीएनएस रिकॉर्ड स्थापित करना चाहता हूं जिसका उपयोग मेरा ब्राउज़र करेगा, लेकिन मेरे पास रूट एक्सेस नहीं है, इसलिए मैं संशोधित नहीं कर सकता /etc/hosts। मुझे अपाचे के साथ vhosts के परीक्षण के लिए ऐसा करने की आवश्यकता है, जिसका डीएनएस अभी तक सेट नहीं किया गया है। मेरे पास फ़ायरफ़ॉक्स, और क्रोम तक पहुंच है, इसलिए यदि कोई प्लगइन है जो इसे सुविधाजनक बना सकता है; या अन्य विकल्प मददगार हैं।

अद्यतन: डीएनएस को ओवरराइड करने का विकल्प संभवतः HTTP हेडर को संशोधित कर रहा है, यदि सही लोगों को अपाचे में भेजा जाता है, तो सही सामग्री वापस आनी चाहिए।


1
अंतिम पंक्ति अस्पष्ट है। इसके अलावा, यह एसएफ में अधिक फिट नहीं होगा?
tshepang

@tshepang ... नहीं क्योंकि मुझे लिनक्स डेस्कटॉप पर ऐसा करने की आवश्यकता है?
xenoterracide

1
अभी भी इतना स्पष्ट नहीं है। "या अन्य विकल्प क्या सहायक हैं" बिल्कुल इसका मतलब है? मुझे अनुमान मत लगाओ।
tshepang

3
@tshepang मुझे नहीं पता कि मैं क्या देख रहा हूं ... अगर मुझे पता था कि मैं क्यों पूछूंगा? ऐसे विकल्प हो सकते हैं जिन पर मैंने विचार नहीं किया है। मुझे ऐसा लगता है कि आप मुझे यह बताने के लिए कह रहे हैं कि अपाचे वर्चुअल होस्ट, http और dns कैसे काम करते हैं।
xenoterracide

मुझे लगता है कि आप इसकी तलाश कर रहे हैं: unix.stackexchange.com/a/104511/135943
Wildcard

जवाबों:


65

मैं परीक्षण प्रयोजनों के लिए संशोधित DNS रिज़ॉल्यूशन के साथ एक प्रोग्राम चलाने का एक तरीका ढूंढ रहा था। मेरे लिए, समाधान HOSTALIASESपर्यावरण चर का उपयोग कर रहा था :

$ echo "foo www.google.com" >> ~/.hosts
$ HOSTALIASES=~/.hosts wget foo

देख लो hostname(7)

(साइड नोट: उदाहरण में HOSTALIASESपर्यावरण चर केवल wgetप्रक्रिया को प्रभावित करता है। बेशक, आप export HOSTALIASESइसे वर्तमान शेल के सभी उपप्रकारों के लिए प्रभावी कर सकते हैं ।)


1
वास्तव में यह + 10k की तरह होना चाहिए, दुर्भाग्य से मैं आपको केवल +1 दे सकता हूं
xenoterracide

मैं सहमत हूँ! + 10k !!
एंडर्स हैन्सन

3
आपका बहुत बहुत धन्यवाद! exportज्यादातर मामलों में उदाहरण प्रस्तुत करना चाहिए export HOSTALIASES=~/.hosts:।
एज़ेक्विअल-गरज़ॉन

8
ऐसा लगता है कि मेजबान को केवल उर्फ ​​मेजबानों का समर्थन है, न कि आईपी और मेजबानों को "।"।
netawater

क्या विंडोज के लिए एक ही समाधान है?
:

10

आप होस्टनामों को हल करने और उन्हें / etc / मेजबान की तुलना में एक अलग फ़ाइल में देखने के लिए libc फ़ंक्शन के चारों ओर एक आवरण लिख सकते हैं। फिर आप जिस भी एप्लिकेशन का उपयोग करना चाहते हैं उसे चलाएं

LD_PRELOAD=wrapper.so firefox

4
सबसे अधिक उपयोगी, अपने आवरण को खोलने के /etc/nsswitch.confलिए पुनर्निर्देशित करें ~/.nsswitch.conf, और ~/.nsswitch.confअपने DNS डेटाबेस से एक प्रश्न करें।
गिल्स एसओ- बुराई को रोकना '

6

मुझे लगता है कि ऐसा करने का सबसे अच्छा तरीका एक SOCKS5 प्रॉक्सी सेट करना और फ़ायरफ़ॉक्स को SOCKS5 प्रॉक्सी (network.proxy.socks_remote_dns) पर DNS अनुरोध भेजने के लिए कहना होगा। आप खुलने के साथ एक मोज़े 5 प्रॉक्सी को काफी आसानी से (-D विकल्प) सेट कर सकते हैं और एक कस्टम होस्ट / कस्टम / होस्ट्स के साथ रिमोट होस्ट कर सकते हैं, या अधिक जटिल DNS सेटिंग्स के लिए DNSMasq जैसी कोई चीज़ । प्रभावी रूप से, हालांकि, यह DNS सेटिंग्स के विन्यास को एक सिस्टम में धकेल रहा है जिससे आप सिस्टम-वाइड परिवर्तन कर सकते हैं।


आसान से कहा, महान फ़ायरवॉल पर विचार किया गया है जो हमें ssh-ing से ब्लॉक करने के लिए खड़ा किया गया है ...
xenoterracide

5

सुपरयुसर में निम्नलिखित प्रश्न देखें:

https://superuser.com/questions/184643/override-dns-in-firefox

यदि चर्चा किए गए विकल्प और SO लिंक व्यवहार्य समाधान नहीं हैं, तो देखें:

https://superuser.com/questions/100239/hostname-override-in-firefox

विशेष रूप से देखें:

https://addons.mozilla.org/en-US/firefox/addon/redirector/

ऐसा लगता है कि यह एडऑन मदद कर सकता है - लेकिन मैं इसके वास्तविक कार्यान्वयन पर निर्भर करता हूं।


दुर्भाग्य से उस सवाल में सेशन की तरह इनमें से कोई भी व्यवहार्य लगता है।
xenoterracide

@xenoterracide - मैंने अपना उत्तर अपडेट किया - शायद पुनर्निर्देशक ऐड-ऑन एक विकल्प है?
मैक्सक्लेपज़िग

मुझे ऐसा नहीं लगता कि जिस तरह से यह कहा गया है .. मुझे वास्तव में क्या करने की आवश्यकता है HTTP हेडर को संशोधित किया गया है ... मेजबान के उपयोग के आसपास हैकिंग के लिए एक वैकल्पिक विकल्प के रूप में
xenoterracide

मैंने SO समाधान (टैम्परडेटा) के चारों ओर पॉकिंग की, लेकिन मैंने यह नहीं देखा कि मेजबान को कैसे संशोधित किया जाए। मुझे आश्चर्य है कि अगर लाइव http हेडर की बात वास्तव में मुझे हेडर को संशोधित करने की अनुमति देती है, तो यह कहता है कि यह एक दर्शक है।
xenoterracide

मुझे लगता है कि संशोधित हेडर एक्सटेंशन एसओ एक काम में थोड़ा नीचे सूचीबद्ध है ... यदि आप होस्ट होस्टनाम का उपयोग करते हैं ... इसमें ... अभी तक परीक्षण नहीं किया गया है ... इसका उपयोग करने वाली साइटों को तोड़ने के बाहर।
xenoterracide

2

Vhosts का परीक्षण करने के लिए, आप फ़ायरफ़ॉक्स में अपाचे सर्वर को प्रॉक्सी के रूप में सेट कर सकते हैं। आपके द्वारा दर्ज किया गया नाम अपाचे को भेज दिया जाएगा। यह अन्य साइटों को ब्राउज़ करने को तोड़ देगा इसलिए जब आप कर रहे हैं तो प्रॉक्सी को वापस सेट करें।


0

मुझे एक सर्वर के लिए ssh, scp इत्यादि के लिए कुछ समान चाहिए था जो हर दो सप्ताह में आईपी बदलता रहता है (और हमारे आईटी को होस्ट स्थापित करने में कुछ हफ़्ते की देरी है)। मैंने इस सर्वर के लिए एक विशेष चर का उपयोग करके इसे हल किया: export FOO='131.227.aaa.bbbऔर फिर मैं बस कर सकता हूं ssh bar@$FOOऔर मैं अपने ~/.bashrcकिसी भी समय आईपी ​​बदल देता हूं ...


-2

अशुभ नहीं, आप अपने खुद के इंटरनेट ब्राउज़र को छोड़कर नहीं कर सकते।

यदि आपको कुछ परीक्षण करने हैं, तो आपको एक परीक्षण मशीन की आवश्यकता है, जो कि एक वर्चुअल मशीन है या एक वास्तविक है, इसलिए आपको अपने यूनिक्स व्यवस्थापक (या होस्टिंग प्रदाता) से पूछना होगा कि आप विकास के वातावरण को कैसे रख सकते हैं।

आप अपने पीसी पर एक वीएम भी स्थापित कर सकते हैं, लिनक्स वितरण स्थापित कर सकते हैं, अपाचे और अपने परिवर्तनों का परीक्षण कर सकते हैं (यह उतना कठिन नहीं है जितना लगता है)

अपडेट करें

बेहतर व्याख्या करने के लिए, प्रत्येक एप्लिकेशन को मानक पुस्तकालयों का उपयोग करके लिखा जाता है, इस तरह से किसी को निम्न स्तर की लाइब्रेरी और gethostbyname () जैसे कार्यों को फिर से लिखना नहीं पड़ता है।

ये फ़ंक्शन आम तौर पर फ़ाइल (/ etc / मेजबान) और DNS का उपयोग करने के लिए सेट होते हैं, इसलिए, अशुभ, यदि आपको ज़रूरत है कि आपका ब्राउज़र एक नाम निर्धारित करेगा, जो / etc / मेजबान में सेट है तो आपके पास बहुत अधिक विकल्प नहीं हैं ।

  1. आप अपना खुद का DNS सर्वर सेट कर सकते हैं और पूछ सकते हैं कि /etc/resolve.conf को बदलने का मूल अधिकार किसके पास है
  2. आप DeleGate की तरह एक प्रॉक्सी सर्वर स्थापित कर सकते हैं और अपने VirtualHost के लिए कुछ नियम निर्धारित कर सकते हैं
  3. उस ग्राहक होस्ट पर sudo अधिकार पूछें
  4. कनेक्शन का परीक्षण करने के लिए आप जिस एप्लिकेशन का उपयोग कर रहे हैं उसका व्यवहार बदलें (मैं ब्राउज़र का अनुमान लगाता हूं), उदाहरण के लिए https://addons.mozilla.org/en-US/firefox/addon/switchhosts/

4
-1 खराब और संरक्षणवादी शब्द। मैं होस्टिंग प्रदाता हूँ, और यह हमारे सर्वर पर लानत ग्राहकों की साइट है जिसे मुझे परीक्षण करने की आवश्यकता है। हमारे पास एक नेटवर्क बूट लाइनक्स है जिसकी मेरे पास व्यवस्थापक पहुंच नहीं है, और मुझे विश्वास नहीं है कि मैं इस पर एक वीएम बूट कर सकता हूं।
xenoterracide

@xenoterracide कहने के लिए बहुत ज्यादा नहीं है। यह वास्तव में संभव नहीं है कि आप क्या पूछ रहे हैं, सिवाय इसके कि आप जिस तरह से एक सॉकेट बनाया जाता है उसे बदल दें।
tmow

1
@xenoterracide BTW, अपमान करने का कोई इरादा नहीं था।
13

होस्टिंग प्रदाता के रूप में ... मेरे पास "sudo राइट्स" वास्तव में है, मेरे पास हर बॉक्स पर असली रूट है, और हर चीज तक पूरी पहुंच है ... मेरे डेस्कटॉप (आईरोल) को छोड़कर, लेकिन अगर वे अभी तक अपने नेमसर्वर को बदलना नहीं चाहते हैं .. मैं मदद नहीं कर सकता कि ...
xenoterracide

1
LD_PRELOAD के साथ आप 'विशिष्ट' निम्न स्तर के कार्यों को 'ओवरराइड' कर सकते हैं और वही कर सकते हैं जो आप चाहते हैं, जैसे। प्रोग्राम को अपने '/ etc / मेजबान' के बारे में open()और किसी अन्य निम्न स्तर की कॉल के बारे में बताना .. जब तक कि कोड का डायनेमिक लोडिंग बंद नहीं किया जाता है (.so)
akira
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.