Mac OS X'ten VPN bağlantısı aracılığıyla ana bilgisayar çözülemiyor [kapalı]


10

Önsöz

Macbook'umdan bir VPN bağlantısı kurdum ve başarıyla bağlanıyor gibi görünüyor.

çalışan VPN

Ancak, ana bilgisayar adı çözümlenmediği için iş bilgisayarıma erişemiyorum:

$ ping myusername
ping: cannot resolve myusername: Unknown host

Yeni Geçici Çözüm

Yapabildiğim her şeyi denedikten sonra, bu komutun hem VPN ağını hem de interneti benim için kullanılabilir hale getirdiğini buldum:

sudo route add -net 192.168.7.218 192.168.7.117 255.255.0.0

Şirketin DNS sunucularına IP'leri tarafından erişilebilir. Ağı 192.168'den başlayan her şey için kullanacak şekilde nasıl yapılandırabilirim ?

Eski Geçici Çözüm

İki seçeneği değiştirerek ağa VPN üzerinden erişmeme izin veren geçici bir geçici çözüm buldum:

Tüm trafiği VPN bağlantısı üzerinden gönder'e bir onay işareti koydum :

VPN seçenekleri

VPN arayüzünün DNS ayarlarına Alan Adını Manuel Olarak Giriyorum:

VPN seçeneklerinde alan adı girme

Çalışan bilgisayarımı pinglenebilir yapmak için bu iki adımı gerçekleştirmek yeterlidir:

$ 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

Ancak, tüm trafiği VPN üzerinden geçecek şekilde tünellediğim için artık İnternet'e erişemiyorum:

$ 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

Soru

Ağı VPN'den ne zaman geçeceğini ve normal bağlantıyı ne zaman kullanacağını anlayacak şekilde nasıl düzgün bir şekilde kurabilirim? Windows sunucu adlarını doğru bir şekilde çözmek için buna ihtiyacım var.

Herhangi bir konsol komut çıktısı göndermem gerekiyorsa, tam olarak hangisini bana bildirirseniz bunu yapmaya hazırım.
Herhangi bir yardım çok takdir ediliyor, çünkü bu benim için bir tür gösteri tıpası.

Teşekkürler!


VPN alt ağ maskeniz nedir? 255.255.255.0 ise, alt ağınız 192.168.7.x olduğu için dns sunucusuna 192.168.10.x erişemezsiniz.
Hsmiths

ifconfigiçin çıkış ppp0olduğunu flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1396 inet 192.168.7.232 --> 192.168.7.117 netmask 0xffffff00ben 255.255.255.0 olduğunu tahmin. Nasıl değiştiririm? Teşekkürler.
Dan

@ shsmith, lütfen Yeni Geçici Çözüm bölümüne bakın. Haklıydınız DNS sunucularına erişilemiyordu. Kullandığım routeBen değişim ağ maskesi için bir yol bulamadık çünkü bu bilgileri temin etme. Bunları "192.168 ile ilgili her şey için DNS" olarak nasıl işaretleyebilirim?
Dan

Uzak uçta hangi VPN sunucusuna sahip olduğumu bilmiyorum, ancak bence sorunu çözmek için aradığınız yer burası. VPN, bölünmüş bir tünel kurulumu gibi görünüyor, yani hem VPN ucuna erişim VPN aracılığıyla, hem de diğer (İnternet) erişim normal ağ geçidiniz üzerinden. VPN sunucusu, ad sunucularını ve bunların kullanılması gereken etki alanlarını belirtecek şekilde yapılandırılmalıdır. Ayrıca, 192.168.related sorguları için kullanılacak DNS sunucularını işaretleme ile ilgili sorunuz yanlış bir şekilde - IP ile değil dahili DNS sunucusuyla kullanım için 'işaretlenmesi' gereken etki alanı adı kısmıdır.
barryj

@barryj, girişiniz için çok teşekkürler. Yöneticilere soracağım, ancak bence bu problemi olan tek kişi benim, bu yüzden bunu kendi başıma yapabilirsem zamanlarını almak istemiyorum. DNS'ye gelince, VPN'i sadece Windows ağındaki diğer bilgisayarlara erişmek için kullanmak istiyorum, örneğin RDC için çalışan bilgisayarım, geliştirme için veritabanı sunucusu, vb.
Dan

Yanıtlar:


3

Çözümleyici kılavuz sayfasına bakmak isteyebilirsiniz

Bir çözüm önermek için:

Belirli bir istemcinin yapılandırması, bu kılavuz sayfasında açıklanan biçime sahip bir dosyadan okunabilir. Bunlar şu anda sistem tarafından /etc/resolv.conf dosyasında ve / etc / resolver dizininde bulunan dosyalarda bulunmaktadır. Ancak, istemci yapılandırmaları dosya depolama ile sınırlı değildir. DNS çok istemcili arama stratejisinin uygulanması, Sistem Yapılandırma Veritabanı gibi diğer veri kaynaklarındaki istemci yapılandırmalarını da bulabilir. DNS sisteminin kullanıcıları, yapılandırma verilerinin kaynağı hakkında herhangi bir varsayımda bulunmamalıdır.

AFAIK adlı bir dosya koymak gerekir example.comiçinde /etc/resolversizin için özel nameserverlar istiyorsanız o alan için olan isim sunucularının IP adreslerine sahip example.com- kullandıkları olabilir resolv.confsözdizimi, ben hatırlamıyorum. Ama bunu çözebilmelisin :)

DÜZENLEME: İşlemin otomatikleştirilmesi ile ilgili olarak, bunun AppleScript veya Automator ile yapılabileceğinden eminim. Ama asla kafamı bulamıyorum, bu yüzden bu konuda ikinci bir soru yardımcı olabilir.


Teşekkürler! İyi çalıştı. / Etc / resolver içindeki dosyanın sözdizimi resolv.conf gibidir, örneğin "nameserver 1.2.3.4" benim için kutunun dışında çalıştı.
Per Lundberg

3

Ağ maskesinin yanlış ayarlanması OSX ile ilgili bir sorun var gibi görünüyor. Bu, hem Kar Leoparı hem de Dağ Aslanı'nda bir PPTP VPN kullanma deneyimimdi ve buradaki iş parçacığı tarafından destekleniyor .

Burada ppp0 trafiği için bir yönlendirme kuralı belirlemeyi içeren bir çözüm buldum .

Temelde:

$ 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

Bu, VPN'ye her bağlandığınızda yönlendirme kuralını ayarlar.


2

Mac OSX DNS çözünürlükleri komiktir. İşte hızlı düzeltme.

  1. Aşağıdaki kodu bir dosya adına ekleyin 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. 'VPN'im' kelimesini VPN bağlantınızın adıyla değiştirin.

  3. VPN'nize bağlandıktan sonra reset_dnsbir terminal penceresinden çalıştırın

Mac OSX yalnızca 'Birincil' ağ bağlantınızla ilişkili DNS sunucularını kullanır. Yukarıdaki kod, VPN bağlantınızın DNS sunucularını Birincil ağ bağlantısına (yani genellikle Wi-Fi veya Ethernet) ekler, böylece önce VPN DNS sunucularınız, daha sonra da Birincil bağlantı DNS sunucularınız kullanılır.

reset_dnsGirişleri kaldırmak ve orijinal DNS sunucusu yapılandırmasını geri yüklemek için VPN'nizden bağlantıyı kestikten sonra komutu tekrar çalıştırın . Ancak bu isteğe bağlıdır, çünkü genellikle DNS sunucularını ilişkilendirmek için hiçbir şeye zarar vermez.


0

Aynı sorunu yaşadım. Ev yönlendiricimin çalışma sistemimle aynı IP aralığında olduğu anlaşılıyor. Ev yönlendiricimi farklı bir aralığa değiştirdiğimde bağlanabildim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.