Адреса гостя VMWare Fusion Linux за ім'ям хоста?


11

У мене встановлено зображення Ubuntu Server 9.04 у VMWare Fusion 3.0.0, використовуючи параметр NAT для мережевого підключення гостя. З хоста Mac, я можу перейти до гостя linux просто чудово, використовуючи його IP-адресу, але я хотів би мати можливість посилатися на нього ім'ям хоста для зручності. тобто:

mac-host:~ ssh user@linux-guest.local

У мене було подібне налаштування за допомогою Parallels пару років тому, але я не пам'ятаю, як це було налаштовано. Можливо, "щойно працював".

Будь-яка пропозиція, як зробити цю роботу?

Відповіді:


14

EDIT Перша версія інструкцій, які я розмістила, викликала конфлікти із сервером імен та шлюзом, які VMware поставив на vmnet8. Ця версія виправляє проблему.

Версії програмного забезпечення:

  • MAC OS X Версія 10.6.3
  • VMware Fusion Версія 3.1.0 (261058)
  • Ubuntu 10,04 LTS

Що я зробив:

  • Під час створення VM встановіть мережу на NAT.

  • На Linux Guest: Запустіть ifconfig, щоб отримати апаратну адресу HWaddr, адресу трансляції Bcast, Інтернет-адресу IPv4 inet addrта маску Mask.

    UbuntuGuest$ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0c:29:53:bf:e5  
              inet addr:192.168.213.129  Bcast:192.168.213.255  Mask:255.255.255.0
                     <snip>
    
  • На Linux Guest: Знайдіть інформацію про сервер імен

    UbuntuGuest$cat /etc/resolv.conf
    nameserver 192.168.213.2
    domain localdomain
    search localdomain
    
  • На Linux Guest: Знайдіть адресу шлюзу: (Позначено у стовпці шлюзу рядка з 0,0.0.0 як призначення.)

    UbuntuGuest$route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.213.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
    0.0.0.0         192.168.213.2   0.0.0.0         UG    100    0        0 eth0
    
  • На хості OS X: Відредагуйте dhcpd.confфайл для vmnet8(NAT віртуальний комутатор), щоб призначити статичну IP-адресу гостю Linux. (Використовуйте редактор за вибором у четвертому рядку)

    OSXHost$cd /Library/Application\ Support/VMware\ Fusion/vmnet8/
    OSXHost$sudo chmod u+w dhcpd.conf
    OSXHost$sudo cp dhcpd.conf dhcpd.conf.bak.20100619
    OSXHost$sudo emacs dhcpd.conf
    
  • На хості OS X: файл почне виглядати приблизно так:

    # Configuration file for ISC 2.0 vmnet-dhcpd operating on vmnet8.
    #
    # This file was automatically generated by the VMware configuration program.
    # See Instructions below if you want to modify it.
    #
    # We set domain-name-servers to make some DHCP clients happy
    # (dhclient as configured in SuSE, TurboLinux, etc.).
    # We also supply a domain name to make pump (Red Hat 6.x) happy.
    #
    
    
    ###### VMNET DHCP Configuration. Start of "DO NOT MODIFY SECTION" #####
    # Modification Instructions: This section of the configuration file contains
    # information generated by the configuration program. Do not modify this
    # section.
    # You are free to modify everything else. Also, this section must start
    # on a new line
    # This file will get backed up with a different name in the same directory
    # if this section is edited and you try to configure DHCP again.
    
    # Written at: 12/26/2009 10:35:10
    allow unknown-clients;
    default-lease-time 1800;                # default is 30 minutes
    max-lease-time 7200;                    # default is 2 hours
    
    subnet 192.168.213.0 netmask 255.255.255.0 {
          range 192.168.213.128 192.168.213.254;
          option broadcast-address 192.168.213.255;
          option domain-name-servers 192.168.213.2;
          option domain-name localdomain;
          default-lease-time 1800;         # default is 30 minutes
          max-lease-time 7200;             # default is 2 hours
      option routers 192.168.213.2;
    }
    host vmnet8 {
        hardware ethernet 00:50:56:C0:00:08;
        fixed-address 192.168.213.1;
        option domain-name-servers 0.0.0.0;
        option domain-name "";
        option routers 0.0.0.0;
    }
    ####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
    

