9 free tftp server software for windows computers (updated 2021)

Обзор

Благодаря своей простой конструкции TFTP может быть легко реализован с помощью кода с небольшим объемом памяти . Поэтому протокол выбора для начальных стадий любой начальной загрузки сети стратегии как BOOTP , PXE , БСДП и т.д., при ориентации с высокими ресурсами компьютеров с очень низкими ресурсами одноплатных компьютеров (SBC) и систем на кристалле (SoC ). Он также используется для передачи образов микропрограмм и файлов конфигурации на сетевые устройства, такие как маршрутизаторы , брандмауэры , IP-телефоны и т. Д. Сегодня TFTP практически не используется для передачи данных через Интернет.

На дизайн TFTP повлиял более ранний протокол EFTP , который был частью набора протоколов универсальных пакетов PARC . Протокол TFTP был впервые определен в 1980 г. в IEN 133. В июне 1981 г. Протокол TFTP (Revision 2) был опубликован как RFC 783 и позже обновлен в июле 1992 г. RFC 1350, который, среди прочего, исправил синдром ученика чародея . В марте 1995 года RFC 1782 о расширении опций TFTP, обновленный позже в мае 1998 года RFC 2347, определил механизм согласования опций, который устанавливает структуру для опций передачи файлов, которые должны быть согласованы до передачи с использованием механизма, совместимого с исходной спецификацией TFTP.

TFTP — это простой протокол для передачи файлов, реализованный поверх протоколов UDP / IP с использованием хорошо известного номера порта 69. TFTP был разработан таким образом, чтобы он был небольшим и простым в реализации, поэтому ему не хватает большинства расширенных функций, предлагаемых более надежными. протоколы передачи файлов. TFTP только читает и записывает файлы с удаленного сервера или на него. Он не может перечислять, удалять или переименовывать файлы или каталоги и не имеет условий для аутентификации пользователей. Сегодня TFTP обычно используется только в локальных сетях (LAN).

[edit] Mac OS X

OS X ships with a command-line TFTP client.

First, download the firmware file and put it in your user folder (/Users/yourusername/).

Then connect your computer directly to your router via ethernet. Go to System Preferences > Network. Click on «Ethernet» in the left panel and change «Configure IPv4» to «Manually». Then change «IP address» to 192.168.1.x (where x is any number between 2 & 255).

Then copy & paste the following text into a text editor:

 connect 192.168.1.1
 binary
 rexmt 1
 timeout 60
 put dd-wrt.vXX_XXX.XXX

Change the last line to the filename of the firmware file, which you just moved to your user folder. Copy the whole thing, including the line break after the last line.

Now open Applications > Utilities > Terminal. Enter:

 tftp

A «tftp>» command prompt will appear. Now press the reset button on your router. On the tftp command line in Terminal, paste (Cmd+v) the text you copied. Since you copied the line break at the end, tftp will execute the command at the moment you paste it. Depending on your router, you may have to paste it multiple times to get the timing right.

If it works, you’ll see something like this:

 tftp> connect 192.168.1.1
 tftp> binary
 tftp> rexmt 1
 tftp> timeout 60
 tftp> put dd-wrt.vXX_XXX.XXX
 Sent 1769472 bytes in 9.0 seconds

Performance

The TFTP protocol uses a lock-step algorithm. After the transmitter sends a block of
data, it waits for an acknowledgement of reception before sending the next block.
The transfer rate is therefore limited to the round-trip time (RTT). If the round-trip
time between two hosts is 20 ms, for example, then the transmitter can send up
to 50 blocks per second. With a default block size of 512 bytes, the transfer
rate is bound to 25 KiB/s.

One way to improve this is to use larger blocks. On links with a large
round-trip time, transfer speed may improve dramatically by using block sizes
of 1024 or 1468 bytes. (As was mentioned earlier, 1468 bytes is a common limit,
chosen so that the total size of the data payload and protocol headers does not
exceed the 1500-bytes Ethernet MTU.)

