1. 程式人生 > 實用技巧 >阿里雲 CentOS7中搭建FTP伺服器

阿里雲 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

CentOS7使用firewalld開啟關閉防火牆與埠