У меня есть сервер Ubuntu (Ubuntu 20.04.2 LTS), установленный на Hyper-V с Внешний
интерфейс, у него свой IP. Я подключаюсь к нему с помощью Putty через SSH, и он работает.
На этой машине я установил свой собственный сервис, который работает как сервер WebSocket, прослушивающий порт 50000.
Я протестировал его с клиентом, работающим на той же виртуальной машине, подключившись к ws://локальный: 50000/
.
Оно работает.
Затем я запустил тот же тестовый клиент со своего хоста, подключившись к ws://ubuntu-vm:50000/
.
Запись DNS Ubuntu-VM
разрешает внешний IP-адрес моей виртуальной машины. Я использую его для подключения к виртуальной машине с помощью Putty.
пинг ubuntu-vm
конечно работает корректно.
Вот подробное сообщение об ошибке, которое я получаю:
HttpRequestException: не удалось установить соединение, так как целевая машина отказалась от него. (убунту-вм: 50000)
Где-то еще я читал, что мне нужно добавить правило в брандмауэр Ubuntu, поэтому я сделал это:
sudo ufw разрешить с любого на любой порт 50000 proto tcp
sudo ufw разрешить с любого на любой порт 50000 proto udp
Это не помогло. Он работает с виртуальной машины, он не работает с хоста, который видит виртуальную машину, пингует виртуальную машину и подключается к виртуальной машине через SSH.
IDK, возможно, проблема специфична для Hyper-V, но, может быть, я мог бы попробовать что-то в конфигурации моего сервера?