Although the TFTP protocol is standardized as «lock-step», it will actually work
with a transfer window. The
WvTftp server
pioneered this design. With a transfer window, the file transmitter sends
new packets before having received the acknowledgements for previous packets.
With a transfer window, multiple packets may be «in flight» on the network: these
are packets that have been sent out, but have not yet been acknowledged. The WvTftp
implementation refers to the transfer window as «negative latency», by the way.
I prefer the term «transfer window», because the technique is quite similar to
how the TCP protocol handles data transfer.

A transfer window does not require changes in the receiver of the file: each
received data block is still acknowledged individually. A receiver should
check that the received packet is the one that it expects, because with multiple
packets in flight the packets may arrive out of order. However, TFTP receivers
should already check the packet number for reasons of avoiding the
Sorcerer’s
Apprentice Syndrome.

A transfer window on TFTP should just work out of the box. When you choose the
size of the window too large, it may damage performance instead of help it, because
the receiver may not be able to handle the packets at the speed that the transmitter
tries to pump them over the network. If the receiver «back-log queue» is smaller
than the transmitter window, packets may get dropped, and the transfer will then
stall on the time-outs.

To avoid the above scenario, I propose the option «window» that the client can set.
In option negotiation, the transmitter and sender can then select the smallest
window that either side handles optimally. The parameter of this option is the
number of data packets, not bytes. So if you negotiate a window of 4 and the block
size is 1024, there may be 4 packets with 1024 bytes each in flight at any time.

I have referred to the TCP protocol essentially using the same technique for a
(sliding) transfer window.
The TCP protocol uses a combination of negotiation and detection of the network
congestion to determine an optimal window, using
slow-start and
back-off algorithms.
I feel that option negotiation lies more in the nature of the TFTP protocol than
these adaptive algorithms.

Handling large files

The basic TFTP protocol works with packets with 512 bytes of data —with an exception
for the final block of the transfer. Each packet contains a 16-bit block counter and
this counter starts at 1 (one) for the first block. As long as the data to transfer
is less than 65535 blocks (the highest value for a 16-bit counter), all is well.
This sums up to (nearly) 32 MiB.

For bigger files, there are three options: larger TFTP data blocks, allowing the
block counter to roll over and concatenation of separate transfers to a single file.

  • Larger data blocks

    RFC 2348
    defines an extension for larger block sizes. Even though the RFC allows blocks of up to
    65464 bytes, in practice the limit is set to 1468 bytes: the size of an Ethernet
    MTU minus the headers of TFTP (4 bytes), UDP (8 bytes) and IP (20 bytes). Larger
    packets run a high risk of being fragmented at the IP level, and this is generally
    considered a bad thing. With a block size of 1468 bytes, the maximum
    transfer size is over 91 MiB. Increasing the block size improves the transfer
    performance at the same time as allowing larger files to be transferred.

    Next to the standard «blksize» option, there is also a non-standard «blksize2»
    option. The latter has the restriction that the block size must be a power of
    two (512, 1024, 2048, …). The server should not use a block size below 512
    bytes unless a client has explicitly requested it.

  • Block counter roll-over

    RFC 1350 does not mention block counter roll-over, but several TFTP hosts implement
    the roll-over be able to accept transfers of unlimited size. There is no consensus,
    however, whether the counter should wrap around to zero or to one. Many implementations
    wrap to zero, because this is the simplest to implement. The
    «ARINC 615A
    Data Load Protocol» mandates a roll-over to 1.

    Although the block counter roll-over does not need a change in (or extension of)
    the TFTP protocol per se, it does require that both host agree on the
    method of rolling over. While many TFTP hosts use block counter roll-over implicitly,
    it should be an option in the TFTP option negotiation. I propose the option name
    «rollover» for this purpose. The client sets this option if it supports block counter
    roll-over, and it indicates whether it wants to wrap to zero or wrap to one. The
    server acknowledges this option if it supports roll-over and the method.

  • Collect separate TFTP transfers into a single file

    Instead of requesting full files, a client could ask the server to transfer
    part of a file. The client sets the offset from the beginning of the file through
    an option. The server acknowledges the option if it supports it. The «toffset»
    option would normally be combined with the «tsize» option to set both the start
    offset and the amount of data to transfer. The «toffset» option is my proposal;
    «tsize» is a standard option defined in
    RFC 2349.

