1.windows 下常用ftp服务器

FTP服务器(file transfer protocol server)是在互联网上提供文件存储和访问服务的计算机,他们依照ftp协议提供服务。简单地说,支持FTP协议的服务器就是FTP服务器。

FTP是仅基于TCP的服务,不支持UDP。

FTP服务器有2个端口,一个数据端口20和一个命令(控制)端口21 (端口可以修改)。
其中:21端口是用来连接的,20端口用于传输数据。
在进行数据传输时,客户端首先连接FTP服务器的21端口,给用户的认证,认证成功后,要传输文件时,服务器会开一个端口为20来进行传输文件。端口20才是真正传输所用到的端口,端口21只用于FTP的登录认证。我们平时下载文件时,会遇到下载99%时,文件下载无法完成的情况。其实是因为文件下载完毕后,还要在21端口再次进行用户认证,而下载文件的时间过长,客户机和服务器的21端口的连接会被服务器认为是超时连接而中断掉;解决方法是:设置21端口的响应时间。

FTP有主动模式和被动模式,主动模式时的数据端口随机分配,被动模式下才是上述所说中的20端口,这个端口可以修改。

对应有防护墙等网络权限限制的,FTP需要用被动模式,固定数据端口。

因此申请权限时需要申请两个端口。

以Serv-U和Xlight FTP服务器为例

1.1 Serv-U Server

修改默认FTP端口:

ftp客户端镜像 ftp服务器映射_数据


修被动模式时的数据端口:

ftp客户端镜像 ftp服务器映射_ftp客户端镜像_02

增加FTP访问用户和密码以及FTP目录:

ftp客户端镜像 ftp服务器映射_Server_03

1.2 Xlight FTP Server

同样使用Xlight FTP时,也需要注意时候主动还是被动模式,默认端口均可修改。Xlight FTP支持使用不同端口启动多个FTP服务或者SFTP。

ftp客户端镜像 ftp服务器映射_ftp客户端镜像_04

协议的话支持两种:
FTP表示是FTP服务器,默认端口是21,被动模式至少需要两个网络端口,同Serv-U类似。
SSH2表示是SFTP服务器,默认端口是22,可修改,SFTP服务器的话远程访问权限网络端口只需要一个。

ftp客户端镜像 ftp服务器映射_数据_05

Xlight FTP 配置PASV 端口范围如下:

ftp客户端镜像 ftp服务器映射_ftp客户端镜像_06

ftp目录可以挂载到linux下(类似mount),使用sshfs或者curlftpfs,以curlftpfs为例:

(1)安装 curlftpfs
 apt-get install curlftpfs
 (2)用curlftpfs命令挂载
 curlftpfs -o codepage=utf8 ftp://username:password@127.0.0.1:21 /home/xxxx/workspace/ftp
 codepage: 编码方式,一般用utf8,你也可以用gb2312
 username: FTP用户名
 password: FTP密码
 127.0.0.1: FTP地址


端口:21 (默认21,可修改)

需要注意的是,你的FTP用户名如果含有【@】这类的特殊字符的话,请用【%40】来代替【@】。

挂载完毕后,挂载完毕后,我们只要进入 /home/xxxx/workspace/ftp 目录,就可以看到我们FTP服务器的文件了。

(3)卸载挂载

fusermount -u /home/xxxx/workspace/ftp或 umount /home/xxxx/workspace/ftp

(4)开机自动挂载

但是,挂载完毕后,我们每次重启系统,挂载点都会消失,因为这需要我们加入到开机自动挂载去,运行以下命令便可以了,记得里面的数据要替换过来。
echo “curlftpfs -o codepage=utf8 ftp://username:password@127.0.0.1:21 /home/xxxx/workspace/ftp” >> /etc/fstab

2.windows 下常用sftp服务器

2.1 Xlight FTP Server

使用Xlight FTP 配置sftp时和配置ftp类似,创建SFTP服务器是选择SSH协议,默认端口为22端口

ftp客户端镜像 ftp服务器映射_ftp客户端镜像_07


和FTP一样配置用户和密码,还有SFTP根目录:

ftp客户端镜像 ftp服务器映射_Server_08


配置完启动即可。验证SFTP服务器连通性:

使用XFTP测试SFTP连通是否正常,

ftp客户端镜像 ftp服务器映射_ftp客户端镜像_09

登录登录后可看到SFTP根目录及其下文件,如下图所示:

ftp客户端镜像 ftp服务器映射_数据_10

使用ubuntu18.0.4系统自带的sftp命令测试,可用-P 指定sftp端口。

sftp -P 2100 admin@192.168.1.105
admin@192.168.1.105's password: 
Connected to 192.168.1.105.
sftp> ls

ftp客户端镜像 ftp服务器映射_服务器_11


为了方面应用程序读写sftp文件数据,可以使用下面命令将sftp挂载到linux的文件目录(类似mount):

sshfs admin@192.168.1.105:/ /home/xxxx/workspace/sftp

ftp客户端镜像 ftp服务器映射_数据_12