Що слід зазначити:

  • subnetСекція повинна відповідати інформації IP зібраної на Linux Гість. inet addrЗнаходитиметься в межах range, netmaskбуде відповідати Mask, option broadcast-addressбуде відповідати Bcast, option domain-name-serversі option domain-nameбуде відповідати інформації , зібраної з cat /etc/resolv.confі option routersбуде відповідати Gatewayз route -nкоманди.

  • Ми хочемо призначити статичну IP-адресу, щоб ми могли додати запис до hostsфайлу хоста OS X. Адреса повинна бути в межах subnetвизначеного. Адреси, які недоступні для призначення, - це rangeадреси в розділі підмережі, широкомовної адреси, fixed-addressдля host vmnet8, DNS-сервера та шлюзу. І я думаю, що адреса, рівна підмережі, заборонена. У цьому прикладі підмережі є. 192.168.213.0Отже, доступні адресати 192.168.213.1 to 192.168.213.255менше 192.168.213.128 to 192.168.213.245(діапазон), менше 192.168.213.255(широкомовні), менше 192.168.213.1(хост vmnet8) менше 192.168.213.2(шлюз і DNS-сервер). Суть у тому, що адреси 192.168.213.3 to 192.168.213.127доступні.


  • ON хост ОС X: Створіть новий hostзапис під розділом НЕ МОДИФІКУЙТЕ . Цей запис призначить статичну IP-адресу гостю Linux. hardware ethernetпотрібно збігатися HWaddrз ifconfigLinux Guest. Виберіть доступну статичну адресу для fixed-address. option broadcast-address, option domain-name-servers, option domain-nameІ option routersнеобхідність відповідати параметрам , зазначеним в subnetрозділі dhcpd.conf. (Що ми вже відповідали інформації, зібраній на Linux Guest.) У цьому прикладі хост-запис:

    ####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
    host serpents-hold {
        hardware ethernet 00:0c:29:53:bf:e5;
        fixed-address 192.168.213.3;
        option broadcast-address 192.168.213.255;
        option domain-name-servers 192.168.213.2;
        option domain-name localdomain;
        option routers 192.168.213.2;
    }
    
  • На хості OS X Збережіть dhcpd.confі закрийте редактор.

  • На хості OS X та всіх гостях: вимкнення всіх VM та VMware.

  • На хості OS X: перезавантажте служби VMware:

    OSXHost$cd /Library/Application\ Support/VMware\ Fusion/ 
    OSXHost$sudo ./boot.sh --restart 
    
  • На хості OS X: загляньте Activity Monitorі переконайтеся, що два процеси, названі кожним з vmnet-dhcpdних, запущені. (Одне призначено для vmnet8мережі NAT, інше - для мережі, що приймається.) Якщо ви не бачите обох, ймовірно, проблема з vmnet8/dhcpd.confфайлом на хості OS X. Виправте це та повторіть перезапуск послуг VMware.

  • На хості OS X: Запустіть VMware та Linux Guest VM.

  • На Linux Guest В гостьовій машині випробування перевірте, чи налаштування відповідають очікуваним параметрам:

    UbuntuGuest$ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0c:29:53:bf:e5  
              inet addr:192.168.213.3  Bcast:192.168.213.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe53:bfe5/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:103 errors:0 dropped:0 overruns:0 frame:0
              TX packets:71 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:10961 (10.9 KB)  TX bytes:9637 (9.6 KB)
    lo <snip>    
    UbuntuGuest$cat /etc/resolv.conf
    nameserver 192.168.213.2
    domain localdomain
    search localdomain
    UbuntuGuest$route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    192.168.213.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
    0.0.0.0         192.168.213.2   0.0.0.0         UG    100    0        0 eth0
    UbuntuGuest$
    
  • На Linux Guest: Перевірте, чи доступний зовнішній світ:

    UbuntuGuest$ping google.com
    PING google.com (72.14.213.104) 56(84) bytes of data.
    64 bytes from pv-in-f104.1e100.net (72.14.213.104): icmp_seq=1 ttl=128 time=47.6 ms
    64 bytes from 2.bp.blogspot.com (72.14.213.104): icmp_seq=2 ttl=128 time=48.7 ms
    64 bytes from 2.bp.blogspot.com (72.14.213.104): icmp_seq=3 ttl=128 time=48.2 ms
    ^C
    --- google.com ping statistics ---
    4 packets transmitted, 3 received, 25% packet loss, time 3093ms
    rtt min/avg/max/mdev = 47.687/48.223/48.714/0.491 ms
    UbuntuGuest$
    
  • На хості OS X: Додайте до hostsфайлу відображення імені хоста :

    OSXHost$cd /etc
    OSXHost$sudo emacs hosts
    

    Додайте рядок до кінця файлу хостів, використовуючи ім'я хоста Linux і IP-адресу, призначену вище.

    192.168.213.2   serpents-hold
    
  • На хості OS X: Збережіть файл та вийдіть із emacs.

  • На хості OS X: Перевірте, чи доступ Linux Guest доступний за допомогою імені хоста:

    OSXHost$ping serpents-hold
    PING serpents-hold (192.168.213.3): 56 data bytes
    64 bytes from 192.168.213.3: icmp_seq=0 ttl=64 time=0.169 ms
    64 bytes from 192.168.213.3: icmp_seq=1 ttl=64 time=0.244 ms
    ^C
    --- serpents-hold ping statistics ---
    2 packets transmitted, 2 packets received, 0.0% packet loss
    round-trip min/avg/max/stddev = 0.169/0.207/0.244/0.037 ms
    OSXHost$
    