Комментарии

Отлично и все так просто. Как раз хочу сохранить конфиг с маршрутизатора.

Распишите пожалуйста подробно, как с помощью этого ПО прошить голосовой шлюз. Где какие адреса вписывать и директории.

Возможно, в будущем обязательно напишу. Пока нет под рукой голосового шлюза от Cisco.

Разобрался. Утилита бородатая и просто не хочет правильно работать на семёрке. На хрюшке нормально заработала, правда пришлось правило фаэрвола ручками подправить – открыть 69 порт.

Не в чем там разбираться. Бородатость утилиты тут не причем, тем более последняя версия от 06.05.2015, тут семёрка даже с первым сервиспаком бородастей будет. Утилита прекрасно работает на всех версиях 32/64 рабочих станций и серверов. По умолчанию при запуске привязывается к первому интерфейсу по списку, если адрес 127.0.0.1 в списке первый, то к нему и привяжется. В утилите надо в настройках включить Bind TFTP to this address и выбрать нужный адрес из списка, чтобы он записался в файл tftp32.ini

Игорь, дружище, спасибо огромное, просто и быстро всё заработало, solarwinds ваще не хотел коннектить.

Как импортировать большую базу в MySQL

Отличие Chrome от Chromium

Как узнать все твиты одного автора

Как я русифицировал Kindle 4?

Ошибка Fatal error / Invalid license у панели ISP manager

Как узнать кто провайдер по IP-адресу?

Почему FTP может портить файлы?

Как подключить к Cisco чужой SFP-модуль

Ошибка при загрузке компьютера или о чем пищит BIOS?

5% заполнение листа или о чем не договаривают производители оргтехники?

Как стать хорошим системным администратором

Если Вы используете материал моего блога, то будьте добры поставьте ссылку.

[edit] General

This article describes how to do an initial flash or a TFTP recovery flash for your device.

  1. Unplug the router, get a for the PC, and connect it via network cable to a router LAN port
  2. Set a fixed IP address on the PC with the same network as your router, e.g. Router: 192.168.1.1, PC: 192.168.1.2
  3. Setup the TFTP client, then start a continuous ping (-t switch is needed for this in Windows) to the router
  4. Plug in the router and start the TFTP client as soon as there is a TTL=100 ping response. The client should show transfer.
    • TTL=64 means application code has been reached. If the router isn’t responding, it is soft-bricked (use OEM firmware)
    • Read about timing problems below:

Special Asus TFTP Flashing Procedures

Some routers like the Asus WL-500xx series (WL-500G, WL-500G Premium, WL-500W, WL-500G Deluxe), need additional steps to perform a complete and proper initial flash. See this wiki page: Asus TFTP Flash

Special for Vista, Win7 and Win 2008

In order to catch the narrow window for TFTP flash, you should use platforms with simple TCP/IP implementations that don’t have CTCP implemented: Windows XP or Linux are reported to work, but some have reported significant problems with Vista, Windows 7 or Windows 2008.

For more information see this posting

Edit: While some may have reported problems, CTCP is definitely not the issue, because it is disabled by default in Windows Vista and Windows 7. So unless people are specifically turning it on, it isn’t running. I personally just used TFTP on my router with no difficulties, although mine is a Netgear WNDR3700 that was waiting for a TFTP flash and didn’t have this race condition at boot as some of these routers seem to. But again, even if you have an issue it’s not CTCP. Check out the wikipedia article on CTCP for information on how to check if it is running and how to disable it (both are simple command line entries).

If having issues, try connecting a separate network switch between the PC and router, so the PC network port sees a connection before the router port is up. This should allow for a faster ping reply. Then follow the instructions as normal.

Special for Linksys WRT54GL Users

If the router seems to be bricked so that the power light is constantly blinking and pinging the router results in TLL=100 continuously, then there is still a great chance that tftp can help.
Firstly you must flash the router with the original firmware available at Linksys homepage www.linksys.com, since flashing it with DD-WRT probably won’t give any result at all. Then do a 30/30/30 and after that you can flash with DD-WRT Mini. The initial flashing can be done with only the mini version, perhaps later you can move on to bigger versions of it.

