2008-09-17 15 views
37

में वर्चुअल नेटवर्क इंटरफेस मुझे पता है कि आप Windows (here देखें) में एक आभासी नेटवर्क इंटरफेस कर सकते हैं और लिनक्स में यह भी आईपी-उपनाम के साथ बहुत आसान है, लेकिन मैक ओएस एक्स के लिए कुछ इसी तरह मौजूद है? मैं लूपबैक एडाप्टर, आभासी इंटरफेस की तलाश में हूं और एक अच्छा समाधान नहीं मिला।मैक ओएस एक्स

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

इस परिदृश्य की जरूरत है जब एक पूरी तरह से कट स्थिति में काम कर रहा है। फिर भी, वीएमवेयर इंस्टॉलेशन में सर्वर चलाते समय नेटवर्किंग क्षमताओं को समझना समझ में आता है। उन वर्चुअल मशीनों को उनके आईपी पते से पहुंचा जा सकता है, लेकिन उनके DNS नाम से नहीं, भले ही मैं उन वर्चुअल मशीनों में से एक में DNS सर्वर चलाता हूं। वर्चुअल DNS सर्वर का उपयोग करने के लिए इंटरफ़ेस को कॉन्फ़िगर करके, मैंने सोचा कि मैं कुछ DNS परिदृश्यों का परीक्षण कर सकता हूं। दुर्भाग्य से, नहीं इंटरफ़ेस DNS नामों को हल करने जाता है तो उनमें से कोई भी प्रयोग में नहीं हैं ...

+0

, कम या ज्यादा http://compileyouidontevenknowyou.blogspot.com/2009/03/virtual-networking-with-virtualbox-on.html –

+0

"मुझे पता है कि आप एक बना सकते हैं कि विंडोज़ में वर्चुअल नेटवर्क इंटरफ़ेस (यहां देखें), और लिनक्स में यह आईपी-एलियास के साथ भी बहुत आसान है "- WUT? आईपी-उपनाम के साथ इंटरफ़ेस निर्माण? वास्तव में आप एक चीज़ नहीं जानते हैं। – poige

उत्तर

1

क्या आप

"but it will not act as a real fully functional interface (if the original interface is inactive, then the derived one is also inactive"

द्वारा मतलब है?

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

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

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

-1

ifconfig interfacename, एक आभासी इंटरफेस पैदा करेगा बनाने

+0

क्या आप इसके लिए एक उदाहरण प्रदान कर सकते हैं? अगर मैं कोशिश करता हूं, तो यह काम नहीं करता है और जहां तक ​​मुझे पता है, मैंने कभी काम नहीं किया है। – Mecki

+2

मैं पुष्टि कर सकता हूं कि यह –

+0

ifconfig vlan0 ifconfig मैन पेज में निर्दिष्ट दस्तावेज़ बनायेगा "निर्दिष्ट नेटवर्क छद्म-डिवाइस बनाएं। यदि इंटरफ़ेस को यूनिट नंबर के बिना दिया गया है, तो एक नया डिवाइस बनाने का प्रयास करें मनमानी इकाई संख्या। " –

46

लूपबैक एडाप्टर हमेशा ऊपर है।

ifconfig lo0 उर्फ ​​172.16.123.1 लूपबैक एडाप्टर के लिए एक उपनाम आईपी 172.16.123.1 जोड़ देगा

ifconfig lo0 -alias 172.16.123.1 निकाल देंगे यह

+0

यह उपनाम बनाने के लिए सही है, लेकिन मेरे ज्ञान के लिए आप लूपबैक एडाप्टर से जुड़े DNS सर्वर को परिभाषित नहीं कर सकते हैं, इसलिए यह ऊपर वर्णित अनुसार मेरे परिदृश्य में काम नहीं करेगा। –

+4

यह एक वास्तविक वर्चुअल नेटवर्क इंटरफ़ेस नहीं है। – AdamIerymenko

5

यह TUN उपयोग करना संभव है/टीएपी डिवाइस। http://tuntaposx.sourceforge.net/

+0

