阿里雲 CentOS7中搭建FTP伺服器
1配置
vsftpd-3.0.2-27.el7.x86_64
阿里雲 centos 7.0
2 ftp工作模式
2.1 ftp通道
ftp工作會啟動兩個通道:
控制通道,資料通道
在ftp協議中,控制連線均是由客戶端發起的,而資料連線有兩種模式:port模式(主動模式)和pasv(被動模式)
2.2 port模式
在客戶端需要接收資料時,ftp_client(大於1024的隨機埠)----port命令-----ftp_server(21)傳送port命令,這個port命令包含了客戶端是用什麼埠來接收資料(大於1024的隨機埠),在傳送資料時,ftp_server將通過自己的tcp 20埠和port中包含的埠建立新的連線來傳送資料。
2.3 pasv模式
傳送資料時,ftp_client---pasv命令---ftp_server(21)傳送pasv命令時,ftp_server自動開啟一個1024--5000之間的隨機埠並且通知ftp_client在這個埠上傳送資料,然後客戶端向指定的埠發出請求連線,建立一條資料鏈路進行資料傳輸。
3安裝vsftp
# rpm -qa vsftpd #檢查是否已安裝 # yum -y install vsftpd # chkconfig --level 35 vsftpd on #設定開機自啟動 # chkconfig --list|grep vsftpd #檢查開機是否是自動啟動
4 ftp檔案說明
# rpm -ql vsftpd /etc/logrotate.d/vsftpd #vsftpd的日誌檔案 /etc/pam.d/vsftpd #PAM認證檔案 /etc/rc.d/init.d/vsftpd #啟動指令碼 /etc/vsftpd #vsftpd的配置檔案存放目錄 /etc/vsftpd/ftpusers #禁止使用vsftpd的使用者列表檔案 /etc/vsftpd/user_list #禁止或允許使用vsftpd的使用者列表檔案 /etc/vsftpd/vsftpd.conf #ftp的主配置檔案/etc/vsftpd/vsftpd_conf_migrate.sh #vsftpd操作的一些變數和設定 /var/ftp #匿名使用者目錄 /var/ftp/pub 匿名使用者的下載目錄
5配置ftp
5.1 vsftpd.conf檔案引數說明
黃色部分為新增的,紅色為修改的 anonymous_enable=NO #是否開啟匿名登入 local_enable=YES #是否允許本地使用者登入 write_enable=YES #是否允許上傳 local_umask=022 #預設的umask碼 dirmessage_enable=YES #是否顯示目錄說明檔案 xferlog_enable=YES #是否記錄ftp傳輸過程 connect_from_port_20=YES #是否確定埠傳輸來自20 xferlog_std_format=YES #是否使用標準的ftp xferlog模式 chroot_list_enable=YES #是否將系統使用者限制在自己的home目錄下 chroot_list_file=/etc/vsftpd/chroot_list #列表不受限制的使用者 listen=YES #是否開啟監聽 pam_service_name=vsftpd #服務名稱 userlist_enable=YES tcp_wrappers=YES
5.2關閉selinux
# setenforce 0 # sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
6建立虛擬使用者
6.1建立一個使用者
建立使用者後修改使用者的shell為nologin,讓使用者不能登入系統,只能使用ftp之內的服務
# useradd -d /home/ftp/test -g ftp -s /sbin/nologin test # echo 123456|passwd --stdin test #設定密碼 echo “新密碼”|passwd --stdin 使用者名稱
6.2將使用者test新增到chroot_list中
# touch /etc/vsftpd/chroot_list
# echo test >>/etc/vsftpd/chroot_list
6.3啟動vsftp服務
法一:
# service vsftpd start
法二:
# /etc/init.d/vsftpd start listen=YES
若法一錯誤
啟用vsftpd,並設定其執行級別:
# chkconfig --level 35 vsftpd on # service vsftpd start
Vsftpd服務重啟、暫停命令
在使用Vsftp服務是經常需要啟動、停止、重啟vsftp服務,下面是這幾個操作使用的指令:
1、啟動Vsftpd服務其命令為: service vsftpd start 或 /etc/init.d/vsftpd start
2、停止Vsftpd服務的命令為:service vsftpd stop 或 /etc/init.d/vsftpd stop
3、重新啟動Vsftpd服務的命令為:service vsftpd restart 或 /etc/init.d/vsftpd restart
4、檢查Vsftpd服務的執行狀態:service vsftpd status
6.4登陸ftp方式
6.4.1資料夾登陸
在資料夾路徑框輸入:ftp://ip:port 按回車登陸(埠預設21,可以不輸入)
6.4.2瀏覽器登陸
瀏覽器裡輸入 輸入使用者名稱test和密碼123456進行測試
6.4.3 cmd命令列登陸
開啟windows cmd視窗輸入:ftp ip 按回車輸入使用者名稱和密碼登陸
6.4.4第三方客戶端登陸
比如xftp客戶端登陸
7其他引數說明
max_client=100 #vsftpd最大支援連結數100個ip
max_per=5 #每個ip能支援的5個連結
local_max_rate=81920 #限制傳輸速度
listen_address=ip #繫結某個ip到vsftpd,只允許該ip訪問
xferlog_file=/var/log/vsftpd.log #日誌存放位置
開放FTP埠的方法:
暫時開放 ftp 服務
firewall-cmd --add-service=ftp
永久開放 ftp 服務
firewall-cmd --add-service=ftp --permanent
永久關閉ftp服務
firewall-cmd --remove-service=ftp --permanent
重啟防火牆讓設定生效
systemctl restart firewalld
firewalld的基本使用--------
啟動: systemctl start firewalld
關閉: systemctl stop firewalld
檢視狀態: systemctl status firewalld
開機禁用 : systemctl disable firewalld
開機啟用 : systemctl enable firewalld