WinAgents TFTP Server

WinAgents Software Group offers free downloads of their TFTP Server. It’s a legacy software designed to run on Windows 2000, 2003, Vista, and 7, which makes it useful if you work with these older OSes on your network. It can probably work with Windows 10 as well, you just need to try it.

WinAgents TFTP Server operates as a background service and implements an IP-based access control model for some kind of network security.

It also supports sending files through firewalls by configuring a UDP port for the connections. Administrators who manage large intranets or remote sites will find the remote configuration features helpful. The cache system makes the system highly scalable compared to other free TFTP tools.

Install TFTP Client

At this point, the TFTP server is installed and configured.

Now, you will need to install a TFTP Client on the Client computer.

You can install the TFTP Client on the client computer by following the below steps:

1. Click on the Start Menu and click on Control Panel.

2. Click on the Programs and Features => Turn Windows features on or off. This will open the Windows Features dialog box.

3. Scroll down until you see the TFTP Client check box and CHECK it as shown below:

4. Click on the OK button to start the installation process of the TFTP client.

This process will take some time to finish the installation. Once you are finished, you can proceed to the next step.

What is TFTP Recovery over Ethernet?

On most devices, the vendor provided boot loader is a partition separated from the actual firmware. In case of a failed flash process or in case of a misconfiguration, the device’s boot loader usually is still untouched and fully working. It the boot loader has a built-in “TFTP recovery mode”, it enables to regain control of a device with a broken firmware partition, by allowing a recovery flash process (which will also reset your configuration to the device defaults).

For many routers the recovery works by starting a TFTP server on your computer. Then device with the broken firmware has to be started up in TFTP recovery mode. Some devices then will pull the network-provided firmware file over TFTP network protocol to the OpenWrt and hopefully recover with a successful emergency flash process.

Some devices do not have automatic pull function and they need manual TFTP copy commands in recovery mode to get firmware from TFTP and firmware install.

NOTE: Some other routers, e.g. many Netgear routers, have TFTP server on themselves, and the PC needs to act as TFTP client. The “TFTP recovery mode” can also mean that, so look carefully at info about your router to find out which method your router possibly supports.

The below article mainly advises on the “TFTP client at router” recovery.

Как передавать файлы в сети TFTP

После установки клиента и перенаправления порта перейдем к передаче файлов. Убедитесь, что сервер запущен, затем следуйте инструкциям:

Нажмите Win + R, в диалоговом окне наберите cmd для вызова командной строки. Перенесите или скопируйте файлы, которые хотите передать, в корневой каталог сервера.

Для отправки файлов нужно использовать параметр PUT, при получении GET. Синтаксис команды выглядит следующим образом:

Например, для передачи используйте команду:

Если хотите получить файл, то команда будет выглядеть:

Если хотите переслать на удаленное устройство за пределами сети, нужно указать публичный IP-адрес в командной строке, а затем порт. Примером может быть:

Unreliable data streaming

Sometimes a quick delivery of packets is more important than the recovery of a
lost packet. Streaming of audio and video are an example of this. For these
purposes the UDP protocol is more appropriate than TCP, because TCP has reliable
resending of lost packets built into the protocol. TFTP uses UDP as the transport
medium, but it adds «reliability» itself.

To make TFTP more suitable for multimedia data streaming, I propose that the transmitter
never resends blocks, that the transmitter uses a transmit window and
that the receiver drops blocks that arrive out of order.

If the transmitter knows at what data rate it must send the blocks, it can ignore
any ACKs that it receives. It will simply push any next block out of its queue at
regular intervals. If the transmitter does not know how fast the receiver
will process the data being streamed, the transmitter should fill a transfer window
and use the received acknowledgements to determine how many blocks have been
received and how much space that produces in the window. On receiving ACKs, the
transmitter then sends new blocks to fill the window to maximum capacity. The client
and the server should, of course, negotiate a window size.

Data streaming will work in combination with multicast mode. If the transmitter
determines the pace of sending blocks, both mTFTP (PXE) and
RFC 2090
are suitable. If
the receiver must indicate the server what pace to use, via block acknowledgements,
the RFC 2090 procedure has the advantage that the server can switch to another
host as the master client as soon as the active master client disconnects from
the group.

