विभिन्न नेटवर्क इंटरफेस के लिए सॉफ्टवेयर बाँध


37

मेरे पास दो अलग-अलग नेटवर्क इंटरफेस हैं, जो 2 नेटवर्क से जुड़े हैं। एक एक eth0 है और दूसरा एक wlan0 है। मैं किसी सॉफ़्टवेयर को केवल विशिष्ट इंटरफ़ेस का उपयोग करने के लिए कैसे कह सकता हूं?

मूल रूप से मैं फ़ायरफ़ॉक्स को एथ0 का उपयोग करना चाहता हूं क्योंकि यह विश्वविद्यालय लैन नेटवर्क है और मुझे इंट्रानेट साइटों पर जाना है, दूसरा इंटरनेट पर एक वाईफाई नेटवर्क है और मैं इसे क्रोम से बांधना चाहता हूं।

मैं काम कर रहा हूं और मुझे इंट्रानेट का उपयोग करने की आवश्यकता है। तो eth0 मेरी पसंद है, लेकिन eth0 इंटरनेट का उपयोग (जाहिर है) के बिना एक इंट्रानेट है। जब से मैं इंटरनेट का उपयोग करना चाहता हूं मैं wlan0 (छात्रों के लिए विश्वविद्यालय वाईफाई) से जुड़ा हुआ हूं।

समस्या यह है कि अगर मैंने दोनों को कभी-कभी कनेक्ट किया है तो ब्राउज़र eth0 का उपयोग करके www.stackoverflow.com के लिए दिखता है। इसलिए मैं केवल एक विशिष्ट इंटरफ़ेस का उपयोग करने के लिए एक ब्राउज़र असाइन करना चाहता था।


आपकी समस्याओं के लिए एक बेहतर समाधान नहीं है? मेरा मतलब है, कि ubuntu.stackexchange.com से कनेक्शन किसी भी प्रोग्राम से एक ही इंटरफ़ेस का उपयोग करना चाहिए।
जेवियर रिवेरा

जवाबों:


23

आप क्लाइंट सॉफ़्टवेयर को विशिष्ट नेटवर्क इंटरफेस से बाँध नहीं सकते हैं, लेकिन आप कर्नेल को बता सकते हैं कि आप केवल कुछ IP पतों के लिए एक नेटवर्क इंटरफ़ेस का उपयोग करना चाहते हैं और दूसरा सब कुछ के लिए। इसे "रूटिंग" कहा जाता है, और कमांड का उपयोग करके कॉन्फ़िगर किया जा सकता है /sbin/routeऔर /sbin/ip

यदि मैं आपके प्रश्न को सही ढंग से पढ़ता हूं, तो आप इंटरफ़ेस का उपयोग करके eth0और इंटरनेट का उपयोग करके इंटरनेट से आईपी ​​पते से कनेक्ट करना चाहते हैं wlan0

यदि आप कमांड चलाते हैं ip route list, तो आपको निम्न की तरह एक आउटपुट देखना चाहिए (संख्या अलग होगी, और इसमें भी आपके पास अधिक लाइनें हो सकती हैं):

$ ip route list
10.60.44.0/25 dev eth0  proto kernel  scope link  src 10.60.44.39  metric 1 
192.168.80.0/21 dev wlan0  proto kernel  scope link  src 192.168.84.122  metric 2 
[...]
default via 10.60.44.1 dev eth0  proto static 

पहली दो लाइनें आपको इंटरफेस से जुड़े नेटवर्क के बारे में बताती हैं eth0और wlan0: उन नेटवर्क पर कंप्यूटरों को निर्देशित नेटवर्क ट्रैफ़िक को संबंधित इंटरफ़ेस के माध्यम से सीधे उनके पास भेजा जाएगा।

