Я задавал этот вопрос на Обмен стеков Unix, но вскоре понял, что проблема не в докере, а в VirtualBox или Windows, поэтому я спрашиваю об этом здесь.
Я пытаюсь установить TFTP-сервер в контейнере Docker под управлением Ubuntu (либо 12.04
или latest
, либо он не работает) через Boot2Docker в Windows 8.1. Моя цель установить ТУМАН поэтому я могу легко развернуть его на нескольких серверах или ноутбуках в моей организации.
Когда я запускаю образ докеры на двух ноутбуках с Ubuntu, TFTP отлично работает. Я могу загрузить PXE, запустить tftp [IP address here] GET boot.txt
в Windows или Linux и все такое прочее.
Когда я запускаю образ докера в Windows 8.1 (я пробовал три ПК), TFTP истекает, несмотря на то, что порт 69 открыт в VirtualBox И брандмауэре Windows (который все равно отключен). Если я сбегу tcpdump
в контейнере, плюс Wireshark на хосте Windows 8.1 И на удаленном компьютере с Windows 8.1, я вижу, как TFTP-пакеты покидают удаленный компьютер, прибывают на хост, прибывают на гостевую и покидают гостя, но не покидают хост, ни прибытие на удаленную машину. Странно то, что я могу получить доступ к порту 80 (веб-панель управления FOG)
iptables
, или UFW
или в моем контейнере не установлен какой-либо брандмауэр, поэтому я полагаю, что проблема в VirtualBox или Windows, и я не знаю, какой именно.
На моем рабочем компьютере установлен McAfee, но на домашнем компьютере антивирус не установлен, так что дело не в этом. Я здесь в растерянности.
Какие-нибудь подсказки?
Я видел, как Windows 8 предотвращает определенный сетевой трафик «даже», когда не работает собственный брандмауэр! Пожалуйста, помните, что TFTP - это протокол, который согласовывает свои передачи через порт 69, но позже фактическая передача данных осуществляется через случайно выбранный порт. Оба порта должны быть открыты для трафика. Вместо того, чтобы отключать брандмауэр Windows, почему бы вам не попробовать создать соответствующие правила открытия брандмауэра.