linux的ftp伺服器是靠vsftpd,ftp有主動和被動兩種模式
**主動模式:**client和server建立連接配接後,client會給server一個端口,server主動去連接配接client,通過這個端口向client傳輸資料,問題:client防火牆原因,可能導緻server無法向client傳輸資料。
被動模式:為了解決主動模式下的連接配接問題,出現了被動模式(PASV),隻有client告訴server自己是被動模式時才啟用。原理:client與server建立連接配接,并告知server自己是被動模式,server會為其提供一個非特權端口,該端口來進行資料傳輸。
檔案上傳還需要給指定目錄給指定使用者指定權限(讀/寫/删權限)
指令(給abc目錄最高權限):
sudo chmod -R abc
伺服器在公網,在/etc/vsftpd.conf配置中 需要注意的是:
#ftp伺服器公網位址,被動模式下,如果不設定,将會指定該伺服器的區域網路位址,導緻資料傳輸失敗(主動模式下沒有這個問題)
pasv_address=
#寫入權限(vsftpd預設不開啟檔案上傳權限,需要手動開啟)
write_enable=YES
#設定用戶端通路端口區間,随機指定,這是最大值(用戶端與伺服器會在這個随機端口上傳輸資料)
pasv_max_port=
#設定用戶端通路端口區間,随機指定,這是最小值(用戶端與伺服器會在這個随機端口上傳輸資料)
pasv_min_port=
#若是不使用21端口建立連接配接,加上此配置,配置vsftpd占用的端口
listen_port=
修改端口(第二步):
若是不用21端口,除了在vsftpd.conf中設定listen_port外還需要在/etc/services中 修改ftp和fsp(8021是我設定的vsftpd端口)
ftp /tcp
fsp /udp fspd
下面是vsftpd的安裝及啟動:
在Linux中ftp伺服器的全名叫 vsftpd,我們需要利用相關指令來開啟安裝ftp伺服器,然後再在vsftpd.conf中進行相關配置,下面我來介紹在Ubuntu中vsftpd安裝與配置增加使用者的方法。
(1)、首先用指令檢查是否安裝了vsftpd
vsftpd -version
如果未安裝用一下指令安裝
sudo apt-get install vsftpd
安裝完成後,再次輸入vsftpd -version指令檢視是否安裝成功
(2)、建立一個檔案夾用于FTP的工作目錄
mkdir /home/ftp
(3)、建立FTP使用者并設定密碼以及工作目錄
ftpname為你為該ftp建立的使用者名
sudo useradd -d /home/ftp -s /bin/bash ftpname
為建立的使用者設定密碼
passwd ftpname
【注釋:用cat etc/passwd可以檢視目前系統使用者】
(4)、修改vsftpd配置檔案
用指令打開vsftpd.conf
vi vsftpd.conf
設定屬性值
anonymous_enable=NO #禁止匿名通路
local_enable=YES
write_enable =YES
儲存傳回
(5)、啟動vsftpd服務
service vsftpd start
(6)、在資料總管,或者浏覽器中ftp伺服器 (ftp://address:port/)
輸入賬号,密碼登入即可