标签 FTP 下的文章

FTP(文件传输协议)是一个较老且最常用的标准网络协议,用于在两台计算机之间通过网络上传/下载文件。然而, FTP 最初的时候并不安全,因为它仅通过用户凭证(用户名和密码)传输数据,没有进行加密。

警告:如果你打算使用 FTP, 需要考虑通过 SSL/TLS(将在下篇文章中讨论)配置 FTP 连接。否则,使用安全 FTP,比如 SFTP 会更好一些。

推荐阅读:如何在 CentOS 7 中安装并保护 FTP 服务器

在这个教程中,我将向你们展示如何在 Ubuntu 中安装、配置并保护 FTP 服务器(VSFTPD 的全称是 “Very Secure FTP Deamon”),从而拥有强大的安全性,能够防范 FTP 漏洞。

第一步:在 Ubuntu 中安装 VSFTPD 服务器

1、首先,我们需要更新系统安装包列表,然后像下面这样安装 VSFTPD 二进制包:

$ sudo apt-get update
$ sudo apt-get install vsftpd

2、一旦安装完成,初始情况下服务被禁用。因此,我们需要手动开启服务,同时,启动它使得在下次开机时能够自动开启服务:

------------- On SystemD -------------
# systemctl start vsftpd
# systemctl enable vsftpd
------------- On SysVInit -------------
# service vsftpd start
# chkconfig --level 35 vsftpd on

3、接下来,如果你在服务器上启用了 UFW 防火墙(默认情况下不启用),那么需要打开端口 20 和 21 —— FTP 守护进程正在监听它们——从而才能允许从远程机器访问 FTP 服务,然后,像下面这样添加新的防火墙规则:

$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
$ sudo ufw status

第二步:在 Ubuntu 中配置并保护 VSFTPD 服务器

4、让我们进行一些配置来设置和保护 FTP 服务器。首先,我们像下面这样创建一个原始配置文件 /etc/vsftpd/vsftpd.conf 的备份文件:

$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

接下来,打开 vsftpd 配置文件。

$ sudo vi /etc/vsftpd.conf
OR
$ sudo nano /etc/vsftpd.conf

把下面的这些选项添加/改成所展示的值:

anonymous_enable=NO             # 关闭匿名登录
local_enable=YES        # 允许本地用户登录
write_enable=YES        # 启用可以修改文件的 FTP 命令
local_umask=022             # 本地用户创建文件的 umask 值
dirmessage_enable=YES           # 当用户第一次进入新目录时显示提示消息
xferlog_enable=YES      # 一个存有详细的上传和下载信息的日志文件
connect_from_port_20=YES        # 在服务器上针对 PORT 类型的连接使用端口 20(FTP 数据)
xferlog_std_format=YES          # 保持标准日志文件格式
listen=NO               # 阻止 vsftpd 在独立模式下运行
listen_ipv6=YES             # vsftpd 将监听 ipv6 而不是 IPv4,你可以根据你的网络情况设置
pam_service_name=vsftpd         # vsftpd 将使用的 PAM 验证设备的名字
userlist_enable=YES             # 允许 vsftpd 加载用户名字列表
tcp_wrappers=YES        # 打开 tcp 包装器

5、现在,配置 VSFTPD ,基于用户列表文件 /etc/vsftpd.userlist 来允许或拒绝用户访问 FTP。

注意,在默认情况下,如果通过 userlist_enable=YES 启用了用户列表,且设置 userlist_deny=YES 时,那么,用户列表文件 /etc/vsftpd.userlist 中的用户是不能登录访问的。

但是,选项 userlist_deny=NO 则反转了默认设置,这种情况下只有用户名被明确列出在 /etc/vsftpd.userlist 中的用户才允许登录到 FTP 服务器。

userlist_enable=YES                   # vsftpd 将会从所给的用户列表文件中加载用户名字列表
userlist_file=/etc/vsftpd.userlist    # 存储用户名字的列表
userlist_deny=NO

