По умолчанию Docker, по-видимому, не выполняет пробивание UDP-отверстий.
Есть ли способ включить это? Или это вообще не поддерживается?
Примечание:
Пробивание UDP-дыр отличается от переадресации портов, настроенной с помощью опции -p. Это означает, что устройство может ответить на пакет UDP, исходящий из вашего образа докера, используя исходный IP-адрес и порт в полученном пакете, и NAT сопоставляет его с правильным изображением и портом. Эта функция поддерживается большинством маршрутизаторов по умолчанию.
Может быть, я должен объяснить, почему я хочу это вместо пересылки -p, встроенной в докер. Мы знаем IP-адрес устройств, с которыми мы хотим общаться, из нашего образа докера, когда мы отправляем наш UDP-пакет на это устройство, если мы используем переадресацию -p, тогда ответный пакет пересылается нам, но изменяются как адрес from, так и порт. по докеру NAT. Это означает, что когда мы получаем этот пакет, мы фактически не знаем, от кого он. Это может быть нормально, если вы говорите только с одним устройством, однако мы можем говорить со многими, поэтому, когда вы получаете пакет с другого адреса, отличного от того, на который мы отправили, мы не можем узнать, с кого этот пакет на самом деле. Мы надеемся, что при пробивании UDP адрес от адреса останется без изменений.