ओएस एक्स में विशिष्ट इंटरफ़ेस के माध्यम से आईपी मार्ग कैसे निर्देशित करें?


40

मैं एक मैक पर हूँ और एक विशेष पते को रूट करने की कोशिश कर रहा हूं, हालांकि मेरे वाईफाई कनेक्शन पर एक विशिष्ट प्रवेश द्वार है।

मैं उपयोग कर रहा हूँ:

route add -host 54.81.143.201 192.168.15.1

कभी-कभी यह काम करेगा, अन्य बार यह अभ्यस्त नहीं होगा। मैंने पाया है कि यह जो इंटरफ़ेस चुनता है वह हर बार अलग होता है। यह en0काम करने के लिए ओटी की जरूरत है

netstat -nr उत्पादन जब यह काम नहीं करता है:

54.81.143.201      192.168.15.1       UGHS            1       89     en5

यह तब होता है जब यह काम करता है: (नोट en0)

54.81.143.201      192.168.15.1       UGHS            0        1     en

मैं यह क्यों कर रहा हूँ? क्योंकि हमारी कंपनी के पास एक प्रॉक्सी है कि हिपचैट काम नहीं करता है। इसलिए मैं अपने काम ईथरनेट पर होने के बावजूद एक खुले वाईफाई नेटवर्क के माध्यम से हिपचैट ट्रैफ़िक को रूट कर रहा हूं।

संपादित करें:

मैंने भी केवल इंटरफ़ेस का उपयोग करके प्रविष्टि जोड़ने की कोशिश की

route add -host 54.81.143.201 -interface en0

54.81.143.201      78:31:c1:c7:52:74  UHS             0        2     en0

हिपचैट कनेक्ट करने में विफल।

EDIT 2: किसी ने मेरी पूरी रूटिंग टेबल के लिए कहा, यहाँ यह आज है। ध्यान दें कि 54.81.143.201 अब en3 के लिए बाध्य है और en0 नहीं है

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            10.7.90.1          UGSc           31        6     en3
10.7.90/24         link#4             UCS             4        0     en3
10.7.90.1          0:23:ac:3d:db:c2   UHLWIir        16        0     en3   1200
10.7.90.44         40:6c:8f:19:4a:bb  UHLWI           0        3     en3    946
10.7.90.63         127.0.0.1          UHS             0        0     lo0
54.81.143.201      192.168.15.1       UGHS            0        0     en3
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH              3      209     lo0
169.254            link#4             UCS             1        0     en3
169.254.255.255    0:23:ac:3d:db:c2   UHLSW           0        0     en3

उस मामले के लिए पूर्ण रूटिंग तालिका पोस्ट करें जहां यह काम नहीं करता है। क्या 192.168.15.1 en5 के माध्यम से उपलब्ध है? यदि हां, तो यह काम क्यों नहीं करता है? यदि नहीं, तो यह देखना कठिन है कि उस मार्ग को कैसे जोड़ा गया।
डेविड श्वार्ट्ज

@DavidSchwartz, यही मेरे लिए दिलचस्प है। 192.168.15.1 en5 के माध्यम से उपलब्ध नहीं है। यह काम करता है जब यह सही ढंग से en0 को सौंपा जाता है।
सीन 256

हमें राउटिंग टेबल या एन 5 का कॉन्फ़िगरेशन दिखाएं। कुछ कारण होना चाहिए कि मार्ग उस तरह से स्थापित हो रहा है, और शायद यही वास्तविक समस्या है।
डेविड श्वार्ट्ज

@DavidSchwartz यह हमेशा एन 5 नहीं है, कभी-कभी यह एन 3 है। मैं अपनी पूरी रूटिंग टेबल अब पोस्ट कर रहा हूं।
सीन 256

आपके द्वारा दिखाए गए रूटिंग टेबल में, en3स्पष्ट रूप से सही है। 192.168.15.1 किसी अन्य इंटरफ़ेस के माध्यम से उपलब्ध नहीं है। उस मार्ग तालिका में 192.168.15.1 तक पहुंचने का एकमात्र तरीका डिफ़ॉल्ट मार्ग है, है ना? (स्पष्ट रूप से, ऐसा लगता है कि आपके पास कोई विचार नहीं है कि आप क्या कर रहे हैं। आपको आश्चर्य होता है कि सिस्टम असंभव नहीं कर रहा है।)
डेविड श्वार्ट्ज

जवाबों:


34

प्रयत्न:

route add -host 54.81.143.201 -interface en0

2
यह वही है जो मुझे मिलता है जब मैं कोशिश करता हूं कि: मार्ग: बुरा पता: en0
Sean256

क्षमा करें, मेरे पास इसका परीक्षण करने के लिए Mac नहीं है। ऐसा लगता है कि वाक्य रचना गलत थी। मैंने उत्तर को संशोधित किया। कृपया पुन: प्रयास करें।
drk.com.ar

1
दुख की बात वही है -> मार्ग: बुरा पता: en0
Sean256

पुनः प्रयास करें। इस बार मैंने गेटवे को हटा दिया। इसके अलावा, क्या आप आईपी कॉन्फ़िगरेशन को शामिल करने के लिए अपने प्रश्न में ifconfig आउटपुट जोड़ सकते हैं?
drk.com.ar

मैंने बस कोशिश की है कि (वास्तव में मेरे पास पहले भी है) और यह मेरी तालिका में एक प्रविष्टि जोड़ता है, यह समस्या को हल नहीं करता है। हिपचैट कनेक्ट करने में विफल रहता है। इस तरह से करते समय राउटिंग टेबल में प्रविष्टि है -> 54.81.143.201 78: 31: c1: c7: 52: 74 UHS 0 2 en0
Sean256

3

जैसा कि दूसरों ने संकेत दिया, यह वास्तव में 3 समस्याएं हैं।

  1. लगता है कि आपका वायरलेस इंटरफ़ेस en0, en3 और en5 के बीच बदल रहा है।

    मेरे मैकबुक एयर पर, en0 हमेशा वायरलेस रहता है; थंडरबोल्ट-टू-ईथरनेट हमेशा एन 3 है, और यूएसबी-टू-ईथरनेट हमेशा एन 5 है। लेकिन अगर आप अपने मैक पर एक अलग पोर्ट के एडॉप्टर में प्लग करते हैं, तो उसका एनआईसी नाम बदल जाता है। आपको पहले इसे हल करने की आवश्यकता है। सुनिश्चित करें कि आपका वायरलेस हमेशा एक ही नाम है। अन्यथा जब आप स्थैतिक मार्ग कमांड दर्ज करते हैं, अगर कोई एनआईसी en0स्थान में प्लग नहीं किया गया है , तो कमांड (जाहिर है) "एड्रेस एरर" के साथ विफल हो जाएगा (भौतिक पते का कोई लिंक नहीं है)।

    इसी तरह, सुनिश्चित करें कि एडेप्टर हमेशा एक ही SSID से कनेक्ट हो रहा है। प्रवेश द्वार का पता स्पष्ट रूप से सबनेट के लिए मान्य होना चाहिए, और विभिन्न वाईफाई नेटवर्क में अलग-अलग सबनेट होंगे। यह एक अन्य प्रकार की त्रुटि का कारण बन सकता है।

    यदि वायरलेस आपका एकमात्र नेटवर्क कनेक्शन है तो आपने निर्दिष्ट नहीं किया। उपरोक्त को देखते हुए, मुझे नहीं लगता ...? VMware या समानताएं के कारण यह और आभासी नेटवर्किंग अतिरिक्त जटिलताएं पैदा कर सकती हैं। (उदाहरण के लिए, यदि दोनों जुड़े नेटवर्क एक ही आईपी स्पेस का उपयोग करते हैं ... वर्चुअल मशीनें अक्सर ब्रिज की जाती हैं और उनके अपने आईपी / रूट / लिंक होते हैं ...) नेटवर्क टोपोलॉजी पोस्ट करने से मदद मिलेगी।

  2. एक बार जब यह हो जाता है, तो sudo route add -host 54.81.143.201 -iface en0या तो कोशिश करें sudo ipfw। यदि आप एडेप्टर के नाम के बारे में सुनिश्चित नहीं हैं, तो आप इसके बजाय इसके मैक पते को निर्दिष्ट कर सकते हैं:sudo route add -host 54.81.143.201 -link 14:10:9f:e7:fd:0a

    संबंधित: https://discussions.apple.com/thread/5049994?searchText=policy%20route

  3. यदि आप रिबूट करते हैं, तो यह जारी नहीं रह सकता है। आपको अलग से संभालना होगा।



2

मैं -linkएक मैक पते को निर्दिष्ट करने के लिए विकल्प का उपयोग करके इंटरफ़ेस में एक मार्ग जोड़ने में सक्षम था ।

route add -host 54.81.143.201 -link [mac addr of 192.168.15.1 on en0]

