मैक ओएस एक्स [बंद] से वीपीएन कनेक्शन के माध्यम से मेजबान को हल नहीं कर सकते


10

प्रस्तावना

मैंने अपनी मैकबुक से एक वीपीएन कनेक्शन स्थापित किया है, और यह सफलतापूर्वक कनेक्ट होता है।

वीपीएन काम कर रहा है

हालाँकि, मैं अपने कार्य कंप्यूटर तक नहीं पहुँच सकता क्योंकि होस्टनाम हल नहीं होता है:

$ ping myusername
ping: cannot resolve myusername: Unknown host

द न्यू वर्कअराउंड

सब कुछ करने की कोशिश करने के बाद, मैंने पाया कि यह कमांड मेरे लिए वीपीएन नेटवर्क और इंटरनेट दोनों उपलब्ध कराता है:

sudo route add -net 192.168.7.218 192.168.7.117 255.255.0.0

कंपनी के DNS सर्वर उनके आईपी द्वारा सुलभ हैं। मैं 192.168 से शुरू होने वाली हर चीज के लिए उनका उपयोग करने के लिए नेटवर्क को कैसे कॉन्फ़िगर करूं ?

पुरानी कसरत

मुझे एक अस्थायी वर्कअराउंड मिला जो मुझे दो विकल्पों को संशोधित करके वीपीएन के माध्यम से नेटवर्क तक पहुंचने की अनुमति देता है:

मैंने वीपीएन कनेक्शन पर सभी ट्रैफ़िक भेजें में एक चेकमार्क लगाया :

वीपीएन विकल्प

मैं मैन्युअल रूप से VPN इंटरफ़ेस की DNS सेटिंग्स में खोज डोमेन नाम दर्ज करता हूं:

वीपीएन विकल्पों में डोमेन नाम दर्ज करना

इन दो चरणों को पूरा करना मेरे काम करने वाले कंप्यूटर को आसान बनाने के लिए पर्याप्त है:

$ nslookup myusername
Server:     192.168.10.16
Address:    192.168.10.16#53

Name:   myusername.universe.mycompany
Address: 192.168.11.56

$ ping myusername
PING myusername.universe.mycompany (192.168.11.56): 56 data bytes
64 bytes from 192.168.11.56: icmp_seq=0 ttl=126 time=126.164 ms

हालाँकि, जब मैंने वीपीएन के माध्यम से जाने के लिए सभी ट्रैफ़िक को ट्यून किया, मैं अब इंटरनेट का उपयोग नहीं कर सकता:

$ ping google.com
PING google.com (74.125.232.48): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1

प्रश्न

मैं नेटवर्क को कैसे ठीक से सेट करता हूं, इसलिए यह समझता है कि वीपीएन के माध्यम से कब जाना है, और सामान्य कनेक्शन का उपयोग कब करना है? मुझे विंडोज सर्वर नामों को सही ढंग से हल करने के लिए इसकी आवश्यकता है।

यदि मुझे कोई कंसोल कमांड आउटपुट पोस्ट करने की आवश्यकता है, तो मैं उसे करने को तैयार हूं यदि आप मुझे बताएं कि वास्तव में क्या है।
किसी भी मदद की बहुत सराहना की जाती है, क्योंकि यह अब मेरे लिए एक प्रकार का शो स्टॉपर है।

धन्यवाद!


आपका वीपीएन सबनेट मास्क क्या है? यदि यह 255.255.255.0 है तो आप dns सर्वर 192.168.10.x पर नहीं पहुँच सकते क्योंकि आपका सबनेट 192.168.7.x है।
hsmiths

ifconfigआउटपुट है ppp0, flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1396 inet 192.168.7.232 --> 192.168.7.117 netmask 0xffffff00इसलिए मुझे लगता है कि यह 255.255.255.0 है। मुझए इसे कैसे बदलना है? धन्यवाद।
दान

@ शमशीर, कृपया नया समाधान खंड देखें। आप सही थे DNS सर्वर सुलभ नहीं थे। मैं routeउन्हें उपलब्ध कराता था क्योंकि मुझे नेटमास्क बदलने का कोई तरीका नहीं मिला। मैं इन्हें "192.168-संबंधित सब के लिए DNS" के रूप में कैसे चिह्नित करूं?
दान

