1. 程式人生 > >linux下的FTP安裝及調優

linux下的FTP安裝及調優

前言:

在之前交換平臺的開發中,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));   


我的公眾號: