突然想在vps上配置一個ftp伺服器。。于是就查各種資料安裝vsftpd。。查到一堆文章對着配置檔案一頓詳解,我隻是想安裝一個伺服器自己用。。。不要這麼高深的配置好不好。。。本人安裝環境:Ubuntu14.04 server 64位版。
1) 安裝vsftpd
sudo apt-get install vsftpd
2) 修改配置檔案vsftpd.conf
#禁止匿名通路
anonymous_enable=NO
#允許本地使用者通路
local_enable=YES
#允許上傳檔案
write_enable=YES
#設定預設檔案上傳權限為0644
local_umask=022
#修改歡迎資訊(可有可無)
ftpd_banner=Welcome to liuzhigong.com
#鎖定使用者在自己目錄下
chroot_local_user=YES
#打開監聽
listen=YES
#預設ftp根目錄
local_root=/var/ftp
#使用PASV模式, 伺服器處于内網或NAT下務必配置
pasv_promiscuous=YES
pasv_enable=YES
#PASV位址, 即伺服器公網位址
pasv_address=liuzhigong.com
#PASV模式使用的端口段, 務必在防火牆中配置開放
pasv_min_port=10010
pasv_max_port=10086
3) 添加使用者
#建立檔案夾
sudo mkdir /var/ftp/liuzhigong
#建立使用者
sudo useradd -d /var/ftp/liuzhigong -M liuzhigong
#設定密碼
sudo passwd ftpuser
#修改檔案夾權限及所有者
sudo chmod -R 755 /var/ftp/liuzhigong
sudo chown -R liuzhigong:ftp /var/ftp/liuzhigong
4) 修改pam.d/vsftpd
sudo vim /etc/pam.d/vsftpd
将auth required pam_shells.so注釋掉#auth required pam_shells.so
5) 重新開機vsftpd
sudo service vsftpd restart
常見錯誤彙總
問題:Entering Passive Mode, 伺服器發回了不可路由的位址。使用伺服器位址代替。
答案:一般是因為伺服器處于内網,PASV模式傳回的IP位址是内網位址
問題:vsftpd 500 illegal port command
答案:請确認上面配置的PASV端口段能正常通路