Giter VIP home page Giter VIP logo

ptftpd's Introduction

pTFTPd - A pure-Python TFTP tool suite

pTFTPd is a collection of tools related to TFTP. It includes a TFTP server, a TFTP client, and a complete PXE solution based on this TFTP server and a micro-DHCP or BOOTP server. All these tools are written in Python and designed to be fast, RFC compliant and easy to use.

Available tools include:

  • bootpd: a BOOTP server (RFC951 and RFC1497 compliant)
  • dhcpd: a simple, stripped-down DHCP server.
  • ptftpd: the TFTP server (RFC1350, 2347, 2348, 2349 and 7440 compliant)
  • pxed: a one-call PXE server using dhcpd and ptftpd.
  • ptftp: a simple TFTP client (RFC1350, 2347, 2348, 2349 and 7440 compliant and capable)

They all support the --help option to present the usage summary to the user.

All tools also understand the --rfc1350 option, which forces them in basic TFTP RFC1350 compliance mode, disabling all TFTP extensions for increased compatibility would you encouter any problem with your target system.

Installation

pTFTPd is available on PyPI as the ptftpd distribution.

$ pip install ptftpd

This will install the ptftplib Python package, as well as the scripts listed above.

If you use the pTFTPd tool suite outside of a standard distribution installation, you may need to specify the Python module search path with PYTHONPATH before executing the binaries:

$ export PYTHONPATH=`pwd`
$ bin/ptftp
Connected to localhost:69.

tftp>

TFTP server and client

The TFTP server, pTFTPd, fully supports the TFTP specification as defined in RFC1350. It also supports the TFTP Option Extension protocol (per RFC2347), the block size option as defined in RFC2348 and the transfer size option from RFC2349.

For help on how to use pTFTPd, type:

$ ptftpd --help

The port used can be changed using the -p option. The root path is given as a simple argument. For example, to serve /var/lib/tftp on port 6969 through the eth0 network interface:

$ ptftpd -p 6969 eth0 /var/lib/tftp

The TFTP client is an interactive client, just launch it and type help to see the available commands:

$ ptftp
tftp> help
...

PXE solution

The PXE system is also very easy to use. It takes three arguments: the network interface to listen on, the TFTP root path from which to serve files, and the PXE boot filename. It will automatically start a TFTP server and a DHCP server to serve hosts on the given interface. See --help for more details:

$ pxed --help

Mechanics for using pxed.py with the BOOTP server are not yet in place, but such a solution can easily be constructed manually by starting the BOOTP server and the TFTP server manually:

$ bootpd <interface> <PXE boot file> &
$ ptftpd <interface>

ptftpd's People

Contributors

mpetazzoni avatar bias-keenly avatar cabalist avatar fifteenhex avatar maximeh avatar uspike avatar

Watchers

James Cloos avatar  avatar

Forkers

scoutalarm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.