最近,博主應組內學習(搬磚)需要,為組內伺服器搭建了 ftp 服務,踩坑較多。因此,博主撰寫此部落格,希望對大家有所幫助。
ftp(file transfer protocol)是一種檔案傳輸協議,基於客戶端/伺服器架構,支援以下兩種工作模式:
主動模式:客戶端向ftp伺服器傳送埠資訊,由伺服器主動連線該埠。
被動模式:ftp伺服器開啟並傳送埠資訊給客戶端,由客戶端連線該埠,伺服器被動接受連線。
ftp支援以下三種認證模式:
本地使用者模式:通過linux系統本地賬號進行驗證的模式,相較於匿名使用者模式更安全。
虛擬使用者模式:ftp伺服器的專有使用者。虛擬使用者只能訪問linux系統為其提供的ftp服務,而不能訪問linux系統的其它資源,進一步增強了ftp伺服器的安全性。
經與組內開發人員研究,博主擬採用被動模式和本地使用者模式。
注意:以下操作都是在 root 使用者下進行。
安裝 vsftpd 服務;
安裝 vsftpd
yum install-y vsftpd
設定 ftp 服務開機自啟動;
systemctl enable vsftpd.service
啟動 ftp 服務;
systemctl start vsftpd.service
可使用如下命令,檢視 ftp 服務監聽埠
netstat -antup |
grep
ftp
配置 vsftpd
配置本地使用者訪問 ftp 伺服器
adduser ftptest
設定密碼
passwd ftptest
建立供 ftp 服務使用的目錄
mkdir /var/ftp/test
更改目錄所有者為 ftptest
chown -r ftptest:ftptest /var/ftp/test
修改 vsftpd.conf 配置檔案(路徑/etc/vsftpd/vsftpd.conf
)
配置引數
#除下面提及的引數外,其他引數保持預設值即可。
#修改下列引數的值
anonymous_enable=no #禁止匿名登入ftp伺服器
local_enable=yes #允許本地使用者登入ftp伺服器
listen=yes #監聽ipv4 sockets
#在行首新增#注釋掉以下引數
#listen_ipv6=yes #關閉監聽ipv6 sockets
#新增下列引數
local_root=/var/ftp/test #設定本地使用者登入後所在目錄
chroot_local_user=yes #全部使用者被限制在主目錄
chroot_list_enable=yes #啟用例外使用者名單
chroot_list_file=/etc/vsftpd/chroot_list #指定例外使用者列表檔案,列表中使用者不被鎖定在主目錄
allow_writeable_chroot=yes
pasv_enable=yes #開啟被動模式
pasv_address=#設定被動模式下,建立資料傳輸可使用的埠範圍的最小值
pasv_max_port=#設定被動模式下,建立資料傳輸可使用的埠範圍的最大值
建立chroot_list檔案,並在檔案中寫入例外使用者名單(可為空,但是必須存在);
重啟 vsftpd 服務。
systemctl restart vsftpd.service
使用chrome
等瀏覽器輸入ftp://ip:port
,並在彈出的視窗中填入使用者名稱和密碼等資訊,即可訪問伺服器上的檔案;
使用filezilla
等客戶端。
在測試 ftp 時可能會遇見 553, 445 等問題,可參考部落格 vsftp報錯425 和 ftp部署和使用。
參考鏈結
手動搭建ftp站點(centos 7)
搭建FTP伺服器
ftp 是僅基於 tcp 的服務,不支援 udp。與眾不同的是 ftp 使用兩個埠,乙個資料埠和乙個命令埠,也可叫做控制埠。通常來說這兩個埠是 21 命令埠 和 20 資料埠 由於 ftp 工作方式的不同,資料埠並不總是 20,分為 主動 ftp 和被動 ftp。1.主動 ftp 主動方式的 ftp...
ftp伺服器搭建
1.檢查是否已安裝vsftpd伺服器 rpm qa grep vsftpd 若未安裝則執行 yum install vsftpd y 2.設定開機自啟動 chkconfig vsftpd on1.執行cd etc vsftpd 用vi開啟vsftpd.conf 配置檔案 2.找到chroot lis...
搭建FTP伺服器
初次搭建ftp的過程中經過多次嘗試,總結了乙個較為簡單的ftp搭建步驟 1.首先購買乙個伺服器,個人使用的是阿里雲的ecs雲伺服器,系統選64位的centos7.2版本 阿里雲官網 2.安裝vsftp yum install vsftpd 遇到問號直接按回車 看到complete!表示已安裝完成 設...