अंतिम पंक्ति आपको बताती है कि "डिफ़ॉल्ट मार्ग" क्या है: यदि आपका कंप्यूटर किसी ऐसे नेटवर्क पर कंप्यूटर से बात करना चाहता है जो इसके साथ संलग्न नहीं है (उदाहरण के लिए, stackoverflow.com सर्वर), तो यह eth0होस्ट के माध्यम से ट्रैफ़िक को रूट करेगा , 10.60.44.1( जिसे "डिफ़ॉल्ट गेटवे") कहा जाता है।

इसलिए, इंटरनेट ट्रैफ़िक थोरघ को रूट करने के लिए wlan0आपको यह सुनिश्चित करना चाहिए कि ip route listआउटपुट में अंतिम पंक्ति कुछ इस तरह पढ़े:

default via A.B.C.D dev wlan0 proto static

A.B.C.Dवायरलेस LAN पर गेटवे का IP पता कहां है। यदि आउटपुट में "dev wlan0" नहीं है, तो आप इसे कमांड से बदल सकते हैं:

sudo ip route change to default dev wlan0 via A.B.C.D

आप सही पता कर सकते हैं A.B.C.Dके लिए wlan0दो तरह से:

  1. निर्देशिका में देखें /var/lib/dhcp3/: आपको कुछ dhclient-...-wlan0.leaseफाइलें मिलनी चाहिए । सबसे हाल ही में एक खोलें और option routerउसमें स्ट्रिंग के साथ एक लाइन की खोज करें : शेष पंक्ति आपको आईपी पता बताती है A.B.C.D

  2. अपने स्थानीय नेटवर्क व्यवस्थापकों से पूछें। (शायद, वैसे भी सबसे अच्छी बात है।)

इस कॉन्फ़िगरेशन के साथ, आपको निम्न करने में सक्षम होना चाहिए:

  • इंटरनेट के माध्यम से ब्राउज़ करें wlan0
  • के माध्यम से अपने इंट्रानेट ब्राउज़ करें eth0, बशर्ते यह एक एकल नेटवर्क पर हो

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


जिज्ञासा से बाहर: क्या होगा अगर मैं आईपी पते के बजाय डीएनएस (उप-डोमेन शामिल करने के लिए) बाध्य करना चाहता हूं?
डाइपर

1
@ डिअर संक्षेप में: आप नहीं कर सकते, रूटिंग आईपी पते पर आधारित है। लंबी कहानी यह बताने से शुरू होती है कि रूटिंग एक नेटवर्क लेयर 3 चीज़ है, इसलिए यह DNS नामों के बारे में भी नहीं जानती है, जिसका रिज़ॉल्यूशन आगे नेटवर्किंग प्रोटोकॉल स्टैक तक होता है ...
Riccardo Murri

हाँ, हाँ, मैं मार्ग के साथ मतलब नहीं था। मेरा मतलब सामान्य तौर पर है। क्या यह किया जा सकता है? DNS को नेटवर्क इंटरफेस से बांधना?
Dierre

@ डिएरे वास्तव में आप क्या करना चाहते हैं? केवल विशिष्ट नेटवर्क इंटरफ़ेस पर DNS सर्वर का उत्तर देना? या एक DNS क्लाइंट (यानी, DNS रिज़ॉल्यूशन) वाले केवल एक चयनित इंटरफ़ेस का उपयोग करते हैं?
रिकाडर्डो मुर्री

1
@ रिचर्डक मुर्री: ubuntu.stackexchange.com/questions/4988/… एट वॉयला
dierre

2

"आईपी नेटन्स" नेटवर्क नेमस्पेस बनाता है। फिर आप वर्चुअल इंटरफेस (आईपी लिंक ऐड ... वीथ) बना सकते हैं और उन्हें नेमस्पेस में जोड़ सकते हैं।

नामस्थानों को उदाहरण के लिए विभिन्न मार्गों का उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है (इस प्रकार विभिन्न इंटरफेस का उपयोग करके)

फिर आप उस नेमस्पेस में कमांड चला सकते हैं, जो बनाए गए नेमस्पेस का उपयोग करेगा .. "ip netns execute NAME cmn ..."

स्रोत: http://manpages.ubuntu.com/manpages/saucy/en/man8/ip-netns.8.html

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