FTP服务器
主动模式和被动模式的区别
http://blog.csdn.net/liangrockman/article/details/5334021
Centos 不完整,待完成
yum install vsftpd -y
修改配置
# 配置详解:
http://blog.sina.com.cn/s/blog_946cb2b70100x4zc.html
http://blog.csdn.net/xdnabl/article/details/54881033
vim /etc/vsftpd/vsftpd.conf
#修改以下项目
anonymous_enable=NO #关闭匿名登录
chroot_local_user=YES #禁止跳出家目录
chroot_local_user=YES #允许本地用户登录(关闭的话只能用FTP创建的用户登录)
#指定根目录,任何本地用户登陆后都是此目录,要755权限,不然报553错误,没有写权限。
local_root=/web/www/
#anon_root=/web/www/ #匿名用户根目录
创建用户,用系统用户的换可以不用创建。
useradd -s /sbin/nologin -d /var/www/html(指定家目录) ftp_username
passwd ftp_username
chmod o+w /var/www/html(家目录)
# 如果是web的根目录,最好把要登录的用户也加入web用户组,不然就需要web目录有777权限。
usermod -g www user_name #-G会退出旧组,-g不会退出旧组
参考:http://blog.csdn.net/u013078295/article/details/52485434
要关闭selinux(修改配置文件要重启生效),现在立刻生效:setenforce 0
#Centos 6
service vsftpd restart
chkconfig vsftpd on
#Centos 7
systemctl restart vsftpd
systemctl enable vsftpd
注意要开启防火墙的端口。如果是被动模式,要开1024以上的端口若干个,并且配置文件中指定
参考:
https://www.cnblogs.com/mikeguan/p/7118229.html
http://blog.csdn.net/yuanhangq220/article/details/52779745
http://blog.csdn.net/pigchan/article/details/4768717
Windows
在Windows上安装FTP可以在服务器里添加角色,或者下载第三方FTP服务端,注意设置时如果是被动模式要开启1024以上的端口若干个,路由开放这些端口。
防火墙放行了端口但是FTP还是无法连接,也设置了被动模式,在防火墙加上允许C:\Windows\System32\svchost.exe程序的所有连接就可以了。
常见问题、报错
无法登陆,先把家目录设置为/tmp,看能否登陆(不能登录可能是配置文件中没有指定其他端口:PassivePortRange 20000 30000,),能登陆就是权限问题;把目录改回来,然后修改家目录权限;还是登陆不了;可能是你设置的家目录是别的用户创建的文件,不属于你这个用户,这时你要修改用户组。在那个组加入你的ftp用户名。
usermod -a -G group_name user_name
pureftpd
安装脚本
# 脚本来源于lnmp.org;本人精简、整合并扩展
wget --no-check-certificate https://image.leolan.top/blog/181012/j3mCL5Ela1.tgz
tar zxvf j3mCL5Ela1.tgz
cd install_FTP
chmod +x pureftpd.sh
./pureftpd.sh
rm -f j3mCL5Ela1.tgz
目录权限问题
如果是oneinstack.com的一键环境安装的pureftp,要注意一下组权限的问题,cat /etc/passwd
文件,看看文件夹所属用户的组id;
然后修改FTP用户组和id为文件夹的用户组id,这样FTP用户才有权限访问;
# 修改以下两个文件的用户组ID和用户ID(不同系统,位置不同,可直接搜索文件名)
vim /usr/local/pureftpd/etc/pureftpd.passwd
vim /usr/local/pureftpd/etc/pureftpd.pdb
chown -R www:www /home/wwwroot #再次修改权限;有些文件用root修改后权限不统一,造成目录无法写入。
systemctl restart pureftpd
同时注意一下系统的ftp用户加入到www组中gpasswd -a ftp www
新增用户
# 刚安装好FTP后是没有用户的,新增用户有两种情况
# 1、建立独立的用户及组(麻烦一点,更安全)
groupadd ftpgroup
useradd ftpuser -g ftpgroup -d /home/ftp -s /sbin/nologin
# 2、使用Linux系统的账户作为FTP的登陆账户(方便,不够安全)
# 使用第一种方案要先执行1、再往下执行。
cd /usr/local/pureftpd/bin
./pure-pw useradd [系统用户名user1] -u ftpuser -g [用户组,可以新建或使用现有的] -d [网站目录:/var/www/site1]
# 输两次密码
# 添加完之後,让 pure-ftpd 建立虚拟用户数据
./pure-pw mkdb
# 重启
/etc/init.d/pureftpd restart
# 安全组或防火墙放行以下端口
20-21,20000-30000
# 删除、改密、认证等,看参考链接
参考:
http://www.webyang.net/Html/web/article_123.html
https://blog.csdn.net/cjf1002361126/article/details/78798353