vsftpd 是「very secure FTP daemon」的縮寫,是一款在Linux發行版中最受推崇的 FTP 服務器程序。特色是小巧輕快,安全易用。支持不少其餘的 FTP 服務器所不支持的特徵,好比:很是高的安全性需求、帶寬限制、良好的可伸縮性、可建立虛擬用戶、支持IPv六、速率高等。shell
更新 yum 源centos
yum -y update
檢查是否已安裝:安全
rpm -qa | grep vsftpd
若是無,則安裝:服務器
yum -y install vsftpd
若是有,則更新:session
yum -y update vsftpd
查看版本信息:app
vsftpd -v
vsftpd: version 3.0.2tcp
啓動 vsftpd 服務:ide
systemctl start vsftpd.service
設置開機啓動:工具
systemctl enable vsftpd.service
安裝 Berkeley DB,用於生成虛擬用戶數據 db 文件:(centos 7須要先安裝epel yum 源)post
yum -y install db4-utils
安裝 PAM,用於用戶認證:
yum -y install pam*
備份默認的配置文件:
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
從新建立配置文件:
vi /etc/vsftpd/vsftpd.conf
添加配置信息**(注意等號兩邊不能有空格)**:
anonymous_enable=NO local_enable=YES local_umask=022 #tcp_wrappers=NO reverse_lookup_enable=NO pam_service_name=vsftpd #userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd/user_list #chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list allow_writeable_chroot=YES #listen=YES listen_port=21 connect_from_port_20=YES pasv_enable=YES pasv_promiscuous=YES pasv_min_port=8000 pasv_max_port=8100 #accept_timeout=120 connect_timeout=120 data_connection_timeout=180 idle_session_timeout=600 local_max_rate=0 #dirmessage_enable=NO xferlog_enable=YES xferlog_file=/var/log/vsftpd.log #log_ftp_protocol=YES xferlog_std_format=YES #guest_enable=YES guest_username=root virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vuser_conf
注意:guest_username
通常填寫目錄全部者,通常爲 root 或者 www、ftp 等。
備份 user_list
(容許訪問 FTP 的用戶名單):
mv /etc/vsftpd/user_list /etc/vsftpd/user_list.bak
Shell
從新建立 user_list
文件並添加容許訪問的 FTP 用戶名(一行一個):
vi /etc/vsftpd/user_list
建立 chroot_list
文件:
touch /etc/vsftpd/chroot_list
若是有容許訪問上級目錄的用戶,在該文件中添加用戶名(一行一個)。
新建虛擬用戶獨立配置路徑文件夾:
mkdir /etc/vsftpd/vuser_conf
添加虛擬用戶獨立配置(文件名爲用戶名):
vi /etc/vsftpd/vuser_conf/test
寫入該用戶的獨立配置:
local_root=/home/wwwroot/www.xxx.com write_enable=YES download_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
注意: local_root
爲 FTP 用戶根目錄。
建立日誌文件:
touch /var/log/vsftpd.log
設置文件權限:
chown ftp:ftp /var/log/vsftpd.log
重啓 Vsftpd:
systemctl restart vsftpd.service
添加虛擬用戶認證文件:
vi /etc/vsftpd/vsftpd_vuser
在文件中添加虛擬用戶名和密碼,奇數行用戶名,偶數行密碼:
testtest123
生成虛擬用戶認證文件**(每次修改虛擬用戶密碼均需從新生成一次)**:
db_load -T -t hash -f /etc/vsftpd/vsftpd_vuser /etc/vsftpd/vsftpd_vuser.db
若是出現如下錯誤:
db_load: unexpected end of input data or key/data pair、db_load: odd number of key/data pairs
請在 /etc/vsftpd/vsftpd_vuser
最後添加一行空行,再嘗試生成用戶認證文件。
設置文件權限,只有 root 用戶能夠讀寫:
chmod 600 /etc/vsftpd/vsftpd_vuser.db
備份 vsftpd 的 PAM 認證文件:
mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
從新建立 PAM 文件:
vi /etc/pam.d/vsftpd
添加配置:
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_vuser account required pam_userdb.so db=/etc/vsftpd/vsftpd_vuser
64 位系統再在下面添加如下兩行
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vuser account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_vuser
查看 ftp 服務是否已經永久啓用:
firewall-cmd --permanent --query-service=ftp
若是沒有,則啓用 ftp 服務:
firewall-cmd --permanent --add-service=ftp
給 ftp 服務添加 vsftpd 命令傳輸端口和被動模式端口:
# 添加 vsftpd 命令傳輸端口 20/tcpfirewall-cmd --permanent --service=ftp --add-port=20/tcp# 添加上面設置的被動模式端口段 8000-8100/tcpfirewall-cmd --permanent --service=ftp --add-port=8000-8100/tcp、
查看下次重啓(防火牆從新加載、服務器重啓或者系統重啓)以後永久生效的服務:
firewall-cmd --permanent --list-service
查看下次重啓(防火牆從新加載、服務器重啓或者系統重啓)以後永久生效的 ftp 服務的信息:
firewall-cmd --permanent --info-service=ftp
ftp
ports: 21/tcp 20/tcp 8000-8100/tcp
protocols:
source-ports:
modules: ftp
destination:
從新加載防火牆規則:
firewall-cmd --reload
注意: 阿里雲主機須要在安全組規則中添加入方向的 20/tcp, 21/tcp, 8000-8100/tcp
端口。
推薦使用免費開源的全平臺支持的 FileZilla:FileZilla 官方下載
添加站點信息,常規配置便可:
主機:填寫主機 IP
端口:若是沒改過端口不需填寫
協議:FTP - 文件傳輸協議
加密:只使用普通的 FTP
登陸類型:正常
用戶:test
密碼:test123
高級配置:
默認本地目錄:選擇電腦上面須要和服務器上面傳輸文件的路徑
默認遠程目錄:通常狀況下是根目錄,就填寫 /
同步瀏覽:開啓後在兩邊界面切換目錄時會同步切換,只有一邊有的目錄會提示是否下載或上傳
比較瀏覽:會高亮顯示兩邊不一樣的文件或目錄,對齊顯示都有的文件或目錄