Я использую один и тот же образ ova как на локальной машине, так и на другом headless-сервере, который виртуализирован на каком-то сервере vsphere esxi.
При запуске виртуальной машины на локальной машине я могу получить доступ к SSH-серверу гостя через NAT (localhost:2222), а также через host-only-network (192.168.56.111:22).
При запуске гостя на headless-сервере я не могу выполнить ping машины с использованием host-only-network. Когда я пытаюсь использовать NAT, порт 2222 открыт на headless-сервере, но соединение ssh истекает, так как ничего не возвращается.
vboxmanage showvminfo показывает следующее для сетевых настроек гостя (одинаковый вывод на локальной машине и сервере без монитора):
NIC 1: MAC: 080027788420, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
NIC 1 Settings: MTU: 0, Socket (send: 64, receive: 64), TCP Window (send:64, receive: 64)
NIC 1 Rule(0): name = Rule 1, protocol = tcp, host ip = , host port = 2222, guest ip = , guest port = 22
NIC 2: MAC: 080027FBC41B, Attachment: Host-only Interface 'vboxnet0', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none
vboxmanage list hostonlyifs показывает это с одинаковыми значениями для моей локальной машины и headless-сервера:
Name: vboxnet0
GUID: 786f6276-656e-4074-8000-0a0027000000
DHCP: Disabled
IPAddress: 192.168.56.1
NetworkMask: 255.255.255.0
IPV6Address: fe80::800:27ff:fe00:0
IPV6NetworkMaskPrefixLength: 64
HardwareAddress: 0a:00:27:00:00:00
MediumType: Ethernet
Wireless: No
Status: Up
VBoxNetworkName: HostInterfaceNetworking-vboxnet0
vboxmanage list natnets показывает это с одинаковыми значениями для моей локальной машины и headless-сервера:
NetworkName: NatNetwork
IP: 10.0.2.1
Network: 10.0.2.0/24
IPv6 Enabled: No
IPv6 Prefix: fd17:625c:f037:2::/64
DHCP Enabled: Yes
Enabled: Yes
loopback mappings (ipv4)
127.0.0.1=2
ifconfig на моей локальной машине и на headless-сервере показывает интерфейс vboxnet0 с одинаковыми значениями.
У меня нет идей, почему я не могу получить доступ к гостевому SSH-серверу на headless-сервере. Помощь будет очень кстати.
решение1
В общем, используйте NAT в VirtualBox только для исходящих сессий. Входящие сессии вызывают проблемы. Однако вы можете создать правила переадресации портов, например:
VBoxManage setextradata VMNameHere "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata VMNameHere "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata VMNameHere "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 2222
Сеть host-only, как и говорится, host-only. Это означает, что она доступна на хосте, но не в других местах. Поэтому у вас есть два варианта:
- используйте мостовой адаптер вместо хост-только. Мостовые адаптеры доступны из внешнего мира.
- Создайте мост (в Linux с помощью
bridge-utils
) между
Я бы использовал мостовой адаптер.
--РЕДАКТИРОВАТЬ--
Мостовой адаптер — это как раз то, что помещает OVA в сеть. Если ваша сеть использует dhcp, вы должны увидеть это в журнале вашего dhcp-sever. Или, возможно, вы могли бы использовать nmap
для поиска адреса.
В качестве альтернативы используйте второй адаптер в качестве мостового адаптера, подключитесь к хосту по ssh и попробуйте определить, какой порт слушает сервер.netstat -an