ESXi Enable FTP

Some have found the download speed using the datastore browser in the VI client or via vifs.pl in the RCLI to be too slow for day to day transfers. It is possible to enable SSH, but sometimes even the performance of that is not great due to the inability of ESXi to perform SFTP transfers thus relying on the more inefficient SCP. Note that if you’re using SSH you can speed up your transfers by setting the encryption to be blowfish rather than the usual default of AES in your SSH client.

Update: the oem.tgz file at the above link has been updated to include a wget version which will copy folders and rsync. To run the enhanced wget version specify the command as /bin/wget. Otherwise the default busybox version will be run. Wget is version 1.11.4. Rsync is version 3.0.3. Since the vmkernel does not support TLS, this version of rsync does not either.

  1. Enable SSH access to your host.
  2. Download and extract this zip file.
  3. Copy proftpd to /sbin
  4. Copy tcpd to /sbin
  5. Copy proftpd.conf to /etc. You may wish to edit the file to suit your environment.
  6. Add the below lines to /etc/inetd.conf.

# activate proftp daemon
ftp stream tcp nowait root /usr/sbin/tcpd proftpd

Update: for ESXi 4.0 the above line should be ftp stream tcp nowait root /usr/sbin/proftpd proftpd

7) Determine the process id for inetd with the command ps | grep inetd
8) Restart inetd with this command kill -HUP <process id>

Note that this change will not survive a reboot with ESXi. To have this available after a reboot you’ll need to add these changes to oem.tgz.

If you need to transfer a file from one ESXi host to another with ftp, ESXi includes the command wget. You can use the command with the syntax to copy a file: wget ftp://root:password@source_ESXi_IP/path/file

Note: if you have previously updated inetd.conf and then added one of the oem.tgz files, then that copy of inetd.conf in state.tgz (or local.tgz for ESXi Embedded) will overwrite the copy in oem.tgz. If that is your case, then you’ll need to manually edit inetd.conf and restart the host.

Leave a Comment

Your email address will not be published. Required fields are marked *