TFTP — простой протокол для передачи файлов по сети, использует протокол UDP (по порту 69), не поддерживает аутентификацию и шифрование. TFTP часто используется для загрузки файлов (прошивок, конфигураций) на устройства (маршрутизаторы, мини-АТС и другие), но его можно использовать и для простой пересылки файлов по сети между компьютерами. Для Linux доступно несколько TFTP демонов (серверов): tftpd, atftpd, tftpd-hpa. Вы можете использовать любой из них. Я расскажу, как устанавливать tftpd.
Помимо tftpd нужно будет установить службу inetd. inetd — представляет собой сетевую службу, которая обрабатывает входящие соединения (TCP, UDP) и запускает соответствующую программу для обработки запроса. Я буду использовать службу openbsd-inetd. Есть еще служба xinetd, вы можете ее использовать, но настраивается она несколько иначе.
Установка сервера tftpd и службы openbsd-inetd
Установим сервер tftpd и openbsd-inetd, для этого выполним команду:
sudo apt-get install openbsd-inetd tftpd tftpПо завершении установки вы увидите сообщения вида:
...
Настраивается пакет openbsd-inetd (0.20080125-4ubuntu2) ...
* Stopping internet superserver inetd [ OK ]
* Not starting internet superserver: no services enabled
Настраивается пакет tftpd (0.17-17ubuntu1) ...Настройка tftpd
По умолчанию TFTP сервер настроен на использование директории /srv/tftp. Мы настроим TFTP сервер так, чтобы он использовал для работы директорию /tftpboot. В этой директории будут храниться файлы, которые мы можем скачать с сервера или же закачать в нее. Отредактируем файл /etc/inetd.conf.
sudo gedit /etc/inetd.confВ файле найдите строки вида:
#:BOOT: TFTP service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers."
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftpАргумент /srv/tftp команды in.tftpd указывает на каталог в котором будут храниться файлы TFTP сервера. Заменим /srv/tftp на /tftpboot.
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpbootСоздадим директорию /tftpboot:
sudo mkdir /tftpbootИзменим права доступа:
sudo chown -R nobody /tftpbootПерезапуск службы inetd
Чтобы новые настройки вступили в силу, перезапустим службу inetd:
sudo /etc/init.d/openbsd-inetd restartНа этом установка TFTP сервера завершена, проверим его работу.
Проверка работы TFTP сервера, использование TFTP клиента
Для начала установим TFTP клиент, чтобы можно было подключаться к TFTP северу. Для установки TFTP клиента выполните в терминале команду:
sudo apt-get install tftpТеперь создадим на сервере в директории /tftpboot какой-нибудь файл, например, myfile. Для создания файла myfile и записи в него текста «This is my file» выполните в терминале команду:
echo This is my file > /tftpboot/myfileТеперь мы можем запустить TFTP клиент командой tftp. Команда tftp принимает в качестве параметра IP адрес сервера. Если вы запускаете клиент на локальном компьютере, то укажите IP адрес 127.0.0.1, если же на удаленном компьютере, то укажите IP адрес сервера.
tftp 127.0.0.1Когда клиент запустится, вы попадете в режим ввода команд для клиента TFTP. Выполните команду get myfile, которая означает получить файл с именем myfile с сервера.
tftp> get myfileВ случае, если вы все сделали правильно, файл myfile загрузится с TFTP сервера. Для выхода из TFTP клиента введите команду quit.
Комментарии
13:27
16:20
13:54
17:35
C:Documents and SettingsARTEM>tftp -i 77.91.154.20 put C:myfile.txt
Ошибка на сервере: Access violation
как это решить подскажите пожалуйста
11:29
1) nano /etc/inetd.conf - правильно ли выставлен каталог?
2) права
3) /etc/init.d/openbsd-inetd restart
10:31
12:24
Всё работает.
17:38
13:52
во время настроек возникли проблемы. Работаю из XP с сервером на виртуальной машине(ubuntu). Удается читать, но при попытке записать выводить Access violation.
"1) nano /etc/inetd.conf - правильно ли выставлен каталог?
2) права
3) /etc/init.d/openbsd-inetd restart" - проверял все, не помогает.
Заранее спасибо!
13:40
12:58
16:33
За что и говорю спасибо.
Только не пойму вот сохраняется у меня всё только в домашнем каталоге в пользовательской папке.
Всё перерыл, но не нашёл где это указано. Везде поставил другую папку.
Спасибо
18:44
/etc/hosts.allow и /etc/hosts.deny для ограничения доступа. Демон, использующий эти файлы
ЗЫ пол часа угробил пока надыбал как разрешить залить
12:02
Потому что я тоже уже полчаса угробил, но пока всё еще deny, и не могу понять, толи я кривой, толи причина в чём-то еще.
Напишите плиз какое-нибудь общее правило на все адреса по типу ALL: 0.0.0.0/0.0.0.0 и какой демон надо перезапускать.
13:30
12:09
10:27
20:27