歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux下PureFtpd的基本安裝使用與超時問題解決

基本的安裝使用方法

首先安裝之前最好用netstat -ntl來查看ftp默認的21端口是不是已經被占用了,同時也可以用ps -ef 指令查看開啟了哪些服務,看一下有沒有類似sftp或者是vsftp的服務,如果開啟,用killall sftp指令把這個服務kill掉
1.下載pureftp,我下載的是pure-ftpd-1.0.30
指令:
復制代碼代碼如下: wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.30.tar.bz2
2.解壓:
復制代碼代碼如下:tar -xvjf pure-ftpd-1.0.30.tar.bz2
進入到解壓後目錄:
復制代碼代碼如下:cd pure-ftpd-1.0.30
3.編譯方式,推薦使用全部安裝:
復制代碼代碼如下:./configure –prefix=/usr/local/pure-ftpd/ –with-
language=simplified-chinese –with-everything
4.安裝:
復制代碼代碼如下:make && make check && make install
5.建立相應的安裝目錄:
復制代碼代碼如下:mkdir /usr/local/pure-ftpd/etc
6.把配置文件和主要執行文件拷到對應的文件夾下面:

復制代碼代碼如下:
cp configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/etc/
cp configuration-file/pure-config.pl /usr/local/pure-ftpd/sbin/
chmod 755 /usr/local/pure-ftpd/sbin/pure-config.pl

 
7.定制一下系統的環境變量:

