<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://k2.ixota.com/index.php?action=history&amp;feed=atom&amp;title=Linux%2Ftftp-hpa</id>
	<title>Linux/tftp-hpa - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://k2.ixota.com/index.php?action=history&amp;feed=atom&amp;title=Linux%2Ftftp-hpa"/>
	<link rel="alternate" type="text/html" href="https://k2.ixota.com/index.php?title=Linux/tftp-hpa&amp;action=history"/>
	<updated>2026-06-26T11:30:56Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.1</generator>
	<entry>
		<id>https://k2.ixota.com/index.php?title=Linux/tftp-hpa&amp;diff=5957&amp;oldid=prev</id>
		<title>Kenneth: /* keywords */</title>
		<link rel="alternate" type="text/html" href="https://k2.ixota.com/index.php?title=Linux/tftp-hpa&amp;diff=5957&amp;oldid=prev"/>
		<updated>2021-05-21T17:54:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;keywords&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Website:&lt;br /&gt;
 https://git.kernel.org/pub/scm/network/tftp/tftp-hpa.git/&lt;br /&gt;
&lt;br /&gt;
Get the client for testing:&lt;br /&gt;
 apt install tftp&lt;br /&gt;
&lt;br /&gt;
Get xinetd wrapper&lt;br /&gt;
 apt install xinetd&lt;br /&gt;
&lt;br /&gt;
 git clone https://git.kernel.org/pub/scm/network/tftp/tftp-hpa.git&lt;br /&gt;
 cd tftp-hpa&lt;br /&gt;
 bash autogen.sh&lt;br /&gt;
 # ./configure&lt;br /&gt;
 ./configure --prefix=/opt/tftp-hpa&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 mkdir /tftp&lt;br /&gt;
&lt;br /&gt;
/etc/xinetd.d/tftp:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service tftp&lt;br /&gt;
{&lt;br /&gt;
        socket_type     = dgram&lt;br /&gt;
        protocol        = udp&lt;br /&gt;
        wait            = yes&lt;br /&gt;
        user            = root&lt;br /&gt;
        #group           = tftp&lt;br /&gt;
        port            = 69&lt;br /&gt;
        server          = /opt/tftp-hpa/sbin/in.tftpd&lt;br /&gt;
        server_args     = -vvv  --create  --user tftp  --secure /tftp  --map-file /etc/tftpd.map  --refuse blksize&lt;br /&gt;
        #server_args     = -vvv -s /tftp -m /etc/tftpd.map -r blksize&lt;br /&gt;
        #server_args     = --verbose -u tftp -s /tftp -r blksize&lt;br /&gt;
        disable         = no&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 adduser tftp&lt;br /&gt;
&lt;br /&gt;
 tftp:x:1001:1001:TFTP User:/tftp:&lt;br /&gt;
&lt;br /&gt;
 chown tftp:tftp /tftp&lt;br /&gt;
&lt;br /&gt;
/etc/tftpd.map:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Convert backslashes to slashes&lt;br /&gt;
rg \\ /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 service xinetd stop&lt;br /&gt;
 service xinetd start&lt;br /&gt;
&lt;br /&gt;
== More Complete Map File ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Rule file for the -m (remapping option)&lt;br /&gt;
#&lt;br /&gt;
# This file has three fields: operation, regex, remapping&lt;br /&gt;
#&lt;br /&gt;
# The operation is a combination of the following letters:&lt;br /&gt;
#&lt;br /&gt;
# r - rewrite the matched string with the remapping pattern&lt;br /&gt;
# i - case-insensitive matching&lt;br /&gt;
# g - repeat until no match (used with &amp;quot;r&amp;quot;)&lt;br /&gt;
# e - exit (with success) if we match this pattern, do not process&lt;br /&gt;
#     subsequent rules&lt;br /&gt;
# s - start over from the first rule if we match this pattern&lt;br /&gt;
# a - abort (refuse the request) if we match this rule&lt;br /&gt;
# G - this rule applies to TFTP GET requests only&lt;br /&gt;
# P - this rule applies to TFTP PUT requests only&lt;br /&gt;
#&lt;br /&gt;
# The regex is a regular expression in the style of egrep(1).&lt;br /&gt;
#&lt;br /&gt;
# The remapping is a pattern, all characters are verbatim except \&lt;br /&gt;
# \0 copies the full string that matched the regex&lt;br /&gt;
# \1..\9 copies the 9 first (..) expressions in the regex&lt;br /&gt;
# \\ is an escaped \&lt;br /&gt;
# See http://linux.die.net/man/8/tftpd for more info.&lt;br /&gt;
#&lt;br /&gt;
# &amp;quot;#&amp;quot; begins a comment, unless \-escaped&lt;br /&gt;
#&lt;br /&gt;
ri    ^[a-z]:            # Remove &amp;quot;drive letters&amp;quot;&lt;br /&gt;
rg    \\        /        # Convert backslashes to slashes&lt;br /&gt;
rg    ([A-Z])   \L\1     # Convert uppercase to lowercase&lt;br /&gt;
rg    \#        @        # Convert hash marks to @ signs&lt;br /&gt;
rg    /../      /..no../ # Convert /../ to /..no../&lt;br /&gt;
e    ^ok/                # These are always ok&lt;br /&gt;
r    ^[^/]      /\0      # Convert non-absolute files&lt;br /&gt;
a    \.pvt$              # Reject requests for private files&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ref: https://github.com/jumanjihouse/docker-tftp-hpa/blob/master/src/mapfile&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;br /&gt;
&lt;br /&gt;
tftp tftpd tftp-hpa&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
		
	</entry>
</feed>