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) перед отправкой - никогда не требовалось на других машинах, на которых я устанавливал сервер.

Не вещь администрирования сервера - просто казалось, что это возможно.

Другие вопросы по тегам