重要的是,当用户登录 FTP 服务器以后,他们将进入 chrooted 环境,即当在 FTP 会话时,其 root 目录将是其 home 目录。

接下来,我们来看一看两种可能的途径来设置 chrooted(本地 root)目录,正如下面所展示的。

6、这时,让我们添加/修改/取消这两个选项来将 FTP 用户限制在其 home 目录

chroot_local_user=YES
allow_writeable_chroot=YES

选项 chroot_local_user=YES 意味着本地用户将进入 chroot 环境,当登录以后默认情况下是其 home 目录。

并且我们要知道,默认情况下,出于安全原因,VSFTPD 不允许 chroot 目录具有可写权限。然而,我们可以通过选项 allow_writeable_chroot=YES 来改变这个设置

保存文件然后关闭。现在我们需要重启 VSFTPD 服务从而使上面的这些更改生效:

------------- On SystemD -------------
# systemctl restart vsftpd
------------- On SysVInit -------------
# service vsftpd restart

第三步:在 Ubuntu 上测试 VsFTP 服务器

7、现在,我们通过使用下面展示的 useradd 命令创建一个 FTP 用户来测试 FTP 服务器:

$ sudo useradd -m -c "Aaron Kili, Contributor" -s /bin/bash aaronkilik
$ sudo passwd aaronkilik

然后,我们需要像下面这样使用 echo 命令和 tee 命令来明确地列出文件 /etc/vsftpd.userlist 中的用户 aaronkilik:

$ echo "aaronkilik" | sudo tee -a /etc/vsftpd.userlist
$ cat /etc/vsftpd.userlist

8、现在,是时候来测试上面的配置是否具有我们想要的功能了。我们首先测试匿名登录;我们可以从下面的输出中很清楚的看到,在这个 FTP 服务器中是不允许匿名登录的:

# ftp 192.168.56.102
Connected to 192.168.56.102  (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.102:aaronkilik) : anonymous
530 Permission denied.
Login failed.
ftp> bye
221 Goodbye.

9、接下来,我们将测试,如果用户的名字没有在文件 /etc/vsftpd.userlist 中,是否能够登录。从下面的输出中,我们看到,这是不可以的:

# ftp 192.168.56.102
Connected to 192.168.56.102  (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : user1
530 Permission denied.
Login failed.
ftp> bye
221 Goodbye.

10、现在,我们将进行最后一项测试,来确定列在文件 /etc/vsftpd.userlist 文件中的用户登录以后,是否实际处于 home 目录。从下面的输出中可知,是这样的:

# ftp 192.168.56.102
Connected to 192.168.56.102  (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.102:aaronkilik) : aaronkilik
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

Verify FTP Login in Ubuntu

在 Ubuntu 中确认 FTP 登录

警告:设置选项 allow_writeable_chroot=YES 是很危险的,特别是如果用户具有上传权限,或者可以 shell 访问的时候,很可能会出现安全问题。只有当你确切的知道你在做什么的时候,才可以使用这个选项。

我们需要注意,这些安全问题不仅会影响到 VSFTPD,也会影响让本地用户进入 chroot 环境的 FTP daemon。

因为这些原因,在下一步中,我将阐述一个更安全的方法,来帮助用户设置一个非可写本地 root 目录。

第四步:在 Ubuntu 中配置 FTP 用户的 Home 目录

11、现在,再次打开 VSFTPD 配置文件。

$ sudo vi /etc/vsftpd.conf
OR
$ sudo nano /etc/vsftpd.conf

然后像下面这样用 # 把不安全选项注释了:

#allow_writeable_chroot=YES

接下来,为用户创建一个替代的本地 root 目录(aaronkilik,你的可能和这不一样),然后设置目录权限,取消其他所有用户对此目录的写入权限:

$ sudo mkdir /home/aaronkilik/ftp
$ sudo chown nobody:nogroup /home/aaronkilik/ftp
$ sudo chmod a-w /home/aaronkilik/ftp

12、然后,在本地 root 目录下创建一个具有合适权限的目录,用户将在这儿存储文件:

$ sudo mkdir /home/aaronkilik/ftp/files
$ sudo chown -R aaronkilk:aaronkilik /home/aaronkilik/ftp/files
$ sudo chmod -R 0770 /home/aaronkilik/ftp/files/

之后,将 VSFTPD 配置文件中的下面这些选项添加/修改为相应的值:

user_sub_token=$USER          # 在本地 root 目录中插入用户名
local_root=/home/$USER/ftp    # 定义各个用户的本地 root 目录

保存文件并关闭。然后重启 VSFTPD 服务来使上面的设置生效:

------------- On SystemD -------------
# systemctl restart vsftpd
------------- On SysVInit -------------
# service vsftpd restart

13、现在,让我们来最后检查一下,确保用户的本地 root 目录是我们在他的 Home 目录中创建的 FTP 目录。

# ftp 192.168.56.102
Connected to 192.168.56.102  (192.168.56.102).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:aaronkilik) : aaronkilik
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

