1、安装vsftpd
sudo apt-get install vsftpd
2、启动vsftpd服务
systmctl start vsftpd
确认服务是否开启
netstat -tunlp
出现21端口处于listen状态。
安装telnet
sudo apt-get install telnet
通过以下命令测试是否已启动服务:
telnet 'ip地址' 21
出现以下内容说明已经启动。
Trying 123.207.227.131...
Connected to 123.207.227.131.
Escape character is '^]'.
220 (vsFTPd 3.0.3)
3、配置vsftpd
sudo vim /etc/vsftpd.conf
将anonymous_enable=YES
改为 anonymous_enable=NO
,保存退出。
4、添加FTP用户
sudo useradd -m -d /home/ftpuser1 -s /sbin/nologin ftpuser1
sudo passwd ftpuser1
输入密码并确认即可。
问题
1、FileZilla登陆一直出现(响应: 220 (vsFTPd 3.0.3) ,命令:AUTH TLS)错误
状态: 正在连接 123.207.227.131:21...
状态: 连接建立,等待欢迎消息...
响应: 220 (vsFTPd 3.0.3)
命令: AUTH TLS
错误: 无法连接到服务器
状态: 正在等待重试...
状态: 正在连接 123.207.227.131:21...
状态: 连接建立,等待欢迎消息...
响应: 220 (vsFTPd 3.0.3)
命令: AUTH TLS
这是由于FTP服务器不支持FTP over TLS的连接方式(FileZilla默认为此模式)。FTP over TLS是指客户端显式请求(客户端发送"AUTH TLS"命令)对FTP会话加密。
解决办法:
登陆时设置FTP客户端不要求会话加密,即采用普通的FTP会话方式。以FileZilla软件为例,客户在管理站点的时候,“加密”选择为“只使用普通FTP(不安全)”即可。
2、连接ftp出现 331 Please specify the password 的解决办法
状态: 正在连接 120.78.147.27:21...
状态: 连接建立,等待欢迎消息...
命令: USER root
响应: 331 Please specify the password.
命令: PASS ***************
响应: 530 Login incorrect.
错误: 严重错误: 无法连接到服务器
出现错误的原因,是因为ubuntu启用了PAM,所在用到vsftp时需要用到 /etc/pam.d/vsftpd 这个文件(默认源码安装的不会有这个文件),因此除了匿名用户外本地用户无法登录。所以解决的办法就是删除这个文件
sudo rm /etc/pam.d/vsftpd