FTP

Return to Home / You can see this page in English , 简体中文 , 正體中文 or 日本語 .

Runftp Runftp

Runftp is an FTP/FTPS/SFTP client that runs in Android. FTP is short for File Transfer Protocol. With this tool, you can exchange text, picture, audio, video or any files with whatever UNIX servers.

You can search by Runftp or the developer's name Lewske in Android Market and download it, and it's located in Apps - Communication - Runftp as well.

VersionImprovement
1.3.2 File mark ambiguity fixed.
1.3.1 New locales (Traditional Chinese, Simplified Chinese and Japanese) are supported.
1.3.0 Strings now separated to a file for localization. You can choose SFTP private key file with browser.
1.2.9 Scroller for filer added.
1.2.8 Connection Management improved.
1.2.7 Database new creation bug fixed.
1.2.6 There was a building issue that's been fixed now and a small UI improvement was done.
1.2.5 SFTP public authentication supported.
1.2.4 Mark operation flaw fixed.
1.2.3 SFTP connection stabilized.
1.2.0 A three-pane GUI added.
1.1.7 Default color changed. Change Theme button was added in menu.
1.1.6 Stability when receiving responses was fixed. Document button was added in menu.
1.1.5 Scrolling and command history functions were enabled. Help button was added in menu.

Introduction

Runftp has many features. So I'm gonna describe the general usage first here.

You must first connect to an FTP server somewhere in the world. They will mostly give you right to access to an FTP server when you are offered services like web hosting or personal web page. You may want to contact the system administrator for details.

General Usage

You can connect anywhere you want to by clicking the quick connector UI located in the remote file view in the right side. The pane shown by default is called local file view. You can slide the sidebar on the right with your finger to scroll to the remote file view.

Local File View < Scroll to switch between filer views > Remote File View

In the remote file view, click on Open New Site and type the URL you like or choose one from the list that remembers some of the history.

The general syntax of URL is :

scheme:username@host.domain:port

where

