在阿里雲的ECS上搭建VSFTPD的時候遇到了一些奇怪的問題,下面將解決方案分享下。安全
最新的vsftpd是2.2.2版本vsftpd -v
能夠查看,配置文件跟以前有很大的不一樣,咱們能夠按照阿里雲給出的文檔進行配置服務器
網上不少教程關於user_list的說法都是若是開啓了userlist_enable=YES
而且userlist_deny=YES
的時候,表明user_list
文件內部是禁止的用戶。可是實際上新版本的配置文件,只有一個userlist_enable=YES
,這個的意思是『若是爲YES表明禁止裏面的用戶登錄』,這個地方須要注意。代理
在使用21端口進行訪問的時候,長時間無反應,查看iptables
發現是關閉狀態,另外使用netstat
命令查看vsftpd的確正在監控21端口。code
因而懷疑是不是ecs的自己設置問題,登錄控制檯,發現有安全組的配置。自己開啓了部分端口。因而咱們建立一個新的安全組添加端口爲21/21
,而後就能夠登錄了。教程
對於ftp而言,是有主動(pass)和被動(pasv)兩種模式的,簡單介紹下:
主動:服務端來連接客戶端
被動:客戶端去連接服務端ip
有什麼區別呢?客戶端在內網,通過層層代理,若是服務端來連接個人話,可能會找不到我。因此咱們要用被動模式,也是最經常使用的模式。路由
可是報錯了!!文檔
鏈接創建,等待歡迎消息... 狀態: 不安全的服務器,不支持 FTP over TLS。 狀態: 已登陸 狀態: 讀取「/」的目錄列表... 狀態: 服務器發回了不可路由的地址。使用服務器地址代替。
而後找資料不少都是說從被動模式回退爲主動模式,可是咱們稍加思考就知道這種方式不對哦。get
咱們來分析下:
上面就是咱們解決這個問題的思路,配置一個範圍,在/etc/vsftpd/vsftpd.conf
中加入下面代碼
pasv_enable=YES pasv_max_port=7000 pasv_min_port=6000
開啓了6000-7000的端口,不要着急,咱們還要去安全組將這個範圍的端口打開,容許客戶端連接進來,而後就大功告成!