
У меня есть Windows Server 2022 с виртуальной машиной, работающей на Hyper-V. Виртуальная машина — это машина Ubuntu Linux. Я могу пинговать все компьютеры в локальной сети, а также выходить в Интернет. Но я не могу получить доступ к хосту с помощью ping или http. Я уверен, что это не проблема брандмауэра, так как даже после его полного отключения он не работает. Перепробовал все, что видел в Интернете, но, похоже, не могу разобраться с этим.
Также для добавления. Я уже могу получить доступ к виртуальной машине с хоста и других машин в сети. Ping или HTTP как
решение1
При настройке виртуального коммутатора вы выбрали «Частный"Вариант? Это может потенциально объяснить, почему вы не можете связаться с виртуальной машиной с хост-машины.
Если это так, вам нужно выбрать "Внутренний" Вариант.
При необходимости дополнительную информацию можно найти здесь.
Если проблема не в этом, я бы убедился, что «Интегрированные службы» включены, прежде чем проверять конфигурацию NAT и т. д.
https://learn.microsoft.com/en-us/answers/questions/470494/hyper-v-server-is-not-pinging
решение2
В этом случае я бы проверил брандмауэр, чтобы убедиться, что протокол ICMP разрешён на обоих концах.
Разрешить ICMP/PING через брандмауэр Ubuntu (UFW): https://www.kelvinism.com/2010/09/enable-icmp-through-ufw_461.html?m=1
Разрешить ICMP/PING через брандмауэр Windows: https://www.wintips.org/how-to-allow-ping-in-windows-firewall/
решение3
Конечно, ваша ситуация с возможностью пинговать и получать доступ к ресурсам в локальной сети и Интернете с вашей виртуальной машины Ubuntu Linux, работающей на хосте Windows Server 2022 Hyper-V, является многообещающей. Однако возникновение проблем при попытке доступа к хосту с использованием как пинга, так и HTTP требует некоторого исследования. Несколько факторов могут способствовать этому сценарию, и вот фрагмент кода, который поможет вам устранить неполадки и точно определить проблему:
import subprocess
def ping_host(host):
"""Pings the host and returns True if the host is reachable, False otherwise."""
ping_command = ["ping", "-c", "1", host]
ping_process = subprocess.Popen(ping_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
ping_output, ping_error = ping_process.communicate()
ping_process wait()
if ping_process.returncode == 0:
return True
else:
return False
if __name__ == "__main__":
host = "192.168.1.100" # Replace this with the IP address of your host
if ping_host(host):
print("The host is reachable.")
else:
print("The host is not reachable.")
Этот скрипт Python позволяет вам проверить доступность вашего хоста, пингуя его IP-адрес. Сохранив этот скрипт, скажем, как "ping_host.py" и выполнив его на вашей виртуальной машине Ubuntu Linux с помощью команды python ping_host.py, вы можете определить, доступен ли хост. В случае успеха он отобразит сообщение "Хост доступен". В противном случае он отобразит "Хост недоступен".
Хотя код помогает оценить доступность хоста, несколько потенциальных причин могут объяснить проблему. К ним относятся неправильные настройки сетевого адаптера, неправильные настройки IP, правила брандмауэра или даже аномалии сети Hyper-V. Чтобы устранить их, убедитесь, что настройки сетевого адаптера виртуальной машины разрешают общий доступ к управляющей операционной системе. Убедитесь, что конфигурация IP виртуальной машины соответствует подсети хоста. Проверьте правила брандмауэра хоста, чтобы убедиться, что он разрешает трафик ICMP (ping) и HTTP от виртуальной машины.
Если вы рассмотрели все эти аспекты, а проблема осталась, рассмотрите возможность перезапуска как службы Hyper-V, так и виртуальной машины. Кроме того, рекомендуется обновлять службы интеграции Hyper-V на виртуальной машине и отключить IPv6 в качестве дополнительной меры.