前言
在工作常常碰到项目上部署FTP的需求,公司系统用到FTP服务也很多,相对于一般服务来说FTP客户端和服务器在网络建立关系上比较的特殊,不管是windows中还是linux中部署,现场多多少少都会出现一些问题,对于这些常出现的问题,我这里做了一定的整理分析。主要问题集中在:FTP的部署搭建没有明确的文档规范,FTP主动被动原理不清楚,FTP网络端口映射不准确等问题上,综合以上问题,本文以Centos 7中的VSFTP为例,详细对其部署搭建,主被动之间的差别,网络间客户端和服务端连接关系,FTP主被之间端口映射逻辑等问题做一个知识梳理总结。
Vsftpd部署详解
手动部署Vsftp:
1.切换到root用户
2.yum安装vsftp
yum install vsftpd* -y
3.启动vsftpd服务,以及重启命令(centos7.0以上版本)
[root@localhost vsftpd]# /bin/systemctl start vsftpd.service
[root@localhost vsftpd]# /bin/systemctl restart vsftpd.service
低版本试一下这些命令:
/etc/init.d/vsftpd restart
启动ftp命令 #service vsftpd start 停止ftp命令 #service vsftpd stop 重启ftp命令 #service vsftpd restart
4.设置自启:chkconfig vsftpd on
5.测试一下能否登录FTP了,先安装一个ftp客户端组件。
yum -y install ftp
尝试登录一下
ftp localhost
输入用户名ftp,密码随便(因为默认是允许匿名的)
登录成功,就代表ftp服务可用了。
6.取消匿名登录把 anonymous_enable=YES ,改为NO,重启
sed -i “s/anonymous_enable=YES/anonymous_enable=NO/g” grep anonymous_enable=YES -rl /etc/vsftpd/vsftpd.conf
7.创建一个组,用于存放ftp用户
groupadd ftpgroups
8.创建ftp用户,并加入ftpgroups组,/home/ftp是自己建的目录,不存在就自己创建一个
useradd -d /home/ftp -g ftpgroups ftptest
9.设置密码
passwd ftptest
10.用户权限设cd 置
usermod -s /sbin/bash ftptest //用户ftptest恢复正常
usermod -d /home/ftp //更改用户ftp的主目录为/home 现场可以自定义
11.这个/home/ftp服务授予权限
chmod 777 /home/ftp
chown -R ftptest /home/ftp
12.配置vsftpd.config文件
sed -i “s/anonymous_enable=YES/anonymous_enable=NO/g” grep anonymous_enable=YES -rl /etc/vsftpd/vsftpd.conf
echo ‘chroot_local_use