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