前言:
在以前交換平臺的開發中,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/Linuxlinux
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
方法二、從新給權限
chmod 755 /home/ftp_yaoshen
1.3 建立FTP 帳號
一、添加linux用戶
useradd -s /sbin/nologin ftp_yaoshen
二、重置密碼
passwd ftp_yaoshen
設置密碼yaomaomao
三、重啓FTP
service vsftpd restart
四、若是無權限,多是沒有賦予執行權限,
cd /etc/init.d
chmod +x vsftpd
賦權成功後再次執行。
五、用/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));
個人公衆號:
apache