UDP-сервис Google Compute Engine доступен только с внешних IP-адресов.
У меня есть небольшой и простой UDP-сервер, который работает в нескольких хостингах в течение многих лет.
Я только что создал новый виртуальный компьютер в облаке Google, Compute Engine, с Linux.
Настройки по умолчанию для небольшого компьютера (f1-micro (1 vCPU, 0,6 ГБ памяти), процессор, платформа Intel Sandy Bridge), только с изменениями:
- статический публичный IP
- правило входящего брандмауэра, разрешающее UDP-трафик через порт сервера (22000)
Все прекрасно работает и может быть подключено из любой точки мира, кроме как с самого компьютера (есть модуль статистики, который запрашивает информацию у сервера - это также работает с удаленного компьютера, но не с самого компьютера). Это работало на всех других машинах Linux, на которых я пробовал сервер.
Меня указали на изменение адреса, к которому сервер привязывается, в качестве возможного решения, и, поскольку у меня есть доступ к исходному коду, я попробовал все, что я могу себе представить, безрезультатно (привязка к 127.0.0.1, 0.0.0.0, "localhost", конкретный IP...).
Я также попытался добавить определенные правила входящего и исходящего брандмауэра.
Вокруг куча информации о том, как исправить ситуацию, когда вы не можете подключиться извне - моя проблема противоположна, и я из идей.
Пинг и тд работают нормально.
заранее спасибо
1 ответ
Решено!
Очевидно, что на этих машинах / ядре сокеты UDP должны иметь имя (bind) перед отправкой - никогда не требовалось на других машинах, на которых я устанавливал сервер.
Не вещь администрирования сервера - просто казалось, что это возможно.