Я настраиваю TFTP-сервер на Oracle Linux 8 и сталкиваюсь с некоторыми странными проблемами.
Файлы конфигурации:
/etc/systemd/system/tftp-server.service :::::::::::::: [Единица] Описание=TFTP-сервер Требуется=tftp-сервер.socket Документация=man:in.tftpd [Услуга] ExecStart=/usr/sbin/in.tftpd -c -p -s /tftpboot StandardInput=розетка [Установить] WantedBy=многопользовательский.целевой Также=tftp-сервер.сокет :::::::::::::: /etc/systemd/system/tftp-server.socket :::::::::::::: [Единица] Описание=Сокет активации сервера TFTP [Разъем] ПрослушатьДатаграмма=69 BindIPv6Only=оба [Установить] WantedBy=сокеты.цель
Оба tftp-server и tftp.socket запущены и включены:
● tftp-server.service - Tftp-сервер Загружено: загружено (/etc/systemd/system/tftp-server.service; включено; предустановка поставщика: отключено) Активен: активен (работает) с Вт 2022-12-13 09:08:41 EST; 11 мин назад Документы: man:in.tftpd Основной PID: 6308 (in.tftpd) Задания: 1 (лимит: 48835) Память: 200.0К CGroup: /system.slice/tftp-server.service └─6308 /usr/sbin/in.tftpd -c -p -s /tftpboot 13 дек. 09:08:41 systemd[1]: Запущен сервер Tftp. ● tftp.socket — сокет активации сервера Tftp Загружено: загружено (/usr/lib/systemd/system/tftp.socket; включено; предустановка поставщика: отключено) Активен: активен (работает) с Вт 2022-12-13 09:08:37 EST; 11 мин назад Слушать: [::]:69 (Датаграмма) Задания: 0 (лимит: 48835) Память: 0Б CGroup: /system.slice/tftp.socket 13 дек. 09:08:37 systemd[1]: Закрыт сокет активации сервера TFTP. 13 дек. 09:08:37 systemd[1]: Остановка сокета активации сервера TFTP. 13 дек. 09:08:37 systemd[1]: прослушивание сокета активации сервера TFTP.
Права доступа к каталогу /tftpboot установлены на чтение всем миром (777), и в каталоге есть текстовый файл, доступный для чтения всем миром. Когда я пытаюсь выполнить TFTP с того же сервера, я получаю сообщение «Код ошибки 1: Файл не найден». Когда я пытаюсь выполнить TFTP get с сервера в той же локальной VLAN, get запускается, и в конечном итоге я получаю сообщение об ошибке «Превышено время ожидания передачи». Iptables на сервере настроен на разрешение входящего UDP-порта 69.
Я не уверен, что я здесь упускаю. Я следовал инструкциям наhttps://linuxhint.com/tftp_server_centos8/но я просто не могу установить соединение, даже с локального хоста. Любые идеи были бы очень признательны!
решение1
Я думаю, что я разобрался с проблемой. Запустив несколько проверок статуса, я заметил, что tftp и tftp-server оба работают, но используют разные файлы конфигурации:
systemctl статус tftp ● tftp.service - Tftp-сервер Загружено: загружено (/usr/lib/systemd/system/tftp.service; косвенный; предустановка поставщика: отключено) Активен: активен (работает) с Ср 2022-12-14 10:56:41 EST; 10 мин назад Документы: man:in.tftpd Основной PID: 9604 (in.tftpd) Задания: 1 (лимит: 48835) Память: 244.0К CGroup: /system.slice/tftp.service └─9604 /usr/sbin/in.tftpd -s /var/lib/tftpboot 14 дек. 10:56:41 systemd[1]: Запущен сервер Tftp. systemctl статус tftp-сервер ● tftp-server.service - Tftp-сервер Загружено: загружено (/etc/systemd/system/tftp-server.service; включено; предустановка поставщика: отключено) Активен: неактивен (мертв) с Вт 2022-12-13 12:57:45 EST; 22 часа назад Документы: man:in.tftpd Основной PID: 6832 (код=выход, статус=0/УСПЕХ) 13 дек 12:42:45 systemd[1]: Остановлен сервер TFTP. 13 дек 12:42:45 systemd[1]: Запущен сервер Tftp. 13 дек 12:57:45 systemd[1]: tftp-server.service: Успешно.
Копирование синтаксиса из /etc/systemd/system/tftp-server.service в /usr/lib/systemd/system/tftp.service заставило TFTP снова работать. Я не совсем понимаю, почему это произошло, но, по крайней мере, TFTP теперь работает.