06
2017
12

CentOS 7 安装配置VsFTP

查看是否安装
vsftpd -v

安装vsftp
yum -y install vsftpd

关闭阿里云防火墙
#停止
systemctl stop firewalld.service  
#禁止firewall开机启动
firewallsystemctl disable firewalld.service  

如果你不愿意关闭防火墙,需要防火墙添加FTP服务。
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
编辑配置文件
vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

#anon_upload_enable=YES

#anon_mkdir_write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

#chown_uploads=YES
#chown_username=whoever

#xferlog_file=/var/log/xferlog

xferlog_std_format=YES

#idle_session_timeout=600

#data_connection_timeout=120

#nopriv_user=ftpsecure

#async_abor_enable=YES

ascii_upload_enable=YES
ascii_download_enable=YES

#deny_email_enable=YES

#banned_email_file=/etc/vsftpd/banned_emails

#chroot_local_user=YES
chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

#ls_recurse_enable=YES

listen=YES

#listen_ipv6=YES

listen_port=21
allow_writeable_chroot=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
local_root=/home/ftp
tcp_wrappers=YES
use_localtime=YES
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=60000

  这里在阿里云ecs专用网络下要启用被动模式及安全组规则里例外端口范围,

  经典网络可主动模式, 被动模式下java 代码要添加参数 enterLocalPassiveMode()

               try {
			ftpClient.connect(FTPUtil.get_FTP_HOST_IP());
			ftpClient.login(FTPUtil.get_FTP_USER(), FTPUtil.get_FTP_PWD());

			BASE64Decoder decoder = new BASE64Decoder();  
			fis = new ByteArrayInputStream(decoder.decodeBuffer(base64));
			// 设置上传目录
			ftpClient.changeWorkingDirectory(getFilePath(filePath));
			
			//被动模式
			ftpClient.enterLocalPassiveMode();
			
			ftpClient.setBufferSize(1024*100);
			ftpClient.setControlEncoding("GBK");  //utf-8
			// 设置文件类型(二进制)
			ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
			ftpClient.storeFile(newFileName, fis);
		} catch (IOException e) {
			throw e;
		} finally {
			IOUtils.closeQuietly(fis);
			try {
				ftpClient.disconnect();
			} catch (IOException e) {
				throw e;
			}
		}

创建宿主用户

新建系统用户ftpuser,用户目录为/home/ftp, 用户登录终端设为/bin/false(即使之不能登录系统)

# 方法一
# 创建用户 itjava指定 `/home/ftp` 目录
useradd -g root -M -d /home/ftp -s /sbin/nologin itjava

# 设置用户 itjava的密码
passwd itjava

# 把 /home/ftp 的所有权给itjava.root
chown -R itjava.root /home/ftp

# 方法二
useradd itjava-d /home/ftp-s /bin/false
chown itjava:itjava /home/ftp-R 

# 如果虚拟用户的宿主用户为www,需要这样设置
# www目录是你应用的目录
chown www:www /home/www -R
在 /etc/ftp/ 目录文件chroot_list 和 user_list 加入 ftp用户名 itjava


  虚拟用户配置参考: http://blog.csdn.net/hanchao_h/article/details/72731996?locationNum=11&fps=1

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。