FTP服务器
     分类:环境搭建     有: 0 条评论

FTP服务器

     分类:环境搭建     有: 0 条评论

主动模式和被动模式的区别

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:WindowsSystem32svchost.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

(●゚ω゚●)