復制代碼代碼如下:
cd /usr/local/bin/
ln -s /usr/local/pure-ftpd/bin/* .
ln -s /usr/local/pure-ftpd/sbin/* /usr/local/sbin/
ln -s /usr/local/pure-ftpd/man/man8/* /usr/local/share/man/man8/

8.啟動pureftp服務器:

復制代碼代碼如下:pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf
屏幕上一般顯示如下信息:
Running: /usr/local/pure-ftpd/sbin/pure-ftpd -A -b -B -C20 -d -e -fnone -H -I15 -L2000:8 -M -m4 -p45000:50000 -q1:10 -s -t200 -U133:022 -u100 -r -Oclf:/var/log/pureftpd.log -k99 -Z
此時可以用在命令行窗口下telnet ip地址 21的方式探測一下這個端口是不是通的
9.pureftp一般需要不用默認的root用戶進行操作,一般會另外創建用戶名和組,用虛擬用戶進行登錄
創建組:
復制代碼代碼如下:groupadd ftpgroup
創建用戶:
復制代碼代碼如下:useradd -g ftpgroup -d /dev/null -s /etc ftpuser
創建完成以後可以用cat /etc/passwd和cat /etc/group來查看組和用戶是否已經創建好了
10.添加ftp虛擬用戶

復制代碼代碼如下:ure-pw useradd test -u ftpuser -d /home/ftpusers/test
如果添加完成以後想要刪除可以使用pure-pw userdel test這條指令
想要修改密碼可以使用pure-pw passwd test這條指令
11.查看用戶信息

復制代碼代碼如下:pure-pw show test
12.生成數據庫文件

復制代碼代碼如下:pure-pw mkdb
13.一定要注意修改配置文件,因為很多配置文件數據庫的默認安裝位置並不是實際位置,這樣就會造成每次登
陸的時候都找不到密碼,ftp一直顯示passwd required,所以安裝好以後一定要修改配置文件,尤其是粉紅色的
部位,注意修改
打開配置文件:
復制代碼代碼如下:vi /usr/local/pure-ftpd/etc/pure-ftpd.conf
 
ChrootEveryone              yes         # 啟用chroot
BrokenClientsCompatibility  yes         # 兼容不同客戶端
Daemonize                   yes         # 後台運行
MaxClientsPerIP             20          # 每個ip最大連接數
VerboseLog                  yes         # 記錄日志
DisplayDotFiles             no          # 顯示隱藏文件
AnonymousOnly               no          # 只允許匿名用戶訪問
NoAnonymous                 yes         # 不允許匿名用戶連接
SyslogFacility              none        # 不將日志在syslog日志中顯示
DontResolve                 yes         # 不進行客戶端DNS解析
MaxIdleTime                 15          # 最大空閒時間
LimitRecursion              2000 8      # 浏覽限制,文件2000,目錄8層
AnonymousCanCreateDirs      no          # 匿名用戶可以創建目錄
MaxLoad                     4           # 超出負載後禁止下載
PassivePortRange          45000 50000   # 被動模式端口范圍
#AnonymousRatio                1 10     # 匿名用戶上傳/下載比率
UserRatio                 1 10          # 所有用戶上傳/下載比率
AntiWarez                   yes         # 禁止下載匿名用戶上傳但未經驗證的文件
#AnonymousBandwidth            200      # 匿名用戶帶寬限制(KB)
UserBandwidth               8           # 所有用戶最大帶寬(KB)
Umask                       133:022     # 創建文件/目錄默認掩碼
MinUID                      100         # 最大UID限制
AllowUserFXP                no          # 僅運行用戶進行FXP傳輸
AllowAnonymousFXP           no          # 對匿名用戶和非匿名用戶允許進行匿名 FXP 傳輸
ProhibitDotFilesWrite       no          # 不能刪除/寫入隱藏文件
ProhibitDotFilesRead        no          # 禁止讀取隱藏文件
AutoRename                  yes         # 有同名文件時自動重新命名
AnonymousCantUpload         yes         # 不允許匿名用戶上傳文件
AltLog                     clf:/var/log/pureftpd.log                # clf格式日志文件位置
PureDB                     /usr/local/pure-ftpd/etc/pureftpd.pdb        # 用戶數據庫文件
MaxDiskUsage               99           # 當磁盤使用量打到99%時禁止上傳
CreateHomeDir              yes          # 如果虛擬用戶的目錄不存在則自動創建
CustomerProof              yes          # 防止命令誤操作
 
PureDB                     /usr/local/pure-ftpd/etc/pureftpd.pdb這個地方一定要記得修改,不然會一直
登不上去,修改完成以後可以再次執行
14.重新生成數據庫文件
復制代碼代碼如下:pure-pw mkdb
15.先把之前的pureftp服務kill掉
復制代碼代碼如下: killall pure-ftpd
16.然後重新啟動
復制代碼代碼如下:/usr/local/pure-ftpd/sbin/pure-config.pl /usr/local/pure-ftpd/etc/pure-ftpd.conf
17.此時一般已經可以成功登錄,但是有可能還是無法上傳到服務器上去,此時一般是權限問題,
登錄到ftp的家目錄下
復制代碼代碼如下:cd /home/ftpusers/test
修改test文件夾下的文件權限
復制代碼代碼如下: chown ftpuser:ftpgroup wenjian1
再嘗試重新連接以後上傳。

連接超時問題解決紀實
問題
最近在服務器安裝了pureftpd提供給公司同事上傳文件用。在交付前使用FileZilla測試沒有問題,但是同事反映在Linux下ftp不能使用。
自己在Linux下測試了一下,一直卡在Entering Passive Mode,最後超時。
20151120105747371.png (401×112)

原因

而在windows下使用FileZilla測試並沒有問題。仔細看了下FileZilla的日志,發現有一行
20151120105807655.png (400×103)

想到pureftpd用的是雲主機,而雲主機的網卡只綁定有內網IP,外網IP應該是綁定在路由了。猜測ftp客戶端使用被動模式連接pureftpd的時候,pureftpd返回了一個內網IP。
通過wireshark抓包發現:
20151120105825199.png (548×127)

可以知道服務器的確返回了一個內網地址。
方法
那能不能強制pureftpd返回外網IP呢。通過查看pureftpd文檔,發現在pureftpd.conf加入:

復制代碼代碼如下:ForcePassiveIP 1.1.1.1
1.1.1.1為pureftpd外網ip。重啟之後問題解決。

Copyright © Linux教程網 All Rights Reserved