1.安裝pureftp
創(chuàng)新互聯(lián)是專業(yè)的鎮(zhèn)沅網(wǎng)站建設(shè)公司,鎮(zhèn)沅接單;提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行鎮(zhèn)沅網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
#cd /usr/local/src/
#wget https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.42.tar.bz2
2.安裝pure-ftpd
#tar -jxvf pure-ftpd-1.0.42.tar.bz2
#cd pure-ftpd-1.0.42
#./configure --prefix=/usr/local/pure-ftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits --with-tls
#echo $?
#make
#make install
3.配置pure-ftpd
#cd configuration-file
#mkdir -pv /usr/local/pure-ftpd/etc
#cp pure-ftpd.conf /usr/local/pure-ftpd/etc/pure-ftpd.conf //配置文件
#cp pure-config.pl /usr/local/pure-ftpd/sbin/pure-config.pl //啟動(dòng)文件
#chmod 755 /usr/local/pure-ftpd/sbin/pure-config.pl //修改權(quán)限
在啟動(dòng)pure-ftpd之前需要修改配置文件pure-ftpd.conf,
配置文件內(nèi)容如下:
ChrootEveryone yes
BrokenClientsCompatibility no
MaxClientsNumber 50
MaxClientsCompatibility 50
Daemonize yes
MaxClientsPerIP 8
VerboseLog no
DisplayDotFiles yes
AnonymousOnly no
NoAnonymous no
SyslogFacility ftp
DontResolve yes
MaxIdleTime 15
PureDB /usr/local/pure-ftpd/etc/pureftpd.pdb
LimitRecursion 3136.8
AnonymousCanCreateDirs no
MaxLoad 4
AntiWarez yes
Umask 133:022
MinUID 100
AllowUserFXP no
AllowAnonymousFXP no
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
AutoRename no
AnonymousCantUpload no
PIDFile /usr/local/pure-ftpd/var/run/pure-ftpd.pid
MaxDiskUsage 99
CustomerProof yes
配置千萬不要弄錯(cuò)了,我之前自己打進(jìn)去的,所以出現(xiàn)一些錯(cuò)字,把pdb文件寫成了conf文件,所以一直連接不上,所以不要粗心哦
4.啟動(dòng)pure-ftpd
#cd /usr/local/pure-ftpd/
#./sbin/pure-config.pl ./etc/pure-ftpd.conf
啟動(dòng)成功會(huì)顯示下面信息:
Running: /usr/local/pure-ftpd/sbin/pure-ftpd -A -B -C8 -D -fftp -H -I15 -lpuredb:/usr/local/pure-ftpd/etc/pureftpd.conf -m4 -s -U133:022 -u100 -g/usr/local/pure-ftpd/var/run/pure-ftpd.pid -k99 -Z
重啟:killall pure-ftpd
/usr/local/pure-ftpd/sbin/pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf
也可以自己定義PATH環(huán)境變量,在/etc/profile.d/path.sh文件中定義:
[root@jinge ~]# pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf
Running: /usr/local/pure-ftpd/sbin/pure-ftpd -A -B -C8 -D -fftp -H -I15 -lpuredb:/usr/local/pure-ftpd/etc/pureftpd.conf -m4 -s -U133:022 -u100 -g/usr/local/pure-ftpd/var/run/pure-ftpd.pid -k99 -Z
5.建立賬號
pure-ftpd使用的賬號并非Linux系統(tǒng)賬號,而是虛擬賬號,因?yàn)檫@樣做比較安全
#mkdir /jin/www
#useradd www //創(chuàng)建用戶www
#chown -R www:www /jin/www/ //修改用戶屬主和屬組
#usr/local/pure-ftpd/bin/pure-pw useradd ftp_user1 -uwww -d /jin/www/
(添加用戶命令:pure-pw
登錄FTP的用戶:ftp_user1
-u指定的用戶為:系統(tǒng)用戶
-d后面的目錄為:ftp_user1賬戶的家目錄,ftp_user1只能訪問其家目錄/jin/www/)
#/usr/local/pure-ftpd/bin/pure-pw mkdb //創(chuàng)建用戶信息數(shù)據(jù)庫文件
#/usr/local/pure-ftpd/bin/pure-pw list //列出當(dāng)前的ftp賬號
#/usr/local/pure-ftpd/bin/pure-pw userdel ftp_user1 //刪除賬號
6.測試pure-ftpd
遠(yuǎn)程連接測試(用另一臺機(jī)器做測試):
服務(wù)端ip(本機(jī))為192.168.226.3
客戶端ip(遠(yuǎn)程)為192.168.226.5
在客戶端機(jī)器中,測試需要使用到的工具是:lftp
安裝lftp:yum install -y lftp
測試:lftp ftp_user1@192.168.226.3
查看日志:cat /var/log/messages
查看lftp中的命令:?
下載文件到當(dāng)前目錄:get 11.txt
在客戶端中創(chuàng)建文件,上傳到服務(wù)端中:
客戶端:
服務(wù)端:
問題1:
這時(shí)候如果登錄ftp會(huì)提示
421 Unable to read the indexed puredb file (or old format detected) - Try pure-pw mkdb
執(zhí)行
#/usr/local/pureftpd/bin/pure-pw mkdb
再登錄,一切正常。執(zhí)行這條命令是讓pureftpd根據(jù)/usr/loca/pureftpd/etc/pureftpd.passwd(這個(gè)文件是在執(zhí)行pure-pw useradd的時(shí)候自動(dòng)生成的)生成/usr/local/pureftpd/etc/pureftpd.pdb
到這里服務(wù)器已經(jīng)可以正常運(yùn)行了
再用pure-pw useradd添加另一個(gè)ftp帳號登錄,又提示“驗(yàn)證失敗”,重啟pureftpd也不行,郁悶了好一會(huì)后找到原因:
執(zhí)行pure-pw的命令后只是更改了pureftpd.passwd文件,必須執(zhí)行pure-pw mkdb重新生成pureftpd.pdb才生效。
我說在剛接手的服務(wù)器上添加帳號不行呢,就是因?yàn)闆]有執(zhí)行pure-pw mkdb
如果出現(xiàn)錯(cuò)誤,登錄不上,應(yīng)該先去查看一下日志文件,看是什么錯(cuò)誤: cat /var/log/messages
問題2:
我用兩臺虛擬機(jī)做實(shí)驗(yàn),
服務(wù)端:一臺搭建了pure-ftpd(192.168.226.4)服務(wù),
客戶端:另一臺沒有搭建(192.168.226.6)該服務(wù),
(1)在搭建了pure-ftpd服務(wù)的那臺虛擬機(jī)中,配置完配置文件后啟動(dòng)
(2)沒搭建pure-ftpd服務(wù)的那臺虛擬機(jī)用于連接,連接需要用到的工具為lftp,如果沒有yum安裝一下,在該臺虛擬機(jī)上連接,lftp ftp_user1@192.168.226.4
進(jìn)入之后,ls一下,一直說連接不上,那是什么問題呢?
故障檢查:
1.首先我在服務(wù)端中,查看cat /var/log/messages日志文件,看提示什么錯(cuò)誤,不知道是什么問題,該日志中沒有pure-ftpd的日志(后面才知道)
2.檢查日志文件無果之后,我就去檢查配置文件有沒有配置錯(cuò)誤,一個(gè)一個(gè)的檢查,不過我重點(diǎn)檢查的是.pdb文件有沒有生成,還有.pid文件有沒有生成
3.查看了配置文件之后,我就在命令行上輸入
cat /usr/local/pure-ftpd/etc/pureftpd.pdb 如果有,那就沒事
cat /usr/local/pure-ftpd/var/run/pure-ftpd.pid //回車之后說命令找不到,那么就是沒有這個(gè)文件啦,終于找到問題所在了,那么該如何去解決這個(gè)問題呢?
解決方法:我的方法就是直接創(chuàng)建/usr/local/pure-ftpd/var/run/pure-ftpd.pid
本來是沒有var目錄和run目錄的,所以你也要先創(chuàng)建目錄
4.重啟pure-ftpd服務(wù)
killall pure-ftpd //先殺死
/usr/local/pure-ftpd/sbin/pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf //啟動(dòng)
5.在客戶端上測試
測試發(fā)現(xiàn),還是有錯(cuò)
6.查看日志cat /var/log/messages
發(fā)現(xiàn)錯(cuò)誤之后,查看日志,之前是沒有pure-ftpd的日志的,因?yàn)闆]有生成pid文件,所以沒有日志。
現(xiàn)在查看日志,cat /var/log/messages,出來pure-ftpd的日志了,錯(cuò)誤信息如下:
Dec 25 17:38:58 localhost pure-ftpd: (?@?) [ERROR] Unable to start a standalone server: [Address already in use]
Dec 25 17:41:08 localhost kernel: eth0: link down
Dec 25 17:41:20 localhost kernel: eth0: link up
Dec 25 17:41:34 localhost kernel: eth0: link down
Dec 25 17:41:44 localhost kernel: eth0: link up
Dec 25 17:46:20 localhost kernel: eth0: link down
Dec 25 17:46:30 localhost kernel: eth0: link up
發(fā)現(xiàn)這些信息之后,就開始排查了,上網(wǎng)查沒查到,之后就自己去嘗試,它說eth0有問題,又說地址被占用,那么我想可能是網(wǎng)絡(luò)的問題,于是我就在服務(wù)端和客戶端各輸入ifconfig,得到如下信息:
服務(wù)端:
[root@localhost pure-ftpd]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:E4:CC:70
inet addr:192.168.226.4 Bcast:192.168.226.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fee4:cc70/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7030 errors:0 dropped:0 overruns:0 frame:0
TX packets:5759 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1163332 (1.1 MiB) TX bytes:1440044 (1.3 MiB)
Interrupt:19 Base address:0x2000
客戶端:
[root@localhost opt]# ifconfig
eth2 Link encap:Ethernet HWaddr 00:0C:29:7B:C6:51
inet addr:192.168.226.6 Bcast:192.168.226.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe7b:c651/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3488 errors:0 dropped:0 overruns:0 frame:0
TX packets:2810 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1079817 (1.0 MiB) TX bytes:363778 (355.2 KiB)
Interrupt:19 Base address:0x2000
發(fā)現(xiàn)問題所在了,客戶端這邊的網(wǎng)卡顯示的是eth2,那么和這個(gè)到底有沒有關(guān)系呢?
于是,我又再開了一臺虛擬機(jī),去連接服務(wù)端的pure-ftpd,果然是這個(gè)問題,在這臺虛擬機(jī)上顯示的網(wǎng)卡為eth0,所以,我覺得應(yīng)該是網(wǎng)卡不匹配的原因,到此問題解決啦。
新開那臺虛擬機(jī):
[root@jinge ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:A4:00:54
inet addr:192.168.226.3 Bcast:192.168.226.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fea4:54/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:39 errors:0 dropped:0 overruns:0 frame:0
TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5374 (5.2 KiB) TX bytes:6162 (6.0 KiB)
Interrupt:19 Base address:0x2000