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目录:
1.2 Xlight FTP Server
同样使用Xlight FTP时,也需要注意时候主动还是被动模式,默认端口均可修改。Xlight FTP支持使用不同端口启动多个FTP服务或者SFTP。
协议的话支持两种:
FTP表示是FTP服务器,默认端口是21,被动模式至少需要两个网络端口,同Serv-U类似。
SSH2表示是SFTP服务器,默认端口是22,可修改,SFTP服务器的话远程访问权限网络端口只需要一个。
Xlight FTP 配置PASV 端口范围如下:
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一样配置用户和密码,还有SFTP根目录:
配置完启动即可。验证SFTP服务器连通性:
使用XFTP测试SFTP连通是否正常,
登录登录后可看到SFTP根目录及其下文件,如下图所示:
使用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
为了方面应用程序读写sftp文件数据,可以使用下面命令将sftp挂载到linux的文件目录(类似mount):
sshfs admin@192.168.1.105:/ /home/xxxx/workspace/sftp