У нас есть приложение для подключения к серверу, которое выполняет автоматическое -d обнаружение физических устройств в сети путем прослушивания многоадресных пакетов на порту 6969. Поэтому нам нужен наш док-контейнер, чтобы иметь возможность получать эти пакеты от устройств вне хоста через хост, и в контейнере. Я видел несколько подобных вопросов, и сделал в много из чтения, но я до сих пор не удалось получить ответ сервера на этих широковещательных пакетов.
Я сижу на Wireshark и наблюдаю за сетевым трафиком, но я не специалист. Я знаю, что Docker создает адрес MASQUERADE
чтобы весь трафик выглядел так, как будто он идет от шлюза Docker, поэтому, когда я смотрю veth
я вижу в основном разговоры между 172.17.0.1
и 172.17.0.2
хотя мой сервер не может получить какую-либо информацию об устройствах в сети. (Если я бегу за пределами докера, у меня нет проблем, конечно.)
Я не могу использовать --net=host
поскольку, как и другие, мы используем --link
. Я пробовал следующие варианты...
-
docker run --name app -p 6969:6969 -d me/app:latest
-
docker run --name app -p 0.0.0.0:6969:6969 -d me/app:latest
(Этот, который я мог поклясться, сработал один раз, но теперь нет?) -
docker run --name app -p 0.0.0.0:6969:6969/udp -d me/app:latest
-
docker run --name app -p 255.255.255.255:6969:6969 -d me/app:latest
Буду очень признателен за любую помощь или понимание, которое вы можете предоставить.