配置支援ipv6的vsftpd服務
阿新 • • 發佈:2018-12-13
最近需要配置一個支援ipv6的vsftpd服務,但只有ipv4的服務能正常工作。ipv6的客戶端連上後,除了pwd命令可以執行外,其他命令都報550 Permission denied.Passive mode refused.的錯誤。經過一番琢磨後發現了問題的所在。下面我來描述下我遇到的問題及解決方法。希望能夠幫助到有同樣困擾的朋友。
[[email protected] ~]# ftp 2090:db8:85a3:9812::34 8021 Connected to 2090:db8:85a3:9812::34 (2090:db8:85a3:9812::34). 220-Authorized uses only. All activity may be monitored and reported. 220 Name (2090:db8:85a3:9812::34:root): ftpbatch 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/" ftp> ls 550 Permission denied. 550 Permission denied. Passive mode refused. ftp>
1. 本來在/etc/vsftpd/目錄下建立兩個配置檔案,同時監聽ipv4和ipv6。
vsftpd.conf
vsftpdv6.conf
按照提示,分別配置如下: listen=YES #listen_ipv6=YES
及 #listen=YES listen_ipv6=YES 然後在兩個配置檔案中cmds_allowed都是支援這些命令:
FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,RETR
2. 後來在客服端中開啟debug模式,發現了兩個命令,EPSV,LPSV
ftp> debug
Debugging on (debug=1).
ftp> ls
---> EPSV 2
550 Permission denied.
---> LPSV
550 Permission denied.
Passive mode refused.
ftp>
搜了下,原來cmds_allowed中的PASV只支援ipv4協議。EPSV才能同時支援ipv4及ipv6。可以參考:
3. 最後在listen_ipv6的配置檔案的cmds_allowed配置項中添加了EPSV及LPSV。然後就能成功使用ls,cd這樣的命令,能成功上傳檔案了。(我覺得把PASV換成EPSV就能解決問題了,但還沒有嘗試。)