मुझे नहीं पता कि आपके पास दूरस्थ छोर पर वीपीएन सर्वर क्या है, लेकिन मुझे लगता है कि आपको समस्या को ठीक करने की तलाश में होना चाहिए। ऐसा लगता है कि वीपीएन एक विभाजित सुरंग सेटअप है, जिसका अर्थ है कि वीपीएन छोर तक पहुंच वीपीएन के माध्यम से है, लेकिन अन्य (इंटरनेट) एक्सेस आपके सामान्य गेटवे के माध्यम से है। नाम सर्वर और डोमेन (डोमेन) को निर्दिष्ट करने के लिए वीपीएन सर्वर को कॉन्फ़िगर किया जाना चाहिए जिसका ये उपयोग किया जाना चाहिए। साथ ही, 192.168.related प्रश्नों के लिए उपयोग किए जाने वाले DNS सर्वरों को चिह्नित करने के बारे में आपका प्रश्न गलत तरीका है - यह डोमेन नाम भाग है जिसे आंतरिक DNS सर्वर के साथ उपयोग करने के लिए 'चिह्नित' करने की आवश्यकता है, न कि आईपी।
बैरीज

@barryj, आपके इनपुट के लिए बहुत बहुत धन्यवाद। मैं प्रशासकों से पूछूंगा, लेकिन मुझे लगता है कि मैं इस समस्या के साथ केवल एक ही हूं इसलिए मैं उनका समय नहीं लेना चाहता हूं यदि मैं इसे अपने दम पर बना सकता हूं। डीएनएस के रूप में, मैं केवल वीपीएन का उपयोग विंडोज नेटवर्क पर अन्य कंप्यूटरों तक पहुंचने के लिए करना चाहता हूं, जैसे आरडीसी के लिए मेरा काम करने वाला कंप्यूटर, विकास के लिए डेटाबेस सर्वर, आदि
दान

जवाबों:


3

आप रिज़ॉल्वर मैनपेज को देखना चाह सकते हैं

एक समाधान उद्धृत करने के लिए:

किसी विशेष क्लाइंट के लिए कॉन्फ़िगरेशन इस मैन पेज में वर्णित प्रारूप वाली फ़ाइल से पढ़ा जा सकता है। ये वर्तमान में /etc/resolv.conf फ़ाइल में और / etc / resolver निर्देशिका में मिली फ़ाइलों में सिस्टम द्वारा स्थित हैं। हालाँकि, क्लाइंट कॉन्फ़िगरेशन फ़ाइल संग्रहण तक सीमित नहीं हैं। DNS मल्टी-क्लाइंट खोज रणनीति के कार्यान्वयन से सिस्टम कॉन्फ़िगरेशन डेटाबेस जैसे अन्य डेटा स्रोतों में क्लाइंट कॉन्फिगरेटिन का पता लगाया जा सकता है। DNS सिस्टम के उपयोगकर्ताओं को कॉन्फ़िगरेशन डेटा के स्रोत के बारे में कोई धारणा नहीं बनानी चाहिए।

AFAIK आप नाम की एक फ़ाइल लगाने की जरूरत example.comमें /etc/resolverयदि आप के लिए विशेष नेमसर्वर चाहते कि डोमेन के लिए नेमसर्वर की आईपी के साथ example.com- हो सकता है वे का उपयोग resolv.confवाक्य रचना, मुझे याद नहीं कर सकते। लेकिन आपको यह पता लगाने में सक्षम होना चाहिए कि :)

संपादित करें: जहां तक ​​प्रक्रिया को स्वचालित करने की बात है, मुझे पूरा यकीन है कि AppleScript या Automator के साथ यह संभव है। लेकिन मैं कभी इसके आस-पास अपने सिर के लिए नहीं था इसलिए उस विषय पर एक दूसरा सवाल मदद कर सकता है।


धन्यवाद! ठीक काम किया। फ़ाइल में / etc / resolver के लिए वाक्यविन्यास resolv.conf की तरह है, उदाहरण के लिए "नामवर 1.2.3.4" मेरे लिए बॉक्स से बाहर काम करता है।
प्रति लुंडबर्ग

3

ऐसा लगता है कि OSX गलत तरीके से नेटमैक्स सेट करने के साथ एक समस्या है। स्नो लेपर्ड और माउंटेन लायन दोनों में पीपीटीपी वीपीएन का उपयोग करने का यह मेरा अनुभव था, और यहाँ इस धागे द्वारा समर्थित है ।

मुझे यहां एक समाधान मिला , जिसमें ppp0 यातायात के लिए एक रूटिंग नियम स्थापित करना शामिल है।

मूल रूप से:

$ sudo <your_text_editor_of_choice> /etc/ppp/ip-up

    #!/bin/sh
    /sbin/route add -net 192.168 -interface ppp0

$ sudo chmod 755 /etc/ppp/ip-up

यह वीपीएन से कनेक्ट होने पर हर बार रूटिंग नियम को निर्धारित करेगा।


2

मैक OSX DNS रिज़ॉल्यूशन मज़ेदार है। यहाँ जल्दी ठीक है।

  1. इस कोड को एक फ़ाइल नाम में रखें reset_dns

    #!/bin/bash
    
    function get_pri_srvc_id ()
    {
      cat <<EOF | scutil | \
        grep 'PrimaryService' | \
        awk -F': ' '{print $2}'
    show State:/Network/Global/IPv4
    EOF
    }
    
    function get_srvc_name ()
    {
      cat <<EOF | scutil | \
        grep 'UserDefinedName' | \
        awk -F': ' '{print $2}'
    show Setup:/Network/Service/$1
    EOF
    }
    
    function get_srvc_ids ()
    {
      cat <<EOF | scutil | \
        sed -nEe '
    /ServiceOrder/ {
      :ids
      n
      /[0-9]+ :/ {
        s/ *[0-9]+ : ([0-9A-Z-]+) */\1/p
        b ids
      }
    }'
    show Setup:/Network/Global/IPv4
    EOF
    }
    
    function get_srvc_id_by_name ()
    {
      local srvc_ids=$(get_srvc_ids)
    
      for srvc_id in $srvc_ids
      do
        local srvc_name=$(get_srvc_name "$srvc_id")
        if [[ "$srvc_name" == "$1" ]]
        then
          echo $srvc_id
          return
        fi
      done
    }
    
    function get_dns_ips ()
    {
      local srvc_id=$(get_srvc_id_by_name "$1")
    
      cat <<EOF | scutil | \
        sed -nEe '
    /ServerAddresses/ {
      :ips
      n
      /[0-9]+ :/ {
        s/ *[0-9]+ : ([0-9.]+) */\1/p
        b ips
      }
    }'
    show $2:/Network/Service/$srvc_id/DNS
    EOF
    }
    
    function set_dns_ips ()
    {
      networksetup -setdnsservers "$@"
    }
    
    vpn_srvc_name='MY VPN'
    ip_file='/tmp/setup_dns_ips'
    
    pri_srvc_id=$(get_pri_srvc_id)
    pri_srvc_name=$(get_srvc_name "$pri_srvc_id")
    
    if [[ ! -e "$ip_file" ]]
    then
      setup_dns_ips=$(get_dns_ips "$pri_srvc_name" "Setup")
      state_dns_ips=$(get_dns_ips "$pri_srvc_name" "State")
      setup_vpn_ips=$(get_dns_ips "$vpn_srvc_name" "Setup")
      state_vpn_ips=$(get_dns_ips "$vpn_srvc_name" "State")
    
      echo "set_dns_ips $pri_srvc_name $setup_vpn_ips $state_vpn_ips $setup_dns_ips $state_dns_ips"
      set_dns_ips "$pri_srvc_name" $setup_vpn_ips $state_vpn_ips $setup_dns_ips $state_dns_ips
    
      if [[ -z "$setup_dns_ips" ]]
      then
        setup_dns_ips="Empty"
      fi
    
      echo $setup_dns_ips >$ip_file
    else
      setup_dns_ips=$(cat $ip_file)
    
      echo "set_dns_ips $pri_srvc_name $setup_dns_ips"
      set_dns_ips "$pri_srvc_name" $setup_dns_ips
    
      rm $ip_file
    fi
    
  2. 'वीपीएन' शब्द को अपने वीपीएन कनेक्शन के नाम से बदलें।

  3. एक बार अपने वीपीएन से कनेक्ट होने के बाद, reset_dnsटर्मिनल विंडो से चलाएं

मैक OSX केवल आपके 'प्राथमिक' नेटवर्क कनेक्शन से जुड़े DNS सर्वर का उपयोग करता है। उपरोक्त कोड आपके वीपीएन कनेक्शन के DNS सर्वरों को प्राथमिक नेटवर्क कनेक्शन (यानी आमतौर पर वाई-फाई या ईथरनेट) से जोड़ता है ताकि आपके वीपीएन डीएनएस सर्वरों का पहले उपयोग किया जाएगा, फिर आपका प्राथमिक कनेक्शन डीएनएस सर्वरों का दूसरा।

reset_dnsप्रविष्टियों को हटाने और मूल DNS सर्वर कॉन्फ़िगरेशन को पुनर्स्थापित करने के लिए अपने वीपीएन फॉर्म को डिस्कनेक्ट करने के बाद फिर से कमांड चलाएं । यह वैकल्पिक है, हालांकि, क्योंकि यह आमतौर पर डीएनएस सर्वरों को संबद्ध रखने के लिए कुछ भी चोट नहीं पहुंचाता है।


0

मेरी भी यही समस्या थी। मेरा होम राउटर मेरी कार्य प्रणाली के समान आईपी रेंज पर था। एक बार जब मैंने अपने होम राउटर को एक अलग रेंज में बदल दिया तो मैं कनेक्ट करने में सक्षम था।

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