FTP User Home Directory Login

FTP 用户 Home 目录登录

就是这样的!记得通过下面的评论栏来分享你关于这篇指导的想法,或者你也可以提供关于这一话题的任何重要信息。

最后但不是不重要,请不要错过我的下一篇文章,在下一篇文章中,我将阐述如何使用 SSL/TLS 来保护连接到 Ubuntu 16.04/16.10 的 FTP 服务器,在那之前,请始终关注我们。


作者简介:

Aaron Kili 是 Linux 和 F.O.S.S 爱好者,即将成为 Linux SysAdmin 和网络开发人员,目前是 TecMint 的内容创作者,他喜欢在电脑上工作,并坚信分享知识。


via: http://www.tecmint.com/install-ftp-server-in-ubuntu/

作者:Aaron Kili 译者:ucasFL 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在本教程中,我们将介绍如何使用 Ubuntu 16.04 / 16.10 中的 SSL / TLS 保护 FTP 服务器(FTPS)。

如果你想为基于 CentOS 的发行版安装一个安全的 FTP 服务器,你可以阅读 – 在 CentOS 上使用 SSL / TLS 保护 FTP 服务器

在遵循本指南中的各个步骤之后,我们将了解在 FTP 服务器中启用加密服务的基本原理,以确保安全的数据传输至关重要。

要求

在我们进行下一步之前,确保本文中的所有命令都将以root身份或者 sudo 特权账号运行。

第一步:在 Ubuntu 上为 FTP 生成 SSL/TLS 证书

1、我们将首先在 /etc/ssl/ 下创建一个子目录来存储 SSL/TLS 证书和密钥文件,如果它不存在的话这样做:

$ sudo mkdir /etc/ssl/private

2、 现在我们在一个单一文件中生成证书和密钥,运行下面的命令:

$ sudo openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048

上面的命令将提示你回答以下问题,不要忘了输入合适于你情况的值:

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email protected]

第二步:在 Ubuntu 上配置 vsftpd 来使用 SSL/TLS

3、在我们进行 vsftpd 配置之前,对于那些已启用 UFW 防火墙的用户,你们必须打开端口 99040000 - 50000,来在 vsftpd 配置文件中分别启用 TLS 连接端口和被动端口的端口范围:

$ sudo ufw allow 990/tcp
$ sudo ufw allow 40000:50000/tcp
$ sudo ufw status

4、现在,打开 vsftpd 配置文件并定义 SSL 详细信息:

$ sudo vi /etc/vsftpd/vsftpd.conf
或
$ sudo nano /etc/vsftpd/vsftpd.conf

然后,添加或找到选项 ssl_enable,并将它的值设置为 YES 来激活使用 SSL ,同样,因为 TLS 比 SSL 更安全,我们将通过启用 ssl_tlsv1 选项限制 vsftpd 只使用 TLS:

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