Це чудово ... якщо ваш хост на OSX. Бажаю, щоб я міг десь знайти рівноцінні вікна.
TJ L

1
Чудова інформація. Дякую. 2 оновлення для v4.x 1. Розташування dhcpd.conf зараз: "/ Бібліотека / Налаштування / VMware Fusion /" 2. У Fusion 4 служба мереж не працює, коли Fusion вимкнено. Щоб перезапустити мережевий сервіс, перезапустіть Fusion.
sym3tri

8

Один крок відповіді на початкове запитання полягає у виконанні цієї команди:

$ sudo apt - отримати встановити libnss-mdns

Встановлення цього пакету повинно вмикати функцію миттєво. Після цього ви зможете дістатися до вашого візиту за адресою your-vm-hostname.local. Це буде працювати лише в локальній мережі VM, що залежить від того, як ви його налаштували у своєму програмному забезпеченні для віртуалізації.

Ця функція називається Bonjour від Apple і Zeroconf всіма іншими. Він вбудований в OS X та iOS. Найпростіший спосіб отримати це в Windows - це встановити iTunes для Windows.


Використовуючи це, мені потрібно додати ".local" до імені гостьової машини, наприклад ubuntu-guest.local, коли я посилаюся на це з боку хоста. Що вбік, це чудово працює!
Натаніель Вайсброт

@NathanielWaisbrot Це правда. Ось чого хотів оригінальний плакат.
hashemi

3

Ви можете налаштувати zeroconf за допомогою Avahi, який повинен дозволити клієнту ідентифікувати себе в мережі без реєстрації DNS.


2

припускаючи, що ви просто хочете увійти через командний рядок, чому б не створити файл конфігурації ssh ? Я роблю щось подібне для мого VM.

# ~/.ssh/config
Host linux-box    
Hostname localhost
Port 8822

тоді я можу

mac-box:~ ssh linux-box

1

Якщо ви використовуєте NAT, він може спробувати зареєструватися на серверах DNS, однак на інших комп'ютерах, крім хоста, його IP буде таким же, як і ваші машини, і може викликати кілька проблем.

Я рекомендую вам перейти до мостових мереж, оскільки це дасть йому власну IP-адресу і на будь-якій машині це буде виглядати і відчувати себе, як і будь-яка інша машина в мережі. Якщо ви правильно налаштували всі налаштування IP (або використовуєте DHCP), він повинен автоматично зареєструватися, і у вас не виникне проблем із виконанням будь-якого порту через IP або ім'я хоста.


1
Так, я думаю, що це спрацювало б, але я вважаю за краще стабільну приватну мережу. ВМ знаходиться на ноутбуці, який рухається, а іноді не має підключення до Інтернету. Якщо я використовував мостовий режим, я б не зміг зв’язатися з ним, коли хост був офлайн.
amrox
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.