安裝vsftpd
使用rpm -qa | grep vsftpd
查看是否已安裝
使用yum install vsftpd
進(jìn)行安裝,一路y過(guò)去即可
將其加入開(kāi)機(jī)啟動(dòng)chkconfig vsftpd on
vsftpd配置
anonymous_enable=YES(NO)
是否允許匿名登錄
guest_enable=YES (NO)
若這個(gè)值設(shè)定為 YES 時(shí),那么任何非 anonymous 登入的賬號(hào),均會(huì)被假設(shè)成為 guest (訪客) ! 至于訪客在 vsftpd 當(dāng)中,預(yù)設(shè)會(huì)取得 ftp 這個(gè)使用者的相關(guān)權(quán)限。但可以透過(guò) guest_username 來(lái)修改。
guest_username=ftp
在 guest_enable=YES 時(shí)才會(huì)生效,指定訪客的身份而已。
虛擬用戶(hù)配置
vsftp是支持使用虛擬用戶(hù)登錄ftp的,即這個(gè)用戶(hù)只能使用ftp而不能通過(guò)命令行等其他方式登錄服務(wù)器。
首先需要安裝這個(gè)工具,
yum install db4 db4-utils
然后,創(chuàng)建保存用戶(hù)名和密碼的文件,這里我使用/etc/vsftpd/vuser_passwd
文件中輸入你要?jiǎng)?chuàng)建的虛擬用戶(hù)和密碼,一行用戶(hù)名一行密碼,比如這樣
test1
123456
test2
123456
這樣就創(chuàng)建了test1和test2兩個(gè)密碼均為123456的用戶(hù)
接著,用剛安裝的db4工具生成需要的認(rèn)證文件,命令如下
db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
隨后,編輯認(rèn)證文件/etc/pam.d/vsftpd,全部注釋掉原來(lái)語(yǔ)句,再增加以下兩句
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
更多具體的配置可以去這里查看
配置PASV模式
FTP服務(wù)程序一般會(huì)支持兩種不同的模式,一種是Port模式,一種是Passive模式(Pasv Mode)。
至于為什么要開(kāi)啟PSAV模式,這里引用一下百科的解釋
路由上有兩個(gè)ip一個(gè)是內(nèi)網(wǎng)ip(也就是你的網(wǎng)關(guān)地址)另外一個(gè)是外網(wǎng)IP,你所有LAN中的計(jì)算機(jī)都是共享這個(gè)218.63.1.5訪問(wèn)INTERNET的(中間通過(guò)了192.168.1.1這個(gè)網(wǎng)關(guān)),讓我們來(lái)看一個(gè)連接的詳細(xì)過(guò)程,以便您更進(jìn)一步了解為什么需要設(shè)置成為PASV mode 傳送:當(dāng)您通過(guò)下載工或使用瀏覽器下載影片的時(shí)候就開(kāi)始連接FTP服務(wù)器, 當(dāng)FTP服務(wù)收到你的連接請(qǐng)求后發(fā)送應(yīng)答信息給客戶(hù)并開(kāi)始等待用戶(hù)的認(rèn)證信息,-->認(rèn)證通過(guò)后開(kāi)始建立數(shù)據(jù)連接如果你不是設(shè)置成為pasv模式,那么客戶(hù)段(下載工具)會(huì)在本地計(jì)算機(jī)開(kāi)一個(gè)數(shù)據(jù)端口,然后發(fā)送一條“命令”給FTP服務(wù)段,(我已打開(kāi)了n端口你現(xiàn)在可以連接我),那么FTP服務(wù)器段就開(kāi)始連接你ip地址的N端口,(但是連接是失敗的) 因?yàn)槟闶峭ㄟ^(guò)192.168.1.1 這個(gè)網(wǎng)關(guān)(你的路由設(shè)備)訪問(wèn)internet的ftp服務(wù)段他實(shí)際上是同你的外網(wǎng)地址為218.63.1.5的路由設(shè)備連接,根本就連接不上你下載工具中打開(kāi)的端口,例如你使用的是 192.168.1.2 這個(gè)客戶(hù)機(jī),F(xiàn)TP服務(wù)段此時(shí)無(wú)法同你計(jì)算機(jī)(192.168.1.2)監(jiān)聽(tīng)端口N連接上,所以此時(shí)你會(huì)看到服務(wù)器反饋的錯(cuò)誤信息,提示你192.168.1.2打開(kāi)的端口無(wú)法連接之類(lèi)的, 信息此時(shí)你就需要把傳送模式設(shè)置成為PASV模式,而如果你使用的是PASV模式那么當(dāng)你ftp通過(guò)認(rèn)證后,客戶(hù)段首先向服務(wù)器發(fā)送一條PASV命令,服務(wù)段接受到命令后打開(kāi)一個(gè)端口并告訴客戶(hù)段“我已打開(kāi)了一個(gè)端口,你此時(shí)可以來(lái)連接了" 客戶(hù)段(下載工具)接受到信息后,就去連接服務(wù)段已經(jīng)打開(kāi)了的端口,從而完成數(shù)據(jù)連接,所有ftp下載的數(shù)據(jù)流都將通過(guò)這個(gè)端口傳送。
具體配置如下
打開(kāi)/etc/vsftpd/vsftpd.conf
,在末尾添加
pasv_enable=YES //開(kāi)啟PASV模式
pasv_min_port=0 //最小端口號(hào),0即任意
pasv_max_port=0 //最大端口號(hào),0即任意
其他
- 如果你使用的是云服務(wù)器,比如阿里云,因?yàn)関sftp需要使用21端口,所以需要在服務(wù)器安全組配置中開(kāi)啟21端口
-
如果遇到能夠成功登錄卻獲取不到目錄的情況,打開(kāi)
/etc/vsftpd/vsftpd.conf
添加pasv_address=你的服務(wù)器ip pasv_addr_resolve=yes
這兩行配置