5、 接下来,使用 字符注释掉下面的行,如下所示:

#rsa_cert_file=/etc/ssl/private/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

然后,添加以下行以定义 SSL 证书和密钥文件的位置(LCTT 译注:或径直修改也可):

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

6、现在,我们也可以阻止匿名用户使用 SSL 登录,并且迫使所有的非匿名登录使用安全的 SSL 链接来传输数据和在登录期间发送密码:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7、此外,我们可以使用以下选项在 FTP 服务器中添加更多的安全功能 。对于选项 require_ssl_reuse=YES,它表示所有的 SSL 数据链接都需重用已经建立的 SSL 会话(需要证明客户端拥有 FTP 控制通道的主密钥),但是一些客户端不支持它,如果没有客户端问题,出于安全原因不应该关闭(默认开启)。(LCTT 译注:原文此处理解有误,译者修改。)

require_ssl_reuse=NO

此外,我们可以通过 ssl_ciphers 选项来设置 vsftpd 允许使用那些加密算法。 这将有助于挫败攻击者使用那些已经发现缺陷的加密算法的尝试:

ssl_ciphers=HIGH

8、 然后,我们定义被动端口的端口范围(最小和最大端口)。

pasv_min_port=40000
pasv_max_port=50000

9、 要启用 SSL 调试,把 openSSL 连接诊断记录到 vsftpd 日志文件中,我们可以使用 debug_ssl 选项:

debug_ssl=YES

最后,保存配置文件并且关闭它。然后重启 vsftpd 服务:

$ systemctl restart vsftpd

第三步:在 Ubuntu 上使用 SSL / TLS 连接验证 FTP

10、 执行所有上述配置后,通过尝试在命令行中使用 FTP 来测试 vsftpd 是否现在使用了 SSL / TLS 连接,如下所示。

从下面的输出来看,这里有一个错误的信息告诉我们 vsftpd 仅允许用户(非匿名用户)从支持加密服务的安全客户端登录。

$ ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>

该命令不支持加密服务从而导致了上述错误。因此,要安全连接到启用了加密服务的 FTP 服务器,我们需要一个默认支持 SSL/TLS 连接的 FTP 客户端,例如 FileZilla。

第四步:在客户端上安装FileZillaStep来安全地连接FTP

11、FileZilla 是一个强大的,广泛使用的跨平台 FTP 客户端,支持在 SSL/TLS 上的 FTP。为了在 Linux 客户端机器上安装 FileZilla,使用下面的命令。

--------- On Debian/Ubuntu ---------
$ sudo apt-get install filezilla   
--------- On CentOS/RHEL/Fedora --------- 
# yum install epel-release filezilla
--------- On Fedora 22+ --------- 
$ sudo dnf install filezilla

12、 一旦安装完成,打开它然后点击File=>Sites Manager或者(按Ctrl+S)来获取下面的Site Manager。

Filezilla Site Manager

Filezilla Site Manager

13、 现在,定义主机/站点名字,添加 IP 地址,定义使用的协议,加密和登录类型,如下面的屏幕(使用适用于你方案的值):

点击 New Site 按钮来配置一个新的站点/主机连接。

  • Host: 192.168.56.10
  • Protocol: FTP – File Transfer Protocol
  • Encryption: Require explicit FTP over #推荐
  • Logon Type: Ask for password #推荐
  • User: 用户名

在Filezilla上配置新的FTP站点

在 Filezilla 上配置新的 FTP 站点

14、 然后从上面的界面单击连接以输入密码,然后验证用于 SSL / TLS 连接的证书,并再次单击确定以连接到 FTP 服务器:

验证FTP的SSL证书

验证 FTP 的 SSL 证书

15、现在,你应该通过 TLS 连接成功地登录到了 FTP 服务器,检查连接状态部分,来获取有关下面接口的更多信息。

连接Ubuntu的FTP服务器

连接 Ubuntu 的 FTP 服务器

