linux下的FTP安裝及調優
阿新 • • 發佈:2019-07-25
前言:
在之前交換平臺的開發中,FTP的各種操作算是核心功能點。
在FTP的開發中,遇到了不少坑。
如FTP需要設定被動模式,否則10M以上的包可能會上傳失敗。
如FTP需要設定囚牢模式,否則訪問的資料夾可能會調到根目錄去,不在配置的目錄中,可能導致訪問錯誤、許可權不夠等問題。
以下為正確的開啟方法,以後linux下安裝FTP,輕輕鬆鬆。
同事們找你優化FTP,也能得心應手。
1.1 FTP安裝
我的本機環境是centOs7.
可以使用uname -a檢視你的系統資訊
uname -a
得到如下資訊
>Linux localhost.localdomain 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Linux下我們選擇vsftp
yum install -y vsftpd
(非必要)FTP客戶端安裝,可以在伺服器上使用客戶端測試
yum install -y ftp
(非必要)FTP 工具
yum install -y lftp
重啟FTP
service vsftpd restart
自啟動
chkconfig vsftpd on
1.2 設定訪問模式
編輯配置檔案
vim /etc/vsftpd/vsftpd.conf
設定囚牢模式
#囚牢模式
chroot_local_user=YSE#是否將所有使用者限制在主目錄,YES為啟用 NO禁用.
> (該項預設值是NO,即在安裝vsftpd後不做配置的話,ftp使用者是可以向上切換到要目錄之外的)
注意事項:
在CentOS7下配置chroot_local_user=yes ,配置完成後發現無法訪問,遠端主機關閉連線。
解決方案如下:
方法1:加一條配置
vim /etc/vsftpd/vsftpd.conf
allow_writeable_chroot=YES
方法2、重新給許可權
chmod 755 /home/ftp_yaoshen
1.3 建立FTP 賬號
1、新增linux使用者
useradd -s /sbin/nologin ftp_yaoshen
2、重置密碼
passwd ftp_yaoshen
設定密碼yaomaomao
3、重啟FTP
service vsftpd restart
4、如果無許可權,可能是沒有賦予執行許可權,
cd /etc/init.d
chmod +x vsftpd
賦權成功後再次執行。
5、用/sbin/nologin 方式新增使用者,centos7下可能會登陸不上,解決方案:
usermod -s /bin/bash ftp_coperate
1.4 FTP引數調優
編輯配置檔案
vi /etc/vsfptd/vsfptd.conf
在conf檔案中新增如下引數:
max_clients=10240 #最大連線數,不限制改為0
max_per_ip=1000 #單IP最大連線數,不限制改為0
需要重啟ftp
service vsftpd restart
注:有需要限制上傳速率的可以設定
anon_max_rate=50000 #限制匿名使用者50KB
local_max_rate=200000 #限制本地使用者200KB
1.5 FTP客戶端訪問調優
1.5.1 JAVA客戶端
引用API org.apache.commons.net.ftp.FTPClient
//設定被動模式(FTP客戶端上傳、下載容易失敗)
ftpClient.enterLocalPassiveMode();
// 在操作FTP檔案時,改變到檔案當前目錄
ftpClient.changeWorkingDirectory(new String(remoteFolder.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING));
我的公眾號: