it-swarm-tr.com

Mac OS X'te sanal ağ arayüzü

Windows'ta sanal bir ağ arayüzü oluşturabileceğinizi biliyorum (bkz. here ) ve Linux'ta ip takma adları ile de oldukça kolaydır, ancak Mac OS X için de benzer bir şey var mı? Geri döngü adaptörleri, sanal arayüzler arıyordum ve iyi bir çözüm bulamadım. 

Ağ panelinde, varolan bir arabirimi temel alan yeni bir arabirim oluşturabilirsiniz, ancak gerçek bir tam işlevli arabirim olarak davranmaz (orijinal arabirim etkin değilse, türetilmiş arabirim de etkin değildir).

Tamamen bağlantısı kesilmiş bir durumda çalışırken bu senaryo gereklidir. O zaman bile, bir VMWare kurulumunda sunucuları çalıştırırken ağ oluşturma yeteneklerine sahip olmak mantıklıdır. Bu sanal makinelere IP adresleriyle erişilebiliyor, ancak bu sanal makinelerden birinde bir DNS sunucusu çalıştırsam bile, DNS adlarıyla erişilemiyor. Sanal DNS sunucusunu kullanacak bir arabirim yapılandırarak, bazı DNS senaryolarını test edebileceğimi düşündüm. Ne yazık ki, hiçbiri etkin değilse, hiçbir arayüz DNS adlarını çözemez ...

42
Hans Doggen

Geri döngü bağdaştırıcısı her zaman açık.

ifconfig lo0 alias 172.16.123.1 geri döngü bağdaştırıcısına bir takma ad IP 172.16.123.1 ekler

ifconfig lo0 -alias 172.16.123.1 onu kaldırır

53
Dave Whitla

Özellikle şunları yanıtlayarak:

Ağ panelinde, varolan bir arabirimi temel alan yeni bir arabirim oluşturabilirsiniz, ancak gerçek bir tam işlevli arabirim olarak davranmaz (orijinal arabirim etkin değilse, türetilmiş arabirim de etkin değildir).

Bu, psv141 tarafından önerilen şekilde bir Tun/Tap cihazı kullanılarak ve bir tun veya musluk arayüzüne dayanarak bir NetworkService eklemek için /Library/Preferences/SystemConfiguration/preferences.plist dosyasının kullanılmasıyla başarılabilir. Mac OS X, sanal bir ağ arabirimine dayanan bir NetworkService oluşturulmasına izin vermez, ancak biri NetworkService'i elle eklemek için preferences.plist dosyasını doğrudan değiştirebilir. Temel olarak, preferences.plist dosyasını Xcode'da açarsınız (veya doğrudan XML'i düzenlersiniz, ancak Xcode'un daha aptal olması muhtemeldir) ve yapılandırmayı mevcut bir Ethernet arayüzünden kopyalayın. Yeni NetworkService'i oluşturmanın yeri "NetworkServices" altındadır ve Mac'inizde bir Ethernet cihazı varsa, NetworkService profili de bu özellik girişinde olacaktır. Ethernet girişi neredeyse tamamen kopyalanabilir, gerçekte değiştireceğiniz tek alanlar şunlardır:

  • UUID
  • UserDefinedName
  • IPv4 konfigürasyonunu yapın ve arayüzü tun veya tap cihazınıza ayarlayın (ör. Tun0 veya tap0).
  • Gerekirse DNS sunucusu.

Ardından, bu NetworkService için istediğiniz belirli Konumu da değiştirirsiniz (Mac OS X'in "Konumunuza" bağlı olarak tüm ağ arayüzlerini yapılandırabildiğini unutmayın). Varsayılan konum UUID, PropertyList'in kökünden "CurrentSet" anahtarı olarak alınabilir. İstediğiniz yeri (veya kümeyi) belirledikten sonra, Set özelliğini genişletin ve Global/IPv4/ServiceOrder altında yeni Ağ Hizmetinin UUID'si ile girişler ekleyin. Ayrıca, Set özelliği altında, Hizmet özelliğini genişletmeniz ve UUID'yi burada __LINK__ anahtarına sahip bir String girişi olan ve UUID değeri olan bir sözlük olarak eklemeniz gerekir (örnek olarak diğer arabirimleri kullanın).

preferences.plist dosyanızı değiştirdikten sonra, yeniden başlatmanız yeterlidir ve NetworkService, SystemPreferences-> Network altında kullanılabilir. Bir Ethernet cihazını taklit ettiğimizi unutmayın, böylece Mac OS X ağ katmanı "bir kablonun çıkarıldığını" not eder ve arayüzü GUI üzerinden etkinleştirmenize izin vermez. Bununla birlikte, altta yatan cihaz bir tun/tap cihazı olduğundan ve bir IP adresine sahip olduğundan, arayüz aktif hale gelecektir ve uygun yönlendirme BSD seviyesinde eklenecektir.

Referans olarak, bu, özel yönlendirme sihri yapmak için kullanılır.

Bu noktaya gelip sorun yaşıyorsanız,/dev/altındaki cihazlardan birini açarak tun/tap cihazını oluşturmanız gerekir. Bunu yapmak için herhangi bir programı kullanabilirsiniz, ancak kendimi eski moda C hayranıyım:

#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;
}
22
bmasterswizzle