16、 最后,让我们在文件夹中从本地的机器传送文件到 FTP 服务器, 查看 FileZilla 界面的下端来查看有关文件传输的报告。

使用Filezilla安全的传输FTP文件

使用 Filezilla 安全的传输 FTP 文件

就这样! 始终记住,安装 FTP 服务器而不启用加密服务具有某些安全隐患。 正如我们在本教程中解释的,您可以在 Ubuntu 16.04 / 16.10 中配置 FTP 服务器使用 SSL / TLS 连接来实现安全性。

如果你在 FTP 服务器上设置 SSL/TLS 遇到任何问题,请使用以下评论表单来分享您对本教程/主题的问题或想法。


作者简介:

Aaron Kili 是 Linux 和 F.O.S.S 爱好者,即将成为 Linux SysAdmin 和网络开发人员,目前是 TecMint 的内容创作者,他喜欢在电脑上工作,并坚信分享知识。


via: http://www.tecmint.com/secure-ftp-server-using-ssl-tls-on-ubuntu/

作者:Aaron Kili 译者:DockerChen 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似。 然而,sFTP 比 FTP 更安全;它通过加密 SSH 传输处理所有操作。

它可以配置使用几个有用的 SSH 功能,如公钥认证和压缩。 它连接并登录到指定的远程机器,然后切换到交互式命令模式,在该模式下用户可以执行各种命令。

在本文中,我们将向你展示如何使用 sFTP 上传/下载整个目录(包括其子目录和子文件)。

如何在 Linux 中使用 sFTP 传输文件/文件夹

默认情况下,SFTP 协议采用和 SSH 传输协议一样的方式建立到远程服务器的安全连接。虽然,用户验证使用类似于 SSH 默认设置的密码方式,但是,建议创建和使用 SSH 无密码登录,以简化和更安全地连接到远程主机。

要连接到远程 sftp 服务器,如下建立一个安全 SSH 连接并创建 SFTP 会话:

$ sftp [email protected]

登录到远程主机后,你可以如下运行交互式的 sFTP 命令:

sftp> ls            #list directory 
sftp> pwd           #print working directory on remote host
sftp> lpwd          #print working directory on local host
sftp> mkdir uploads     #create a new directory

Run sFTP Commands on Remote Linux

  • Linux 主机上运行 sFTP 命令*

如何使用 sFTP 上传文件夹

要将整个目录上传到远程 Linux 主机中,请使用 put 命令。但是,如果目录名称不存在于远程主机上的工作目录中,你将收到错误,如下面的屏幕截图所示。

因此,首先在远程主机上创建一个具有相同名称的目录,然后从本地主机上传它,-r 参数允许拷贝子目录和子文件:

sftp> put -r  Tecmint.com-articles
sftp> mkdir Tecmint.com-articles
sftp> put -r Tecmint.com-articles

Upload Directory using SFTP

使用 sFTP 上传文件夹

要保留修改时间、访问时间以及被传输的文件的模式,请使用 -p 标志。

sftp> put -pr Tecmint.com-articles

如何使用 sFTP 下载文件夹

要从远程 Linux 主机下载整个 fstools-0.0 文件夹到本机中,如下所示使用 get 命令带上 -r 标志:

sftp> get -r fstools-0.0

Download Directory using sFTP

使用 sFTP 下载目录

如果文件夹已经下载完成了,接着查看本机的工作目录。

要退出 sFTP shell,输入:

sftp> bye
或者
sftp> exit

此外,阅读这篇 sFTP 命令和使用技巧

请注意,为了防止用户访问远程主机上的整个文件系统,出于安全原因,你可以使用 chroot Jail 将 sFTP 用户限制到其主目录中。

就是这样了!在本文中,我们向你展示了如何使用 sFTP 上传/下载整个目录。使用下面的评论栏向我们提供你对本文/主题的看法。


作者简介:

Aaron Kili 是 Linux 和 F.O.S.S 爱好者,将来的 Linux 系统管理员和网络开发人员,目前是 TecMint 的内容创作者,他喜欢用电脑工作,并坚信分享知识。


via: http://www.tecmint.com/sftp-upload-download-directory-in-linux/

作者:Aaron Kili 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Linux 内核组织 Linux Kernel Organization (kernel.org) 是一家建立于 2002 年的加利福尼亚公共福利公司,其目的是公开地免费分发 Linux 内核和其它开源软件。它接受 Linux 基金会的管理,包括技术、资金和人员支持,用以维护 kernel.org 的运营。

Linux 内核组织是 Linux 内核发布的官方场所,在其站点上可以找到 Linux 内核的各个版本,包括最早的 1.0 到最新的 4.x 内核。其所提供的内核获取方式多种多样,包括:

以及 FTP 方式,然而,现在他们决定停止 FTP 方式的下载了。

最初,早在 1998 年的时候, Linux 内核组织就提供了以 FTP 服务为基础的内核代码获取方式,除了可以直接通过 FTP 进行下载以外,还可以通过 HTTP 协议封装来访问 FTP 资源,甚至,还允许通过 NFS 和 SMB/CIFS 来将他们的 FTP 资源挂载为本地分区。

不过,不久之后,他们发现提供一个公开的 NFS/CIFS 服务器看起来并不是一个好主意,不仅仅是因为这两种服务在慢速网络时表现很糟糕,而且它们本身也存在严重的安全隐患。因此于当年年底时停止了对 NFS 和 SMB/CIFS 的支持。

而现在,基于如下考虑:

  • FTP 服务需要在防火墙和负载均衡设备上做额外的配置和调整
  • FTP 服务器不支持缓存和加速器,这严重影响了性能
  • 大多数的相关软件缺乏维护和更新

因此,在服务了 19 年之后,Linux 内核组织决定彻底终止 FTP 服务器上剩下的 FTP 服务了。Linux 内核组织所有的 FTP 服务都将在今年内关闭,为了减少影响,关闭分为两个阶段:

  1. <ftp://ftp.kernel.org/> 服务将于 2017 年 3 月 1 日终止
  2. <ftp://mirrors.kernel.org/> 服务将于 2017 年 12 月 1 日终止

不过,如果你有任何疑问,欢迎联系 [email protected]

每一个使用安卓设备的人都知道可以使用 USB 线连接电脑来传输文件,但是不是所有人都知道可以使用自由开源软件(FOSS 软件)通过无线连接到安卓设备。

我知道,这并非最简易的方式,但这样做的确很有趣而且感觉很极客。所有,如果你有一些 DIY 精神,让我为你展示如何在 Linux 和 安卓设备之间使用 FTP 来传输文件。

第一步:安装必要的软件

为了连接你的安卓设备,至少需要:一个 FTP 服务器和一个 FTP 客户端。这两者都有不少的选择,个人比较推荐 Filezilla 作为客户端,因为它是开源的,而且支持多种平台。

我最喜欢的 FOSS 安卓应用商店就是 F-Droid。F-Droid 有两个非常棒的 FTP 服务端应用:primitive ftpdFTP Server (Free)。这两者都只能运行在安卓 4.0 或者更高的版本中。本文我会集中介绍 primitive ftpd,如果使用 FTP Sever (free) 也是一样的步骤。

第二步:熟悉 FTP 服务器

安装好 FTP 客户端和服务端之后,就是设置两者之间的连接了。先从安卓设备的 FTP 服务端开始,首先,通过应用启动器打开 primitive ftpd。

打开应用之后,你将看到一大串的数字。不用紧张,你可以看到服务端已经分配到一个 IP 地址 (本文是 192.168.1.131)。往下看,将看到 FTP 和 SFTP 服务 (SFTP 是一个截然不同的协议,它通过 SSH 进行连接) 都是还未运行的。再往下就是用户名,本文设置为 user。

在屏幕顶端有两个按钮,一个用于开启 FTP 服务,另一个则是设置 FTP 服务。启动服务是不言自明的。

