Primitive Ftpd:将设备变身为FTP/SFTP服务器

2017-05-30_1_46_38_下午.jpg

  文章更新:
  20170529 初次成文

  • 应用名称:Primitive Ftpd
  • 应用包名:org.primftpd
  • 备注说明:暂无

  写在前面:
  今天呢,小苏要为大家推荐一款很棒的应用,这款应用呢,"文能设备间传文件,武能代替手机数据线",虽然似乎听起来很专业,但是其实使用起来很简便,到底是什么好东西呢,一起来看看吧:

  Primitive Ftpd是一款免费,无广告且开源的,可以在安卓设备上提供FTP/SFTP服务来分享设备上文件的应用,使用Primitive Ftpd,你的安卓设备将会变身为FTP/SFTP服务器,当两台设备处在同一局域网下,客户端就可通过FTP/SFTP协议访问服务端中的文件。
  
  
  使用场景:
  如果你的手头没有数据线,而手机和电脑处于同一局域网(或者同一WIFI网络下),你可以在电脑上安装FTP/SFTP客户端,把文件上传到手机或者把手机上的文件下载到电脑本地。同理,如果两台手机处于同一局域网下,只要一台设备安装了Primitive Ftpd并开启FTP/SFTP服务,另一台设备安装有FTP/SFTP客户端,客户端也可以访问/管理服务端中的文件。

  如果客户端只有下载"服务端"中文件的需求,事情将会变得更简单:只要服务端开启FTP服务(SFTP暂不支持此特性),在同一局域网(或者同一WIFI网络)下的设备上打开浏览器,输入:ftp://serverip:port,其中,serverip为局域网分配给服务端的IP地址,port为FTP服务的端口,通过认证后,即可在浏览器中列出服务端中的文件。此时,你可以通过点击想要下载的文件将其从服务端下载到客户端。
  
  
  服务端配置:
  下载安装打开Primitive Ftpd,我们将会看到如下界面:

2017-05-30_1_24_21_下午.jpg

  因为需要经过配置才能够使用FTP/SFTP服务,所以我们点击右上角的"齿轮"图标进入配置界面,在配置界面中,我们将会看到以下选项:

2017-05-30_1_24_50_下午.jpg

  Anonymous Login:
  是否允许匿名登陆(仅对FTP服务有效),当开启此选项时,将允许客户端以匿名方式登录服务端,此时客户端有两种登陆方式:
  1. 输入正确的FTP用户名和密码以登陆FTP服务端
  2. 使用用户名:anonymous和空密码以匿名登录的方式登陆FTP服务端
  需要注意的是,当服务端开启匿名登陆选项,而客户端采用方式1登陆服务端,也需要输入正确的FTP用户名和密码才准许登录服务端。

  User Name:
  客户端登录FTP/SFTP服务端时需要填写的用户名,当使用匿名登录方式时(仅FTP可用),客户端应填写anonymous

  Password:
  客户端登录FTP/SFTP服务端时需要填写的密码,当使用匿名登录方式时(仅FTP可用),客户端无需填写密码。

  Server(s) to be started:
  选择服务端要开启的服务:
  1. 二者都开启
  2. 仅开启FTP服务
  3. 仅开启SFTP服务

  Port:
  FTP服务端口,端口范围可以在1024~64000间任意选择。

  Secure Port:
  SFTP服务端口,端口选择范围同上。

  Server Start Directory:
  此选项可指定客户端登陆FTP/SFTP成功后用户第一次看到的目录,如设定为/storage/emulated/0/Music/,则客户端可登录成功后,将看到服务端内部存储下Music文件夹下的文件(某些文件管理器将忽略此声明,如ES文件管理器)。

  Prevent Standby:
  部分设备在熄屏一段时间之后将进入休眠状态,此时FTP/SFTP将无法提供服务。开启此选项将在上传/下载文件时阻止设备休眠(默认开启且推荐开启)。

  Announce server in LAN:
  这个选项不太清楚...不过下面介绍说开启此特性可能会不稳定(默认关闭)...

  Start on boot:
  在设备开机后自动开启FTP/SFTP服务。

  Public Key Authentication:
  (仅SFTP可用)启用此项后,将允许通过公钥登录SFTP,其中,公钥文件路径为:/storage/emulated/0/.ssh/authorized_keys

  FTP Passive Ports:
  (仅FTP可用)此选项可以指定当客户端通过"被动模式"登录FTP服务器时,客户端所使用的"数据传输端口",此端口可以是某个端口,或者某段端口,或者是这两者的组合。例如可以填写:5678,5700-5710,5800,5900(如有特殊需求时可以填写,默认情况下无需填写)。
  
  
  连接到服务端:
  配置完成后,回到主界面,点击上方的"三角"图标开启服务,此时局域网下的其他设备可以使用FTP/SFTP客户端连接到服务端。

  这里以服务端地址:192.168.123.20,FTP端口:2100,用户名:Android,密码:1234567890,且使用ES文件管理器为大家演示:

2017-05-30_1_26_06_下午.jpg

2017-05-30_1_26_16_下午.jpg

  我们也可以在浏览器中键入:ftp://192.168.123.20:2100来通过浏览器的方式访问FTP服务端(若在应用中启用"匿名模式",则无需在浏览器中输入用户名和密码,键入ftp地址后可直接登陆):

2017-05-30_1_27_12_下午.jpg

2017-05-30_1_27_21_下午.jpg
  
  
  资源下载:
  Github:
  https://github.com/wolpi/prim-ftpd/releases

  Google Play:
  https://play.google.com/store/apps/details?id=org.primftpd

  F-Droid:
  https://f-droid.org/app/org.primftpd

已有 8 条评论
  1. 哇~苏老板好棒~
    立即使用~

  2. k3v1nyang

    这个传输速率受什么影响呢....?
    我和同学试用时下载速度只有200kb/s

    1. 影响的因素挺多的...
      如果要达到比较高的传输速率建议两台设备处于同一个路由器下,如果两台设备通过热点的方式连接的话速度可能会慢...
      如果两台设备处于同一个路由器下,我的测试能达到2m/s.

    2. k3v1nyang

      是一个路由器

    3. 那就不清楚了...
      不过FTP的方式效率本来就不是太高(相对于HTTP来说)

    4. k3v1nyang

      好的谢谢苏大大~我还是用Python的http服务吧( ´∀`)

  3. 萌新

    我一直用的busybox自带的ftpd....然而1.19.2以上的版本都需要密码登陆,却不知道密码在那里设置....

添加新评论