@bmasterswizzle 'ın BRILLIANT cevabı ile ilgili olarak - daha spesifik olarak - @DanRamos' sorusu ile ilgili olarak, yeni arayüzün bağlantı durumunu "yukarı" ya nasıl zorlayacağınızla ilgili bir soru. ( (bmasterswizzles "Mona Lisa" ile verilen cevapların koordinasyonunda ) ...

#!/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

Sonunda bilgi isteminde yapılan değişiklikleri anladığımdan emin değilim, ya da ...

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

fakat herneyse. işe yarıyor. bağlantı ışığı ????: yeşil ✅. onu seviyor ????.

enter image description here

8
Alex Gray

TUN/TAP aygıtı kullanmak mümkündür . http://tuntaposx.sourceforge.net/

5
psv141

Bazıları bu konuda ipucu veriyor gibi görünmekle birlikte, aşağıda OS X 10.9.5'te sanal bir arayüzde ( minidns kullanarak) bir vlan oluşturmak ve DNS'yi test etmek için ifconfig kullanıldığını gösteriliyor:

$ 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
5
web-online

Ne demek istiyorsunuz 

"ancak gerçek bir işlevsel arayüz olarak işlev görmeyecek (orijinal arayüz etkin değilse, türetilmiş olan da etkin değildir"

?

Yeni bir arayüz oluşturabilir, onu zaten var olana dayandırıp sonra var olanı devre dışı bırakabilirim ve yenisini hala çalışır. Bununla birlikte, ikinci bir arabirim oluşturmak gerçek bir arabirim oluşturmaz (ifconfig ile kontrol ettiğinizde), sadece zaten var olana ikinci bir IP atayacaktır (ancak bu, biri ilk olarak kodlanmış halde iken DHCP olabilir).

Peki, sizi doğru anladım, herhangi bir gerçek arayüze bağlı olmayan bir arayüz oluşturmak istediğinizi? Bu arayüz daha sonra nasıl kullanılır? Örneğin. Tüm WLAN bağlantılarını keser ve tüm ağ kablolarını çekerseniz, trafik gönderirseniz, bu arayüz nereye trafik gönderir? Belki de sorunuz biraz belirsizdir, tekrar ifade ederseniz çok yardımcı olabilir, bu yüzden bir kere sahip olduğunuzda bu "sanal arabirim" ile ne yapmaya çalıştığınız bellidir.

Sorunuzda "takma ad IP" dediğiniz gibi, bu bir takma ad arayüzü anlamına gelir. Ancak bir takma ad arayüzü her zaman gerçek bir arayüze bağlanır. Aradaki fark Linux'ta böyle bir arayüz gerçektenbir arayüzdür (örneğin eth0 için bir takma ad arayüzü eth1 olabilir), Mac'te ise hiçbir real arayüzü oluşturulmaz, bunun yerine sanal bir arayüz oluşturulur. Bu, bağımsız olarak konfigüre edilip kullanılabilir, ancak fiziksel olarak hala aynı arayüzdür ve bu nedenle yeni adlandırılmış bir arayüz oluşturulmaz (sadece her ikisi de en0 olan, ancak her ikisi de bağımsız olarak etkinleştirilebilir/devre dışı bırakılabilir ve yapılandırılabilir).

1
Mecki

Bu eğiticiye bir bakın, FreeBSD için geçerli ancak OS X için de geçerlidir. Http://people.freebsd.org/~arved/vlan/vlan_en.html

1
Ariel Monaco

bu amaca ulaşmak için BSD tabanlı bir yönlendirici/güvenlik duvarı olan PFSense'i çalıştırmaya başladım….

niye ya? çünkü OS X Server, Statik IP'siz FREAKY…

dAYS için NAT ve DHCP ve güvenlik duvarı yapmak için güreş yaptıktan sonra…

Bu paralellikler deniyorum…

nasıl gideceğini bilmene izin vereceğim ...

0
Alex Gray

eğer dev bir ortamdaysanız ve zaten localhost/Host makinesinde çalışan bir servise erişmek istiyorsanız. mac için docker'da docker kabındaki localhost yerine başka bir seçenek.use docker.for.mac.localhost var. Topluluk Sürümü 17.12.0-ce-mac46 2018-01-09 . Bu, mac'unuzda çalışan servise bir liman konteynerinin içinden bağlanmanızı sağlar.

docker.for.mac.localhost davranışını anlama

sürüm notları

0
arvin_v_s

Ağ Tercihleri'ne gidin.

Ağ bağdaştırıcıları listesinin altında, + simgelerini tıklayın. 

Arp etmek istediğiniz mevcut arayüzü seçin (Ethernet 1 deyin) ve yeni port için istediğiniz Servis Adını verin (Ethernet 1.1 deyin) ve ardından oluştur düğmesine basın.

Artık kullanıcı arabiriminde yeni sanal arabirime sahipsiniz ve IP adreslerini vb. Normal şekilde yönetebilirsiniz.

ifconfig -a, arabirimde birden fazla IP bulunduğunu onaylar ve yeniden başlattığınızda bunlar yine de orada olur.

Onun bir Mac. Onunla savaşma, kolay yoldan yap. 

0
Henry 3 Dogg