FTP over HTTP: How to redirect FTP requests to real server over HTTP Tunnel

The following article is a how-to on creating a FTP tunnel over a HTTP tunnel. In this example we setup a tunnel for example.com FTP server, but of course you can set the attributes you need. Note that the "FTP over HTTP tunnel" feature works only in passive mode for transfers.

1. Start the TunnelEx Control Center and select the "File / New / Rule..." main menu item.
2. The new rule dialog will be opened. Enter a rule name if necessary (optional). Choose "FTP" and click "Next" button.

3. At second step set the following settings for the tunnel Input:

  • Adapter: All available
  • Port: network port

You can choose any port (for FTP commonly used port 21) and another adapter if you need. But do not forget about it when you will be using this tunnel - as it will change the tunnel entrance as well.

Set the following settings for the FTP server:

  • Host: host name or IP address
  • Port: network port

The host and the port should be actual addresses of a FTP server that you want to create a tunnel for.

4. Set the "Use HTTP proxy server" checkbox. You can change proxy server settings at any time by clicking the "Settings" button. First time the settings dialog will be opened automatically.
5. Enter the host and the port of a proxy server. If you do not know which server to use, try the Pathfinder feature - it automatically chooses a proxy server for you.

6. Set "User authorization" check box and enter the user name and the password if a proxy server requires authorization.

Click "OK" to apply. The proxy server setting dialog will be closed, click on the rule dialog "Finish" to create new rule.

7. The rule has been started.
8. To ensure the rule has started successfully, you can use the event log. Select the "Service / Show/Hide Log..." main menu item to open it.
9. Find the input endpoint in the event list to see its operation status.

Now you are ready to test it. Configure your FTP client application to work in passive mode and connect with the local network interface (ex. "localhost" or "127.0.0.1" if you used "All available" or "Loopback" for the adapter field at the step 3) and use the port which you entered to the port field at the step 3. A new FTP tunnel will be created.