FTP安装
sudo apt-get install vsftpd
安装完成后,FTP的默认文件目录:/srv/ftp
创建目录及账号
创建你用于操作FTP的文件目录及账户:
#创建目录
sudo mkdir tang
#执行完后ls -l查看文件归属就是tang账户了
sudo useradd -d /srv/ftp/tang tang
sudo passwd tang
输入密码:123456
#赋予文件权限
sudo chmod 777 fileName
#设置文件所属账号(可以不执行,因为之前添加用户的时候已经设置了)
sudo chown userName fileName
#通信系统访问带锁文件
sudo dde-file-manager 目标文件夹/文件路径
#此命令用于查看ftp用户列表
#cat /etc/passwd|grep ftp
FTP配置文件
FTP默认安装到ETC目录下
在此目录下创建vsftpd.chroot_list文件,内容为空,如果要增加就一行一个用户名
将vsftpd.conf替换为以下内容
#允许用户匿名登录
anonymous_enable=YES
#允许本地用户登录
local_enable=YES
#
#启用任何形式的FTP写入命令
write_enable=YES
local_umask=022
#anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
xferlog_std_format=YES
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
allow_writeable_chroot=YES
#ls_recurse_enable=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
tcp_wrappers=YES
listen_port=54000
#是否开启被动模式
pasv_enable=YES
#数据传输端口,1024往上,被动模式下ftp服务是可以进行配置端口范围的,主动模式无法在配置文件中指定端口,用被动模式就行了
pasv_min_port=54001
pasv_max_port=54010
检查是否安装成功
打开电脑文件夹访问:ftp://IP:PORT/
如果访问成功,并且可以对文件CRUD就完成了
配置过程中遇到的问题汇总
用Xftp工具及网页都能访问,但本地资源管理器访问不了
关键信息:227 Entering Passive Mode(192.168.2.102).
发送被动模式命令后,server返回的是内网地址(192.168.2.102),客户端会以内网地址加端口建立数据传输通道,从而导致数据传输失败
xftp客户端、浏览器为什么可以正常使用?
查看连接过程中的信息,可以看到“状态:服务器发回了不可路由的地址。使用服务器地址代替”
所以客户端是对当前情况做了兼容处理的
解决方式
修改ftp配置
#要用IPv4
listen=YES
listen_ipv6=NO
#如果公网路由器是动态路由就开启这个
pasv_addr_resolve=YES
pasv_address=你需要FTP返回的公网地址