You can also provide your DSA private key for SFTP. ( Only DSA keys are acceptable. Please don't use RSA mistakenly. )

Once connected, you can press a file to copy or delete it, and long-press (touch a file and hold for 1 sec) to invoke batch-process copying or deleting all marked files. To mark a file touch the item and move your finger to somewhere else. Marked items are usually highlighted.

Console Usage

If you are a bit strange and want to use console, you need to begin connection by open or its abbreviated form o command.

For FTP and FTPS, type :

$ o username@blahblah.com

Or for example, for SFTP with public key authentication, prepare a private key beforehand and type :

$ o -i /sdcard/id_dsa sftp:username@blahblah.com

( As written earlier, you can only use DSA keys. )

Then after it prompts with the target FTP host name and $ sign, enter again

user <your_username>

followed by password. This is not the case if you already provided the user name above.

FTP$ open ftp.hogehoge.net
Connected to ftp.hogehoge.net
220 Welcome to hogehoge FTP server.
....
ftp.hogehoge.net$ user alibaba
331 Enter your password
Password:opensesame
230

FTPS will be turned on whenever it's available. However you can insert ftps: and/or username@ between open and the hostname to explicitly enable secure (SSL) connection like :

FTP$ open ftps:run.sh

Insert sftp:username@ between open and the hostname to enable SFTP (SSH FTP) connection like :

FTP$ open sftp:ryu@run.sh

To list the files in remote directory, just type ls.

ftp.hogehoge.net$ ls
227 Entering Passive Mode (203,216,247,246,139,157)
150  Opening ASCII mode data connection for  .
total 256
-rw-rw-r-- 1 53 53 442841 Jan 1 22:06 2009-10-29_16.18.32.jpg
-rw-rw-r-- 1 53 53 673902 Dec 29 08:03 2009-12-11_07.54.21.jpg
-rw-rw-r-- 1 53 53 398775 Jan 1 22:09 2009-12-30_13.55.25.jpg

You can change the remote directory with cd command just like good and old DOS.

The default local directory is /sdcard/dcim/Camera. You can change this by typing lcd <target_directory>

ftp.hogehoge.net$ lcd ../..

This example moves the current directory to the upper directory of the parent, which is /sdcard.

To download a file named File_Name in the current directory into your phone, type :

ftp.hogehoge.net$ get File_Name

To upload a file named File_Name in the current directory in your phone to the connected server, type :

ftp.hogehoge.net$ put File_Name

To download all files in the directory into your phone, type mget *.

ftp.hogehoge.net$ mget *

To upload all the files existing in the directory you specified with lcd in your phone to the server, type mput *.

ftp.hogehoge.net$ mput *

That's it

Now you should have learned every basic operation of Runftp.

Congrats!

The rest of this page is merely an appendix to be a hint for setting up an FTP server and related programs.

ProFTPD

ProFTPD is a highly configurable FTP server. Supports FTPS (FTP over SSL/TLS).

To configure, edit the file /etc/proftpd/proftpd.conf.

Remove any pounds at first column in <Anonymous ~ftp> section so that you enable anonymous logins.

  # Restrict anonymous uploads to only 10 megabytes
  MaxStoreFileSize 10 Mb user anonymous
  MaxStoreFileSize *

If you are going to manage a popular site which calls the process many times, you may set the ServerType to standalone instead of inetd.

  ServerType standalone

If you go standalone, you need to also disable ftp process startup in /etc/inetd.conf.

#ftp ....

First SIGHUP xinetd, then proftpd.

$ sudo /etc/init.d/xinetd restart
$ sudo /etc/init.d/proftpd restart

When you create an SSL certificate for an authority e.g. CAcert , you need to copy the CA.pl script contained in openssl package to /etc/ssl and execute it with -newreq :

$ cd /etc/ssl/
$ sudo cp /usr/lib/ssl/misc/CA.pl .
$ sudo ./CA.pl -newreq

Provide your host name as the common name that's questioned in the program.

Common Name (eg, YOUR name) []:run.sh

To enable SSL/TLS connection, uncomment the tls.conf inclusion in /etc/proftpd/proftpd.conf :

Include /etc/proftpd/tls.conf

and edit /etc/proftpd/tls.conf this way.

<IfModule mod_tls.c>
  TLSEngine on
  TLSLog /var/log/proftpd/tls.log
  TLSProtocol SSLv23
  TLSRSACertificateFile /etc/ssl/certs/hoge.crt
  TLSRSACertificateKeyFile /etc/ssl/private/hoge.key
  TLSVerifyClient off
  TLSRequired off
</IfModule>

FTPS (FTP over SSL/TLS)

Using TLS 1.0 is currently the best approach. You probably want to disable old SSL 2.0 support in the client that may confuse the handshaking.

Authentication and Authorization

AUTH TLS
234
USER xxxx
TLS/SSL connection established.
331 Anonymous login ok, send your complete email address as your password
PASS xxxx
230 Anonymous access granted, restrictions apply
OPTS UTF8 ON
200 UTF8 set to on
SYST
----
FEAT
----

Storing and Retrieving Files

PBSZ 0
200 PBSZ 0 successful
PROT P
200 Protection set to Private
TYPE I
200 Type set to I
PASV
227 Entering Passive Mode
STOR/RETR hoge.tar.gz
150 Opening BINARY mode data connection for hoge.tar.gz
226 Transfer complete

Listing Files

PBSZ 0
200
PROT C
200
PASV
227 Entering Passive Mode
LIST/NLST
150 Opening ASCII mode data connection for file list
226 Transfer complete

SFTP (SSH FTP)

SFTP is not compatible with traditional FTP at all. It just utilizes the transfer function subsystem sftp-server of sshd in OpenSSH.

Generally SFTP packets cannot pass through proxies either.

RFCs For Reference

Have fun.


E-mail : ryu@run.sh
Valid XHTML 1.0 Strict Level A conformance,
  W3C WAI Web Content Accessibility Guidelines 2.0
Return to Home