Адрес гостя VMWare Fusion Linux по имени хоста?
У меня есть образ Ubuntu Server 9.04, настроенный в VMWare Fusion 3.0.0, с использованием опции NAT для сетевого подключения гостя. С хоста Mac я могу просто подключиться к ssh гостю linux, используя его IP-адрес, но я хотел бы иметь возможность ссылаться на него по имени хоста для удобства. то есть:
mac-host:~ ssh user@linux-guest.local
У меня была похожая установка с использованием Parallels пару лет назад, но я не помню, как она была настроена. Возможно, это только что сработало.
Любое предложение о том, как сделать эту работу?
5 ответов
РЕДАКТИРОВАТЬ Первая версия инструкций, которые я опубликовал, вызвала конфликты с сервером имен и шлюзом, который VMware поставил на vmnet8. Эта версия исправляет проблему.
Версии программного обеспечения:
- MAC OS X версия 10.6.3
- VMware Fusion Версия 3.1.0 (261058)
- Ubuntu 10.04 LTS
Что я сделал:
Во время создания виртуальной машины установите для сети значение NAT.
В гостевой системе Linux: Запустите 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: поиск информации о сервере имен
UbuntuGuest$cat /etc/resolv.conf nameserver 192.168.213.2 domain localdomain search localdomain
В гостевой системе Linux: найдите адрес шлюза: (Перечислен в столбце "Шлюз" строки с 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-адрес, чтобы мы могли добавить запись к хосту OS X
hosts
файл. Адрес должен быть в пределах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
доступны.
На хосте OS X: создайте новый
host
Запись под разделом НЕ ИЗМЕНИТЬ. Эта запись назначит статический IP-адрес гостю Linux.hardware ethernet
должен соответствоватьHWaddr
отifconfig
на гостевой Linux. Выберите доступный статический адрес дляfixed-address
,option broadcast-address
,option domain-name-servers
,option domain-name
а такжеoption routers
должны соответствовать параметрам, указанным вsubnet
разделdhcpd.conf
, (Что мы уже сопоставили с информацией, собранной в гостевой системе Linux.) В этом примере запись узла:####### 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 Host Save
dhcpd.conf
и закройте свой редактор.На хосте OS X и всех гостях: выключите все виртуальные машины и 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.
В гостевой Linux На гостевой виртуальной машине убедитесь, что настройки соответствуют ожиданиям:
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: убедитесь, что внешний мир доступен:
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
Добавьте строку в конец файла hosts, используя имя хоста гостя Linux и IP-адрес, назначенный выше.
192.168.213.2 serpents-hold
На хосте OS X: сохраните файл и выйдите из emacs.
На хосте OS X: проверьте, что гостевой Linux доступен по имени хоста:
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$
Один шаг ответа на исходный вопрос - запустить эту команду:
$ sudo apt-get install libnss-mdns
Установка этого пакета должна включить функцию мгновенно. После этого вы сможете добраться до своей виртуальной машины по адресу your-vm-hostname.local
, Это будет работать только в локальной сети виртуальной машины, которая зависит от того, как вы настроили ее в своем программном обеспечении для виртуализации.
Эта функция называется Bonjour Apple и Zeroconf всеми остальными. Он встроен в OS X и iOS. Самый простой способ получить его в Windows - это установить iTunes для Windows.
Вы можете настроить zeroconf с помощью Avahi, что позволит клиенту идентифицировать себя в сети без регистрации DNS.
Если вы просто хотите войти через командную строку, почему бы не создать файл конфигурации ssh? я делаю что-то подобное для моей виртуальной машины.
# ~/.ssh/config
Host linux-box
Hostname localhost
Port 8822
тогда я могу
mac-box:~ ssh linux-box
Если вы используете NAT, он может попытаться зарегистрироваться на DNS-серверах, однако на компьютерах, отличных от хоста, его IP-адрес будет таким же, как у ваших компьютеров, и может вызвать несколько проблем.
Я бы порекомендовал вам переключиться на мостовую сеть, так как это даст ему собственный IP-адрес, и любой машине он будет выглядеть и чувствовать себя как любая другая машина в сети. Если вы правильно настроили все настройки IP (или используете DHCP), он должен автоматически зарегистрироваться, и у вас не должно возникнуть проблем с выполнением каких-либо действий на любом порту через IP или имя хоста.