उपयोगकर्ता यार ने ब्लॉग पोस्ट के माध्यम से एक समान सुझाव दिया। मैंने इसे देखा है, लेकिन समय की कमी के कारण मैंने इसका परीक्षण नहीं किया और मुझे अब और आवश्यकता नहीं है। फिर भी धन्यवाद। –

0

मैंने इस लक्ष्य को प्राप्त करने के लिए एक बीएसडी आधारित राउटर/फ़ायरवॉल पीएफएसेंस चलाने का सहारा लिया है ...।

क्यों? क्योंकि OS X सर्वर एक स्थिर IP बिना ऐसा अजीब हो जाता है ...

तो दिन के लिए इसके साथ कुश्ती नेट और DHCP और फ़ायरवॉल और बनाने के लिए ... मैं इस समानताएं है कोशिश कर रहा हूँ

... के बाद

दूँगी फिर पता है कि यह कैसे जाता है ...

0

जाओ करने के लिए लागू होता है।

नेटवर्क एडेप्टर की सूची में सबसे नीचे, + माउस

क्लिक करें कि आप एआरपी करना चाहते मौजूदा इंटरफेस का चयन करें (जैसे कि ईथरनेट 1), और देना सेवा का नाम है कि आप नए के लिए चाहते हैं बंदरगाह (ईथरनेट 1.1 कहें) फिर प्रेस दबाएं।

अब आपके पास गुई में नया वर्चुअल इंटरफेस है और सामान्य तरीके से आईपी पते आदि का प्रबंधन कर सकता है।

ifconfig -a पुष्टि करेगा कि आपके पास इंटरफ़ेस पर एकाधिक आईपी हैं, और जब भी आप रीबूट करते हैं तो ये तब भी होंगे।

यह एक मैक है। इसे मत लड़ो, इसे आसान तरीका करो।

+3

जैसा कि मूल प्रश्न में बताया गया है, यह भौतिक इंटरफ़ेस से अलग वर्चुअल इंटरफ़ेस के वांछित प्रभाव को प्राप्त नहीं करता है। आपके द्वारा वर्णित आदेश केवल एक दूसरी आईपी कॉन्फ़िगरेशन के साथ एक ही भौतिक इंटरफ़ेस को उपनाम करता है। – bleater

20

को विशेष रूप से उत्तर दिया जा रहा:

You can create a new interface in the networking panel, based on an existing interface, but it will not act as a real fully functional interface (if the original interface is inactive, then the derived one is also inactive).

इस रूप में psv141 ने सुझाव दिया है, और /Library/Preferences/SystemConfiguration/preferences.plist फ़ाइल से छेड़छाड़ या तो एक tun या नल इंटरफेस पर आधारित एक NetworkService जोड़ने के लिए एक तुन/नल डिवाइस का उपयोग कर प्राप्त किया जा सकता। मैक ओएस एक्स वर्चुअल नेटवर्क इंटरफ़ेस के आधार पर नेटवर्क सेवा के निर्माण की अनुमति नहीं देगा, लेकिन नेटवर्क सेवा को हाथ से जोड़ने के लिए कोई भी सीधे preferences.plist फ़ाइल में हेरफेर कर सकता है। असल में आप एक्सकोड में preferences.plist फ़ाइल खोलेंगे (या सीधे एक्सएमएल संपादित करें, लेकिन एक्सकोड अधिक मूर्ख-प्रमाण होने की संभावना है), और कॉन्फ़िगरेशन को मौजूदा ईथरनेट इंटरफ़ेस से कॉपी करें। नया नेटवर्क सेवा बनाने की जगह "नेटवर्क सर्विसेज" के अंतर्गत है, और यदि आपके मैक में ईथरनेट डिवाइस है तो नेटवर्क सेवा प्रोफ़ाइल भी इस प्रॉपर्टी एंट्री के तहत होगी। ईथरनेट प्रवेश काफी शब्दशः कॉपी किया जा सकता, केवल क्षेत्रों आप वास्तव में बदल रहा है किया जाएगा हैं:

  • UUID
  • UserDefinedName
  • आईपीवी 4 विन्यास और अपने tun या नल डिवाइस (यानी tun0 या करने के लिए इंटरफ़ेस सेट tap0)।
  • यदि आवश्यक हो तो DNS सर्वर।

