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