在设置菜单中,可以改变服务器的用户名、访问密码以及所使用的端口。并且你可以设置当服务器激活是阻止待机、服务开机自启或者变更主题。

第三步:使用 Filezilla

现在打开对应你所用系统的 Filezilla。使用 Filezilla 有两种方法:在需要传输文件时输入 IP、用户名、密码和端口,或者在 Filezilla 中预先保存这些信息(值得注意的是:基本上,每次你打开 FTP 服务时,IP 都会不同的,所用需要更新保存在 Filezilla 中信息)。我会展示这两种方法。

如果你想要手动输入,直接在 Filezilla 窗口上方输入必要的信息然后点击“快速连接”即可。

需要预先存储信息的话,点击文件菜单下方的按钮,这会打开“站点管理器”对话框,填写你想要保存的信息即可。通常,我设置“登录类型”为“询问密码”,安全为上。如果使用的是 FTP,保存默认选项即可;但如果使用的是 SFTP,必须在协议下拉选项框中进行协议的选择。

点击连接,输入密码即可。你会看到一个连接新主机的警告,这是可以在此验证屏幕上显示的“指纹信息”是否与 Primitive FTPD 上的一致。如果一致 (也应该是一致的),点击确认添加都已知主机列表,之后就不会出现该警告了。

第四步:传输文件

现在,你会看到两个框,一个是“本地站点”,一个是“远程站点”,对应的呈现了你电脑和安装设备上的目录和文件信息。然后你就可以在电脑端浏览和传输文件到你的安卓设备上了。个人建议上传文件到你的 Download 文件夹,以便于文件跟踪管理。你可以右击某个文件,在弹出的菜单中选择上传或者下载以及移动操作,或者简单双击也行。

第五步:停止服务

当你完成文件的传输之后,你需要做得就是停止安卓设备上的 FTP 服务和关闭 Filezilla,如此简单,不是吗?

结论

我相信会有人指出,FTP 并不安全。而我认为,本例不需要考虑这个问题,因为连接时间一般很短。并且多数情况下,都是在家庭私有网络环境中进行操作。

这就是我在 Linux 和安卓设备间最喜欢使用的方法。

觉得有用吗?或有又没觉得推荐的相似软件?请在评论中告诉我们。

如果觉得此文有用,请花几分钟分享到你常用的社交站点中。


via: https://itsfoss.com/use-ftp-linux-android/

作者:John Paul 译者:GHLandy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

问题

有一天我要连接到我的 web 服务器。我使用 FileZilla 连接到 FTP 服务器。当我输入主机名和密码连接服务器后,我得到了下面的错误。

Error: Cannot establish FTP connection to an SFTP server. Please select proper protocol.

Error: Critical error: Could not connect to server

FileZilla Cannot establish FTP connection to an SFTP server

原因

看见错误信息后我意识到了我的错误是什么。我尝试与一台 SFTP 服务器建立一个 FTP 连接。很明显我没有使用一个正确的协议(应该是SFTP而不是FTP)。

如你在上图所见,FileZilla 默认使用的是FTP协议。

解决 “Cannot establish FTP connection to an SFTP server” 的方案

解决方案很简单。使用 SFTP 协议而不是 FTP。你要做的就是把协议修改成 SFTP。这就是我要告诉你的。

在 FileZilla 菜单中,进入 文件->站点管理

FileZilla Site Manager

在站点管理中,进入通用选项并选择 SFTP 协议。同样填上主机、端口号、用户密码等。

Cannot establish FTP connection to an SFTP server

我希望你从这里可以开始工作了。

我希望本篇教程可以帮助你修复 “Cannot establish FTP connection to an SFTP server. Please select proper protocol.”这个问题。在相关的文章中,你可以读了解在 Linux 中如何设置 FTP


via: http://itsfoss.com/fix-establish-ftp-connection-sftp-server/

作者:Abhishek 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出