TFTP Desktop

Not all the TFTP servers are designed specifically for network administrators handling hundreds of workstations and routers on an intranet.

TFTP Desktop is a consumer app made for situations that can arise on home networks. It was released during the Windows 7 era and hasn’t received an update, so it’s limited to running on pre-Windows 8 computers.

It does, however, support Windows 98, so if you have a legacy computer you keep as a home server, this program can run on it. It’s a free trial download on CNET that’s fully functional, which makes it ideal for fixing temporary problems like transfering large files between incompatible OSes.

Поднятие tftpd32 сервера на Windows

Для некоторых айтишных задач требуется поднять tftp-сервер, который обычно предназначен только для простой передачи файлов между устройствами. TFTP изначально так и разрабатывался, чтобы быть простым. Прочитать о его работе можно на Wikipedia.

Мне понадобился сервер tftp для того, чтобы слить настройки с уже настроенного коммутатора Cisco и при необходимости залить его обратно.

Для справки: tftp – это протокол передачи данных, который работает на транспортном протоколе UDP на порту 69. Особой безопасности не предоставляет. Используется для загрузки бездисковых систем (нужен для загрузки первоначального загрузчика) и для обновления прошивок аппаратных sip-телефонов Cisco.

Есть две версии приложения:

Данный tftp-сервер можно установить как для старой Windows XP, так и для современной Windows 10. На серверные ОС (Windows 2012 r2, Windows 2016 и др.), tftpd64 и tftpd32 встают тоже без проблем.

Порт tftp сервера по умолчанию — 69/UDP. Если подключение проходит через маршрутизатор, не забываем открыть 69 порт UDP протокола.

WhatsUp TFTP Server

Ipswitch is a software company that specializes in file transfer and network management tools. Their WhatsUp Gold TFTP Server is a free utility they offer for network engineers to add to their toolbox.

It allows automated file transfers to be set up for multiple computers and devices on an intranet with a dedicated schedule.

Whether you need a tool to reinstall a software configuration weekly or a way to push out firmware and application patches to dozens of devices, WhatsUp Gold can make your life easier.

Like other TFTP servers, it runs as an always-on service and can even schedule file transfers during low traffic hours.

Документация по стандартам IETF

Номер RFC Заголовок Опубликовано Автор Устаревшая и обновленная информация
RFC 783 Протокол TFTP (редакция 1) Июнь 1981 г. К. Соллинз Устарело — RFC 1350
RFC 906 Загрузка начальной загрузки с использованием TFTP Июнь 1984 г. Росс Финлейсон
RFC 951 Протокол начальной загрузки Сентябрь 1985 г. Билл Крофт Обновлено RFC 1395, RFC 1497, RFC 1532, RFC 1542, RFC 5494
RFC 1350 Протокол TFTP (Версия 2) Июль 1992 г. К. Соллинз Обновлено RFC 1782, RFC 1783, RFC 1784, RFC 1785, RFC 2347, RFC 2348, RFC 2349
RFC 1782 Расширение опции TFTP Март 1995 г. Г. Малкин Устарело — RFC 2347
RFC 2131 Протокол динамического конфигурирования сервера Март 1997 г. Р. Дромс Обновлено RFC 3396, RFC 4361, RFC 5494, RFC 6842
RFC 2347 Расширение опции TFTP Май 1998 г. Г. Малкин
RFC 2348 Вариант размера блока TFTP Май 1998 г. Г. Малкин
RFC 2349 Интервал тайм-аута TFTP и параметры размера передачи Май 1998 г. Г. Малкин
RFC 5505 Принципы настройки Интернет-хоста Май 2009 г. Б. Абоба
RFC 7440 Вариант TFTP Windowsize Январь 2015 П. Масотта

Options

—ipv4, -4

Connect with IPv4 only, even if IPv6 support was compiled in.
—ipv6, -6
Connect with IPv6 only, if compiled in.
-l, —listen
Run the server in standalone (listen) mode, rather than run from inetd. In listen mode, the —timeout option is ignored, and the
—address option can be used to specify a specific local address or port to listen to.
—foreground, -L
Similar to —listen but do not detach from the foreground process. Implies —listen.
—address , -a
Specify a specific address and port to listen to when called with the —listen or —foreground option. The default is to listen
to the tftp port specified in /etc/services on all local addresses.