फिर आप उस विशेष सेवा को भी कुशलतापूर्वक उपयोग करेंगे जिसके लिए आप यह नेटवर्क सेवा चाहते हैं (याद रखें मैक ओएस एक्स आपके "स्थान" पर निर्भर सभी नेटवर्क इंटरफेस को कॉन्फ़िगर कर सकता है)। डिफ़ॉल्ट स्थान UUID को प्रॉपर्टीलिस्ट की रूट में "CurrentSet" कुंजी के रूप में प्राप्त किया जा सकता है। यह पता लगाने के बाद कि आप कौन सा स्थान (या सेट) चाहते हैं, सेट प्रॉपर्टी का विस्तार करें और ग्लोबल/आईपीवी 4/सर्विस ऑर्डर के तहत नई नेटवर्क सेवा के यूयूआईडी के साथ प्रविष्टियां जोड़ें। सेट प्रॉपर्टी के तहत आपको सेवा प्रॉपर्टी का विस्तार करने और यूयूआईडी को एक asLINK__ के साथ एक स्ट्रिंग एंट्री के साथ एक डिक्शनरी के रूप में जोड़ना होगा और यूयूआईडी के रूप में मूल्य (उदाहरण के रूप में अन्य इंटरफेस का उपयोग करें)।

अपनी preferences.plist फ़ाइल को संशोधित करने के बाद, बस रीबूट करें, और नेटवर्क सेवा सिस्टम सिस्टम-> नेटवर्क के अंतर्गत उपलब्ध होगी। ध्यान दें कि हमने एक ईथरनेट डिवाइस की नकल की है, इसलिए नेटवर्किंग के मैक ओएस एक्स परत में ध्यान दिया जाएगा कि "एक केबल अनप्लग किया गया है" और आपको जीयूआई के माध्यम से इंटरफ़ेस को सक्रिय करने नहीं देगा। हालांकि, चूंकि अंतर्निहित डिवाइस एक ट्यून/टैप डिवाइस है और इसमें आईपी पता है, इंटरफ़ेस सक्रिय हो जाएगा और बीएसडी स्तर पर उचित रूटिंग जोड़ा जाएगा।

संदर्भ के रूप में इसका उपयोग विशेष रूटिंग जादू करने के लिए किया जाता है।

यदि आपको यह दूर और परेशानी हो रही है, तो आपको/dev/के अंतर्गत डिवाइसों में से किसी एक को खोलकर ट्यून/टैप डिवाइस बनाना होगा। आप किसी भी प्रोग्राम का उपयोग कर सकते हैं यह करने के लिए है, लेकिन मैं अपने आप को अच्छा-पुराने जमाने सी के एक प्रशंसक हूँ:

#include <stdio.h> 
#include <fcntl.h> 
#include <unistd.h> 
int main() 
{ 
    int fd = open("/dev/tun0", O_RDONLY); 
    if (fd < 0) 
    { 
     printf("Failed to open tun/tap device. Are you root? Are the drivers installed?\n"); 
     return -1; 
    } 
    while (1) 
    { 
     sleep(100000); 
    } 
    return 0; 
} 
+0

क्या यह समाधान आपको ईथरनेट या एयरपोर्ट इंटरफ़ेस में टैप इंटरफ़ेस को पुल करने के लिए "इंटरनेट शेयरिंग" चालू करने की अनुमति देगा? – Sukima

+2

मैंने इसका परीक्षण किया है और हाँ, यह करता है। मैं इस विधि का उपयोग कर अपने वाईफाई पर अपने ओपनवीपीएन ट्यून 0 डिवाइस (मेरे ईथरनेट कनेक्शन से) साझा करने में सक्षम था। – thenickdude

+0

नोट: मैंने इसे एक वीएमनेट (वीएमवेयर वर्चुअल नेटवर्क एडेप्टर) में करने की कोशिश की और मैं इसे आईपी के साथ सक्रिय नहीं कर सकता। (इस समाधान पर चर्चा के रूप में ट्यून/टैप डिवाइस के साथ उपयोग के लिए वास्तव में काम करता है) – TCB13

0

यहाँ एक अच्छा मार्गदर्शक है: http://gerrydevstory.com/2012/08/20/how-to-create-virtual-network-interface-on-mac-os-x/

