लोकलहोस्ट को इंगित करने के लिए आईपी पता कैसे बदलें?


10

एक वेब ऐप का सैंडबॉक्स एनवायरमेंट सीधे एक आईपी पते द्वारा पहुंच योग्य है: http://<my_ip_address>लॉगिन नाम के बिना।

क्या मेरी लोकल मशीन में वर्चुअल होस्ट बनाने का कोई तरीका है, जिसका नाम है <my_ip_address>, और बदल / आदि / होस्ट करता है तो यह मेरे लोकलहोस्ट को "रीडायरेक्ट" करेगा?

127.0.0.1 <my_ip_address>

इसलिए जब मैं url लोड करूंगा तो http://<my_ip_address>ब्राउज़र मेरे लोकलहोस्ट को इंगित करेगा? जिस तरह से मैं पहले से ही डोमेन नामों को पुनर्निर्देशित कर सकता हूं।

जवाबों:


21

होस्ट फ़ाइल का उपयोग केवल एक आईपी के साथ एक डोमेन नाम को संबद्ध करने के लिए किया जा सकता है; यह IP से IP मैप नहीं कर सकता है।

Altering IP एक फ़ायरवॉल द्वारा किया जा सकता है । लिनक्स पर, डिफ़ॉल्ट फ़ायरवॉल को iptables कमांड द्वारा नियंत्रित किया जाता है । "मैन iptables" प्रलेखन है। Google परिचयात्मक स्पष्टीकरण के लिए "व्याख्या iptables"।

कुछ लिंक:

http://linux.die.net/man/8/iptables

http://www.linuxnix.com/2009/12/iptables-in-linux-explained.html

http://blog.adityapatawari.com/2011/12/ip-packet-filtering-iptables-explained.html

विशेष रूप से, आप अपने पीसी से एक आईपी पते ( <my_ip_address>) को OUTGOING अनुरोध बदलना चाहते हैं , ताकि वे इस मामले में 127.0.0.1 पर एक अलग आईपी पते पर जाएं। आप NAT ( नेटवर्क एड्रेस ट्रांसलेशन ) करना चाहते हैं , जिसे "डेस्टिनेशन आईपी" ( <my_ip_address>जैसे; 123.45.67.89) दिया गया है, इसे एक अलग "डेस्टिनेशन आईपी" (127.0.0.1) में बदलना है।

इसे आज़माएं ( 123.45.67.89 के स्थान पर , उस ip_address को रखें जिसे बदलने की आवश्यकता है):

iptables -t nat -A OUTPUT -p all -d 123.45.67.89 -j DNAT --to-destination 127.0.0.1

विवरण:

-t nat = एक एड्रेस को दूसरे में ट्रांसलेट करने के लिए टेबल

-एक OUTPUT = स्थानीय रूप से उत्पन्न, आउटगोइंग, पैकेट के लिए नियमों की सूची में जोड़ें। सुरक्षा चेतावनी: सुनिश्चित करें कि नियम में यह निर्देश शामिल है। यदि आप ऐसा नहीं करते हैं, तो नियम एक संभावित सुरक्षा छेद बना देगा, क्योंकि दूरस्थ स्थानों से आने वाले पैकेटों का मिलान भी लोकलहोस्ट को निर्देशित किया जाएगा।

-p सभी = सभी प्रोटोकॉल (tcp, udp, और icmp) पर लागू होता है।

-d 123.45.67.89 = मूल IP पता जो पैकेट (उसके गंतव्य) पर जा रहा था।

-j DNAT = यदि नियम मेल खाता है (इस मामले में, यदि एक आउटगोइंग पैकेट के पास IP 123.45.67.89 गंतव्य है), तो इसे DNAT से संभाल लें, जो गंतव्य को बदल देता है।

-तो-गंतव्य 127.0.0.1 = डीएनएटी को बताता है कि क्या करना है; मूल स्थान को "127.0.0.1" से बदलें।

(नोट: यदि आपके पास अधिक जटिल स्थिति थी, जैसे विशिष्ट वेब पृष्ठों के लिए अवरोधन अनुरोध, "प्रॉक्सी" सॉफ़्टवेयर का उपयोग करने के लिए एक वैकल्पिक समाधान हो सकता है।)


ध्यान दें कि यहां एक सुरक्षा चिंता है। 127.0.0.1 को आमतौर पर किसी भी दूरस्थ होस्ट से अप्राप्य समझा जाता है। यदि आप इसे फ़िल्टर किए बिना जोड़ते हैं, तो आप अनजाने में सुरक्षा उपाय को हरा सकते हैं।
स्लेर्टिबार्टफास्ट

@Slartibartfast - ध्यान दें कि हम केवल OUTGOING अनुरोध बदलते हैं। और हम इस पीसी पर एक फ़ायरवॉल में बदलाव कर रहे हैं। (कुछ अनुरोध, जो किसी बाहरी साइट पर चले गए होंगे, हम अपने आप को वापस पा रहे हैं।) यह INCOMING अनुरोधों को परिवर्तित नहीं करता है, इसलिए इसका कोई प्रभाव नहीं पड़ता कि कोई भी रिमोट को देख / कर सकता है। इसे देखते हुए, क्या आप अभी भी एक सुरक्षा चिंता देखते हैं?
टूलमेकरसेव

1
... आवश्यक सुरक्षा उपाय, नियम में "A-OUTPUT" का समावेश है। आपकी टिप्पणी के अनुसार, लोगों को इस बात से अवगत होने की आवश्यकता है कि आप जिस खतरे का वर्णन करते हैं वह OMITTING होगा। मैं इस पर जोर देने के लिए एक टिप्पणी जोड़ूंगा।
टूलमेकरसेव

3
यह ठीक काम कर रहा है, लेकिन मैं इसे कहीं भी iptables --list या --list-नियमों में सूचीबद्ध नहीं देख सकता। मैं इसे कैसे सूचीबद्ध कर सकता हूं और बाद में हटा सकता हूं जब कोई आवश्यकता नहीं है?
फिलिप स्टीफनोव

@FilipStefanov (मुझे पता है! देर से!): उनके बगल में एक नंबर के साथ नेट नियमों की सूची: iptables -t nat --list --line-numbers फिर उस नंबर से कभी भी शासन न करें: iptables -t nat -D OUTPUT <number>
रिचर्ड वाल्टन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.