यह 54.81.143.201उपयुक्त इंटरफ़ेस के लिए ट्रैफ़िक भेजेगा ।

आपके पास दो अलग-अलग 192.168.15.*होस्ट पते हैं, जो प्रत्येक इंटरफ़ेस में एक है, है ना? इसके अलावा, आप ट्रैफ़िक को या तो इंटरफ़ेस से बाहर भेज सकते हैं, लेकिन ट्रैफ़िक जो भी स्रोत IP पैकेट पर होगा, वापस आ जाएगा।


इसलिए मैंने कोशिश की कि आपने मैक एड्र का उपयोग करके क्या सुझाव दिया, और अजीब तरह से मेरी रूटिंग टेबल en3 के लिए एक प्रविष्टि दिखाती है और en0 के लिए नहीं -> 54.81.143.201 00: 1d.88.4a.21.da UGHS 0 0 en3
Sean256

जब आप 'arp -an' करते हैं, तो आपके पास कौन सी प्रविष्टियाँ हैं ...?
नेविन विलियम्स

2

यह समाधान नवीनतम मैकओएस 10.12 (सिएरा) पर काम करता है। यहाँ Gist है

#!/bin/bash

# NOTE: wifi network interface is: en1
wifi_router=192.168.200.1
wifi_address=en1:ec.35.86.4f.00.cc
TOADDR=`ifconfig en1 inet | sed -nl 's/\w*inet \([^ ]*\).*/\1/p'`
TO=`echo -n ${TOADDR//[[:space:]]}`

echo "ADDING ROUTE TO $1 VIA en1 (wi-fi): $TO"
route -n add -host $1 $wifi_router -ifp $wifi_address -ifa $TO -static

echo ""
echo "ROUTE ADDED:"
route get $1

इस तरह का उपयोग करें:

> sudo ./route_wifi.sh IP_ADDRESS

यह मानता है कि वाईफ़ाई इंटरफ़ेस है: en1

Wifi_router और wifi_address वैरिएबल के लिए सही मान रखना न भूलें । नोट wifi_address प्रारूप, जो है: नेटवर्क इंटरफ़ेस नाम ' : ' इंटरफ़ेस मैक एड्रेस विथ ' ' परिसीमन । यकीन है कि अधिकांश आवश्यक जानकारी ifconfig कमांड आउटपुट से पार्स की जा सकती है , लेकिन मैं इसके लिए बहुत ही आलसी हूं))


सुपरयुसर में आपका स्वागत है। कृपया अपने पोस्ट में लिंक से सबसे अधिक प्रासंगिक जानकारी शामिल करने का प्रयास करें। इसके बारे में यहाँ और पढ़ें ।
स्टायरोफोम

1

OS X routeकमांड यहाँ प्रलेखित है-ifscopeपैरामीटर और उसका मान आप एक इंटरफेस बाध्य मार्ग निर्दिष्ट करने के लिए अनुमति देते हैं।

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


-1

तो जिस वेंडर सर्वर से आप "हिपचैट" सेवा के बारे में बात करना चाह रहे हैं, उसका दावा 54.81.143.201 है? इस मामले में, मैं इसे बड़ी रेंज देने के लिए 54.81.143.0 255.255.255.0 के लिए एक रूटिंग प्रविष्टि करूँगा। हो सकता है कि सॉफ़्टवेयर का उपयोग करते समय, आप हमेशा इस विशिष्ट सर्वर से बात नहीं कर रहे हों, लेकिन एक ही सबनेट 54.81.143.0-24 पर इनका एक समूह। इसके अलावा, एक नई प्रविष्टि बनाते समय सुनिश्चित करें कि आपके रूट मेट्रिक्स सही हैं। यदि आप 54.81.143.0/24 192.168.15.1 मीट्रिक 20 En5 का मार्ग बनाते हैं, लेकिन 0.0.0.0/0 10.7.90.1 मीट्रिक 10 En0 के लिए एक मार्ग भी है। कंप्यूटर आपकी नई प्रविष्टि को नजरअंदाज करेगा और डिफ़ॉल्ट मार्ग (En0 के माध्यम से) के माध्यम से यातायात को जारी रखेगा क्योंकि इसके अधिक बेहतर है। मैं बस इस के माध्यम से skimmered और यह इंगित करना चाहता था। चीयर्स!


-1

आपको एनआईसी नाम जोड़ने की कोशिश करनी चाहिए:

route add -net 10.13.0.0 netmask 255.255.0.0 dev NicNameHere

यह मेरे लिए CentOS में काम करता है।


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