मूल रूप से आप नेटवर्क में एक नेटवर्क एडाप्टर का चयन सिस्टम वरीयताओं का फलक, फिर "डुप्लिकेट सेवा" के लिए गियर पर क्लिक करें। सेवा डुप्लिकेट करने के बाद, आप मैन्युअल रूप से एक निजी पता श्रेणी में से एक में आईपी असाइन करते हैं। तो सुनिश्चित करने के लिए यह पिंग;)

+0

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

+0

मैं मानता हूं कि प्रश्न स्पष्ट रूप से वर्चुअल इंटरफ़ेस निर्दिष्ट करता है, और मेरा उत्तर और प्रदान किया गया लिंक वर्चुअल इंटरफ़ेस और भौतिक इंटरफ़ेस के बीच चित्रित नहीं करता है। हालांकि सवाल वास्तव में विशेष रूप से इनमें से किसी के लिए नहीं पूछता है। यह विंडोज़ में वर्चुअल नेटवर्क डिवाइस बनाने के लिए "कुछ समान" मांगता है। –

5

कुछ अन्य लोगों को इस में संकेत लग रहा था, लेकिन निम्नलिखित ओएस एक्स 10.9.5 पर आभासी इंटरफेस (minidns का उपयोग) पर एक VLAN और परीक्षण डीएनएस बनाने के लिए ifconfig का उपयोग कर प्रदर्शित करता है:

$ sw_vers -productVersion 
10.9.5 
$ sudo ifconfig vlan169 create && echo vlan169 created 
vlan169 created 
$ sudo ifconfig vlan169 inet 169.254.169.254 netmask 255.255.255.255 && echo vlan169 configured 
vlan169 configured 
$ sudo ./minidns.py 169.254.169.254 & 
[1] 35125 
$ miniDNS :: * 60 IN A 169.254.169.254 


$ dig @169.254.169.254 +short test.host 
Request: test.host. -> 169.254.169.254 
Request: test.host. -> 169.254.169.254 
169.254.169.254 
$ sudo kill 35125 
$ 
[1]+ Exit 143    sudo ./minidns.py 169.254.169.254 
$ sudo ifconfig vlan169 destroy && echo vlan169 destroyed 
vlan169 destroyed 
8

@bmasterswizzle के BRILLIANT answer - अधिक विशेष रूप से - @DanRamos करने के लिए 'के संबंध में कैसे नए इंटरफ़ेस का लिंक स्टेट को "ऊपर" के लिए मजबूर करने के बारे में सवाल .. मैं इस स्क्रिप्ट, जिसका मूल के मुझे याद नहीं कर सकते उपयोग करें, लेकिन जो fabulously काम करता है (@bmasterswizzles "Mona Lisa" of answers के साथ समन्वय में) ...

#!/bin/zsh 

[[ "$UID" -ne "0" ]] && echo "You must be root. Goodbye..." && exit 1 
echo "starting" 
exec 4<>/dev/tap0 
ifconfig tap0 10.10.10.1 10.10.10.255 
ifconfig tap0 up 
ping -c1 10.10.10.1 
echo "ending" 
export PS1="tap interface>" 
dd of=/dev/null <&4 & # continuously reads from buffer and dumps to null 

मैं काफी यकीन है कि मैं

dd of=/dev/null <&4 & # continuously reads from buffer and dumps to null

अंत में शीघ्र करने के लिए परिवर्तन, या ... लेकिन जो भी समझ में नहीं आ रहा है। यह काम करता हैं। लिंक लाइट: हरा ✅। इसे से प्यार करता है।

enter image description here

अपने एक ही विषय पर
+0

आप टैप एडाप्टर (स्क्रिप्ट के माध्यम से) को कैसे नष्ट कर सकते हैं? –

+0

यदि आप पाइथन कार्यान्वयन करना चाहते हैं, तो आप http://stackoverflow.com/a/15139727/1097104 को आधार के रूप में उपयोग करना चाहेंगे। –

+0

यह मुझे निम्न त्रुटि देता है: रेखा 5:/dev/tap0: ऑपरेशन की अनुमति नहीं है –