Please note: Numeric IPv6 adresses must be enclosed in square brackets to avoid ambiguity with the optional port information.

—create, -c
Allow new files to be created. By default, tftpd will only allow upload of files that already exist. Files are created with default permissions
allowing anyone to read or write them, unless the —permissive or —umask options are specified.
—secure, -s
Change root directory on startup. This means the remote host does not need to pass along the directory as part of the transfer, and may add security. When
—secure is specified, exactly one directory should be specified on the command line. The use of this option is recommended for security as well
as compatibility with some boot ROMs which cannot be easily made to include a directory name in its request.
—user username, -u username
Specify the username which tftpd will run as; the default is «nobody». The user ID, group ID, and (if possible on the platform) the supplementary
group IDs will be set to the ones specified in the system permission database for this username.
—umask umask, -U umask
Sets the umask for newly created files to the specified value. The default is zero (anyone can read or write) if the —permissive option is
not specified, or inherited from the invoking process if —permissive is specified.
—permissive, -p
Perform no additional permissions checks above the normal system-provided access controls for the user specified via the —user option.
—timeout timeout, -t timeout
When run from inetd this specifies how long, in seconds, to wait for a second connection before terminating the server. inetd will then
respawn the server when another request comes in. The default is 900 (15 minutes.)
—retransmit timeout, -T timeout
Determine the default timeout, in microseconds, before the first packet is retransmitted. This can be modified by the client if the timeout or
utimeout option is negotiated. The default is 1000000 (1 second.)
—mapfile remap-file, -m remap-file
Specify the use of filename remapping. The remap-file is a file containing the remapping rules. See the section on filename remapping below. This
option may not be compiled in, see the output of in.tftpd -V to verify whether or not it is available.
—verbose, -v
Increase the logging verbosity of tftpd. This flag can be specified multiple times for even higher verbosity.
—verbosity value
Set the verbosity value to value.
—refuse tftp-option, -r tftp-option
Indicate that a specific RFC 2347 TFTP option should never be accepted.
—blocksize max-block-size, -B max-block-size
Specifies the maximum permitted block size. The permitted range for this parameter is from 512 to 65464. Some embedded clients request large block sizes and
yet do not handle fragmented packets correctly; for these clients, it is recommended to set this value to the smallest MTU on your network minus 32 bytes (20
bytes for IP, 8 for UDP, and 4 for TFTP; less if you use IP options on your network.) For example, on a standard Ethernet (MTU 1500) a value of 1468 is
reasonable.
—port-range port:port, -R port:port
Force the server port number (the Transaction ID) to be in the specified range of port numbers.
—version, -V
Print the version number and configuration to standard output, then exit gracefully.

The best macOS TFTP server

1. macOS TFTP server

macOS has a built-in TFTP server that won’t be loaded by default. The easiest way to get it running is to simply type:

Then, provide your password when prompted. You can use something like netstat to confirm it is running:

$ netstat -n | grep *.69
 udp4 0 .69 .*
 udp6 0 .69 .*

The TFTP server is now running on port 69 waiting for connections. You can use any TFTP client to connect to the server and upload or download files. To shut down the TFTP server, simply use the command:

Pros:

  • Already part of the macOS, just needs to be loaded
  • Easy setup, only takes a minute or two
  • Runs incredibly lean, using few resources

Cons:

Configuration options might be difficult to find

Key Features:

  • Native to Macs’ operating system
  • Command line
  • Free TFTP server for macOS

Solarwinds Free TFTP Server

Solarwinds offers a full suite of IT and network management software. Their free TFTP server is a stripped-down version of their Network Configuration Manager product, but it functions well for basic tasks like pushing out OS images to workstations or firmware to network devices periodically over an internal network.

It can handle files as large as 4 GB, concurrent transfers to many devices at once, and runs as a Windows service. It doesn’t have more advanced features like device backup and version control or change management tools, but it does manage which IP numbers are authorized for connections.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector