⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.93
Server IP:
65.108.141.171
Server:
Linux server.heloix.com 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
doc
/
proftpd-doc
/
modules
/
View File Name :
mod_xfer.html
<!DOCTYPE html> <html> <head> <title>ProFTPD module mod_xfer</title> </head> <body bgcolor=white> <hr> <center> <h2><b>ProFTPD module <code>mod_xfer</code></b></h2> </center> <hr><br> <p> The <code>mod_xfer</code> module handles most of the FTP commands related to file transfers. <h2>Directives</h2> <ul> <li><a href="#AllowOverwrite">AllowOverwrite</a> <li><a href="#AllowRetrieveRestart">AllowRetrieveRestart</a> <li><a href="#AllowStoreRestart">AllowStoreRestart</a> <li><a href="#DefaultTransferMode">DefaultTransferMode</a> <li><a href="#DeleteAbortedStores">DeleteAbortedStores</a> <li><a href="#DisplayFileTransfer">DisplayFileTransfer</a> <li><a href="#HiddenStores">HiddenStores</a> <li><a href="#MaxRetrieveFileSize">MaxRetrieveFileSize</a> <li><a href="#MaxStoreFileSize">MaxStoreFileSize</a> <li><a href="#MaxTransfersPerHost">MaxTransfersPerHost</a> <li><a href="#MaxTransfersPerUser">MaxTransfersPerUser</a> <li><a href="#StoreUniquePrefix">StoreUniquePrefix</a> <li><a href="#TimeoutNoTransfer">TimeoutNoTransfer</a> <li><a href="#TimeoutStalled">TimeoutStalled</a> <li><a href="#TransferOptions">TransferOptions</a> <li><a href="#TransferPriority">TransferPriority</a> <li><a href="#TransferRate">TransferRate</a> <li><a href="#UseSendfile">UseSendfile</a> </ul> <p> <hr> <h3><a name="AllowOverwrite">AllowOverwrite</a></h3> <strong>Syntax:</strong> AllowOverwrite <em>on|off</em><br> <strong>Default:</strong> <code>AllowOverwrite off</code><br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code>, <code>.ftpaccess</code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 0.99.0 and later <p> The <code>AllowOverwrite</code> directive permits newly transfered files to overwrite existing files. By default, FTP clients <b>cannot</b> overwrite existing files. <p> <hr> <h3><a name="AllowRetrieveRestart">AllowRetrieveRestart</a></h3> <strong>Syntax:</strong> AllowRetrieveRestart <em>on|off</em><br> <strong>Default:</strong> <code>AllowRetrieveRestart on</code><br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code>, <code>.ftpaccess</code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 0.99.0 and later <p> The <code>AllowRetrieveRestart</code> directive permits (or denies) clients from performing "restart" download (retrieve) file transfers via the FTP <code>REST</code> command. By default, restarted downloads are allowed, so that clients may resume interrupted file transfers at a later time without losing previously collected data. <p> See also: <a href="#AllowStoreRestart"><code>AllowStoreRestart</code></a> <p> <hr> <h3><a name="AllowStoreRestart">AllowStoreRestart</a></h3> <strong>Syntax:</strong> AllowStoreRestart <em>on|off</em><br> <strong>Default:</strong> <code>AllowStoreRestart on</code><br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code>, <code>.ftpaccess</code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 0.99.0 and later <p> The <code>AllowStoreRestart</code> directive permits (or denies) clients from "restarting" interrupted upload (store) transfers. By default restarting (via the FTP <code>REST</code> command) is <b>not</b> permitted when uploading files to the server. Care should be taken to disallow anonymous FTP "incoming" transfers to be restarted, as this will allow clients to corrupt or increase the size of previously stored files (even if not their own). <p> The FTP <code>REST</code> command is automatically blocked when <code>HiddenStores</code> is enabled, with the server returning a 501 error code to the client. <p> See also: <a href="#AllowRetrieveRestart"><code>AllowRetrieveRestart</code></a>, <a href="#DeleteAbortedStores"><code>DeleteAbortedStore</code></a>, <a href="#HiddenStores"><code>HiddenStores</code></a> <p> <hr> <h3><a name="DefaultTransferMode">DefaultTransferMode</a></h3> <strong>Syntax:</strong> DefaultTransferMode <em>ascii|binary</em><br> <strong>Default:</strong> <code>DefaultTransferMode ascii</code><br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 1.2.0pre9 and later <p> The <code>DefaultTransferMode</code> directive sets the <em>default</em> transfer mode used for data transfers. Per RFC 959 requirements, the default transfer mode is "ascii", which means that carriage return (<code>CR</code>) and line feed (<code>LF</code>) translation will be performed: <code>CRLF</code> sequences in <em>uploaded</em> data will be translated to <code>LF</code>, and <code>LF</code> translated to <code>CRLF</code> in <em>downloaded</em> data. <p> <hr> <h3><a name="DeleteAbortedStores">DeleteAbortedStores</a></h3> <strong>Syntax:</strong> DeleteAbortedStores <em>on|off</em><br> <strong>Default:</strong> <code>DeleteAbortedStores off</code><br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code>, <code>.ftpaccess</code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 1.2.0rc2 and later <p> The <code>DeleteAbortedStores</code> directive controls whether ProFTPD deletes partially uploaded files if the transfer is stopped via the FTP <code>ABOR</code> command (as opposed to a connection failure). By default, <code>DeleteAbortedStores</code> is <em>off</em>. <p> <b>However</b>, when <code>HiddenStores</code> is enabled, then <code>DeleteAbortedStores</code> is automatically enabled as well. <p> See also: <a href="#HiddenStores"><code>HiddenStores</code></a> <p> <hr> <h3><a name="HiddenStores">HiddenStores</a></h3> <strong>Syntax:</strong> HiddenStores <em>on|off|prefix [suffix]</em><br> <strong>Default:</strong> <code>HiddenStores off</code><br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 1.2.7rc1 and later <p> The <code>HiddenStores</code> directive enables two-step file uploads: files are uploaded as ".in.<em>filename</em>." and once the upload is complete, renamed to just <em>filename</em>. This provides a degree of atomicity and helps prevent <i>1)</i> incomplete uploads and <i>2)</i> files being used while they are still being uploaded. When <code>HiddenStores</code> is enabled, then <a href="#DeleteAbortedStores"><code>DeleteAbortedStores</code></a> is automatically enabled as well. <p> Note that if the temporary file name is already in use (<i>e.g.</i>, a server crash during upload), it will prevent the file from being uploaded. <p> The FTP <code>REST</code> command is automatically blocked when <code>HiddenStores</code> is enabled, with the server returning a 501 error code to the client. <p> In <code>proftpd-1.3.3rc2</code> and later, the ".in." <em>prefix</em> can be customised via the <code>HiddenStores</code> directive, <i>e.g.</i>: <pre> # Use a different prefix for HiddenStores HiddenStores filepart- </pre> <p> In <code>proftpd-1.3.5rc2</code> and later, the "." <em>suffix</em> can be customised using the <code>HiddenStores</code> directive as well, <i>e.g.</i>: <pre> # Use a different prefix <b>and</b> suffix for HiddenStores HiddenStores incoming- .lock </pre> You can also use this capability to configure <em>no</em> prefix, and just a suffix: <pre> # Use an empty string as the prefix, and a suffix of ".filepart". HiddenStores "" ".filepart" </pre> <b>Note</b> that in order to specify the suffix, you <b>must</b> specify a prefix as well. <p> In <code>proftpd-1.3.6rc1</code> and later, the <em>prefix</em> and <em>suffix</em> values can use the <code>%P</code> variable, which will be substituted with the session PID. This can help to reduce issues encountered when an FTP upload fails in such a way that proftpd cannot properly clean up the <code>HiddenStores</code> temporary file. For example: <pre> # Use the session PID as part of the name HiddenStores .in. .%P </pre> <p> <b><i>Discussion</i></b><br> When would you want or need to specify different prefix and suffix values for <code>HiddenStores</code>? You might need this when, for example, your <code>proftpd</code> writes files to an NFS-mounted filesystem. Another machine mounts that same filesystem remotely using a CIFS client (<i>e.g.</i> a NetApp machine). The trailing "." suffix causes the CIFS client to list the temporary filenames different (<i>e.g.</i> in a Windows 8.3 file format style): "in.test." becomes "INTES~1". This view confuses users/admins. <p> By changing the default <code>HiddenStores</code> suffix, then, that modified CIFS client filename view can be avoided. <p> See also: <a href="#AllowStoreRestart"><code>AllowStoreRestart</code></a>, <a href="#DeleteAbortedStores"><code>DeleteAbortedStores</code></a> <p> <hr> <h3><a name="MaxRetrieveFileSize">MaxRetrieveFileSize</a></h3> <strong>Syntax:</strong> MaxRetrieveFileSize <em>[number|"*" units ["user"|"group"|"class" expression]]</em><br> <strong>Default:</strong> None<br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code>, <code>.ftpaccess</code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 1.2.7rc1 and later <p> The <code>MaxRetrieveFileSize</code> directive sets a maximum limit on the size of a <b>single file</b> downloaded from <code>proftpd</code>. If the requested file size is larger than than the configured maximum limit, the data transfer will be rejected. <p> A single "*" argument configures unlimited file sizes, and is used primarily to override any inherited restrictions from higher-level configuration sections. The given <em>number</em> is the number of bytes for the limit, and is followed by a units specifier of (case-insensitive) "Gb" (Gigabytes), "Mb" (Megabytes), "Kb" (Kilobytes), or "B" (bytes). The given <em>number</em> of bytes is multiplied by the appropriate factor. <p> The optional parameters are used to restrict the file size limits only to specific users. If the "user" restriction is given, then <em>expression</em> is a <i>user-expression</i> specifying to which users the rule applies. Similarly for the "group" restriction. For the "class" restriction, the <em>expression</em> is simply the name of connection class for whom the rule will apply. If no matching user, group, or class expression (in that order) is found for the current user, then a limit with no expression (<i>i.e.</i> no "user", "group", or "class" identifier) is applied. <p> Examples: <pre> # Restrict downloads to only 1 gigabyte MaxRetrieveFileSize 1 Gb # Restrict downloads for user fred, but allow unlimited download size for # everyone else MaxRetrieveFileSize 50 Kb user fred MaxRetrieveFileSize * </pre> <p> See also: <a href="#MaxStoreFileSize"><code>MaxStoreFileSize</code></a> <p> <hr> <h3><a name="MaxStoreFileSize">MaxStoreFileSize</a></h3> <strong>Syntax:</strong> MaxStoreFileSize <em>[number|"*" units ["user"|"group"|"class" expression]]</em><br> <strong>Default:</strong> None<br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code>, <code>.ftpaccess</code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 1.2.7rc1 and later <p> The <code>MaxStoreFileSize</code> directive sets a maximum limit on the size of a <b>single file</b> uploaded to <code>proftpd</code>. When the configured maximum limit is reached, the data transfer will be aborted. <p> A single "*" argument configures unlimited file sizes, and is used primarily to override any inherited restrictions from higher-level configuration sections. The given <em>number</em> is the number of bytes for the limit, and is followed by a units specifier of (case-insensitive) "Gb" (Gigabytes), "Mb" (Megabytes), "Kb" (Kilobytes), or "B" (bytes). The given <em>number</em> of bytes is multiplied by the appropriate factor. <p> The optional parameters are used to restrict the file size limits only to specific users. If the "user" restriction is given, then <em>expression</em> is a <i>user-expression</i> specifying to which users the rule applies. Similarly for the "group" restriction. For the "class" restriction, the <em>expression</em> is simply the name of connection class for whom the rule will apply. If no matching user, group, or class expression (in that order) is found for the current user, then a limit with no expression (<i>i.e.</i> no "user", "group", or "class" identifier) is applied. <p> Examples: <pre> # Restrict upload to only 3 megabytes MaxStoreFileSize 3 Mb # Restrict anonymous uploads to 50k, but allow unlimited upload size for # everyone else MaxStoreFileSize 50 Kb user anonymous MaxStoreFileSize * </pre> <p> <b>NOTE</b>: In FTP uploads, the size of the file being uploaded is <b>not</b> sent to the FTP server first; this means that the FTP server does not know in advance how much data the FTP client is going to send. The FTP server can only count the number of bytes being uploaded, and stop the transfer when a configured limit is reached. This means that <code>MaxStoreFileSize</code> <b>cannot</b> be used to prevent an FTP client from even sending the bytes over the network. <p> See also: <a href="#MaxRetrieveFileSize"><code>MaxRetrieveFileSize</code></a> <p> <hr> <h3><a name="MaxTransfersPerHost">MaxTransfersPerHost</a></h3> <strong>Syntax:</strong> MaxTransfersPerHost <em>cmd-list count [message]</em><br> <strong>Default:</strong> None<br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code>, <code>.ftpaccess</code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 1.3.2rc1 and later <p> The <code>MaxTransfersPerHost</code> directive limits the number of data transfers happening at the same time <i>from the same host</i>. The <em>cmd-list</em> parameter is a comma-separated list of the data transfer FTP commands (APPE, RETR, STOR, and/or STOU) to which the limit applies. The optional <em>message</em> parameter may be used, which will be displayed to a client attempting to exceed the maximum value. If <em>message</em> is <i>not</i> supplied, the following message is used by default: <pre> "Sorry, the maximum number of data transfers (%m) from your host are currently being used." </pre> <p> For example: <pre> MaxTransfersPerHost RETR 2 </pre> will result in the following FTP response to a client exceeding the download limit: <pre> "451 Sorry, the maximum number of data transfers (2) from your host are currently being used." </pre> And for uploads, you might using something like: <pre> MaxTransferPerHost APPE,STOR,STOU 1 </pre> <p> See also: <a href="#MaxTransfersPerUser"><code>MaxTransfersPerUser</code></a> <p> <hr> <h3><a name="MaxTransfersPerUser">MaxTransfersPerUser</a></h3> <strong>Syntax:</strong> MaxTransfersPerUser <em>cmd-list count [message]</em><br> <strong>Default:</strong> None<br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code>, <code>.ftpaccess</code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 1.3.2rc1 and later <p> The <code>MaxTransfersPerUser</code> directive limits the number of data transfers happening at the same time <i>for the same user name</i>. The <em>cmd-list</em> parameter is a comma-separated list of the data transfer FTP commands (APPE, RETR, STOR, and/or STOU) to which the limit applies. The optional <em>message</em> parameter may be used, which will be displayed to a client attempting to exceed the maximum value. If <em>message</em> is <i>not</i> supplied, the following message is used by default: <pre> "Sorry, the maximum number of data transfers (%m) from this user are currently being used." </pre> <p> For example: <pre> MaxTransfersPerUser RETR 2 </pre> will result in the following FTP response to a client exceeding the download limit: <pre> "451 Sorry, the maximum number of data transfers (2) from this user are currently being used." </pre> And for uploads, you might using something like: <pre> MaxTransferPerUser APPE,STOR,STOU 1 </pre> <p> See also: <a href="#MaxTransfersPerHost"><code>MaxTransfersPerHost</code></a> <p> <hr> <h3><a name="StoreUniquePrefix">StoreUniquePrefix</a></h3> <strong>Syntax:</strong> StoreUniquePrefix <em>prefix</em><br> <strong>Default:</strong> None<br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code>, <code>.ftpaccess</code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 1.2.6rc1 and later <p> The <code>StoreUniquePrefix</code> directive is used to configure a <em>prefix</em> for the generated unique random filenames used for the STOU FTP command. The last six characters of the filename will be random. <b>Note</b>: Slash (/) characters are <b>not</b> allowed in the <em>prefix</em> value. <p> <hr> <h3><a name="TimeoutNoTransfer">TimeoutNoTransfer</a></h3> <strong>Syntax:</strong> TimeoutNoTransfer <em>seconds</em><br> <strong>Default:</strong> 300 seconds<br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 0.99.0 and later <p> The <code>TimeoutNoTransfer</code> directive configures the maximum number of <em>seconds</em> a client is allowed to spend connected, after authentication, without issuing a data transfer command which results in a data connection (<i>i.e.</i> sending/receiving a file, or requesting a directory listing). The maximum allowed <em>seconds</em> value is 65535 (108 minutes). <p> See also: <a href="mod_core.html#TimeoutIdle"><code>TimeoutIdle</code></a>, <a href="mod_auth.html#TimeoutLogin"><code>TimeoutLogin</code></a>, <a href="#TimeoutStalled"><code>TimeoutStalled</code></a>. <p> <hr> <h3><a name="TimeoutStalled">TimeoutStalled</a></h3> <strong>Syntax:</strong> TimeoutStalled <em>seconds</em><br> <strong>Default:</strong> 3600 seconds<br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 1.1.6 and later <p> The <code>TimeoutStalled</code> directive sets the maximum number of <em>seconds</em> a data connection between <code>proftpd</code> and a client can exist but have no actual data transferred (<i>i.e.</i> "stalled"). If the <em>seconds</em> parameter is set to zero, data transfers are allowed to stall indefinitely; <b>note</b> that this is <b>not</b> a recommended configuration. The maximum allowed <em>seconds</em> value is 65535 (108 minutes). <p> <hr> <h3><a name="TransferOptions">TransferOptions</a></h3> <strong>Syntax:</strong> TransferOptions <em>opt1 ...</em><br> <strong>Default:</strong> None<br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 1.3.6rc1 and later <p> The <code>TransferOptions</code> directive to configure various optional data transfer behaviors. <p> The currently implemented options are: <ul> <li><code>IgnoreASCII</code><br> <p> This option causes proftpd to silently ignore any client requests to perform ASCII translations via the <code>TYPE</code> command. That is, FTP clients can request ASCII translations, and proftpd will respond as the client expects, but will <b>not</b> actually perform the translation for either uploads <i>or</i> downloads. This behavior can be useful in circumstances involving older/mainframe clients and EBCDIC files. <p> <b>Note</b> that this option first appeared in <code>proftpd-1.3.6rc1</code>. </ul> <p> <hr> <h3><a name="TransferPriority">TransferPriority</a></h3> <strong>Syntax:</strong> TransferPriority <em>cmd-list "low"|"medium"|"high"|number</em><br> <strong>Default:</strong> None<br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code><br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 1.3.2rc1 and later <p> The <code>TransferPriority</code> directive is used to tweak the process priority (<i>a la</i> <code>nice(1)</code>) of the session during data transfers. For example, large (or anonymous) data transfers can be configured to have lower priorities, so as to get lower priority than other applications from the kernel. <p> The <em>priority</em> parameter can one of the convenient "high", "medium", or "low" keywords, or it can be an explicit number. As per the <code>nice(1)</code> man page, the higher the number, the lower the priority; the highest priority is -20, and the lower priority is 19. <p> Examples: <pre> # All data transfers get a low priority TransferPriority APPE,RETR,STOR low </pre> Or maybe only downloads should have lower priorities, but uploads should be fine: <pre> TransferPriority RETR low </pre> <p> <hr> <h3><a name="TransferRate">TransferRate</a></h3> <strong>Syntax:</strong> TransferRate <em>cmd-list kbytes-per-sec[:free-bytes]</em><br> <strong>Default:</strong> None<br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code>, .ftpaccess<br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 1.2.8rc1 and later <p> The <code>TransferRate</code> directive is used to set transfer rate limits on the transfer of data. This directive allows for transfer rates to be set in a wide variety of contexts, on a per-command basis, and for certain subsets of users (via <a href="../contrib/mod_ifsession.html"><code>mod_ifsession</code></a>). <b>Note</b> that these limits only apply to <i>an individual session</i>, and do <b>not</b> apply to the overall transfer rate of the entire daemon. <p> The <em>cmd-list</em> parameter may be an comma-separated list of any of the following commands: <code>APPE</code>, <code>RETR</code>, <code>STOR</code>, and <code>STOU</code>. <p> The <em>kbytes-per-sec</em> parameter is the actual transfer rate to be applied. <p> The <em>free-bytes</em> parameter, if configured, allows that number of bytes to be transferred before the rate limit is applied. This allows for clients transferring small files to be unthrottled, but for larger files, such as MP3s and ISO images, to be throttled. <p> Here are some examples: <pre> # Limit downloads for everyone TransferRate RETR 1.5 # Limit uploads (and appends!) to the prolific users in the # lotsofuploadfiles.net domain. This presumes that a Class has been defined # for that domain, and that that Class has been named "uploaders". Let them # upload small files without throttling, though. <IfClass uploaders> TransferRate APPE,STOR 8.0:1024 </IfClass> </pre> <p> <hr> <h3><a name="UseSendfile">UseSendfile</a></h3> <strong>Syntax:</strong> UseSendfile <em>on|off|len units|percentage</em><br> <strong>Default:</strong> None<br> <strong>Context:</strong> server config, <code><VirtualHost></code>, <code><Global></code>, <code><Anonymous></code>, <code><Directory></code>, .ftpaccess<br> <strong>Module:</strong> mod_xfer<br> <strong>Compatibility:</strong> 1.3.0rc1 and later <p> The <code>UseSendfile</code> directive controls use of <code>sendfile(2)</code> functionality, which is an optimization for sending files to clients. Use of <code>sendfile(2)</code> functionality avoids separate read and send kernel operations, and buffer allocations. Read this <a href="../howto/Sendfile.html">howto</a> for more details. <p> <hr> <h2><a name="Installation">Installation</a></h2> The <code>mod_xfer</code>module is <b>always</b> installed. <p> <b>Logging</b><br> The <code>mod_xfer</code> module supports <a href="../howto/Tracing.html">trace logging</a>, via the module-specific log channels: <ul> <li>xfer </ul> Thus for trace logging, to aid in debugging, you would use the following in your <code>proftpd.conf</code>: <pre> TraceLog /path/to/ftpd/trace.log Trace xfer:20 </pre> This trace logging can generate large files; it is intended for debugging use only, and should be removed from any production configuration. <p> <hr> <font size=2><b><i> © Copyright 2000-2016 The ProFTPD Project<br> All Rights Reserved<br> </i></b></font> <hr> </body> </html>