linux 安装 ftp 实现文件共享
转载:http://blog.sina.com.cn/s/blog_165e646820102xe1q.html
参考:
1、http://www.cnblogs.com/mrcln/p/6179673.html
2、http://www.cnblogs.com/orzlin/p/5600529.html
3、linux下ftp配置文件详解:http://www.cnblogs.com/mrcln/p/6189665.html
1.切换到root用户
2.查看是否安装vsftp,我这个是已经安装的。
[root@localhost vsftpd]# rpm -qa |grep vsftpd vsftpd-3.0.2-11.el7_2.x86_64
3.如果没有发现,则安装。
yum install vsftpd* -y
4.启动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
设置自启:chkconfig vsftpd on
5.测试一下能否登录FTP了,先安装一个ftp客户端组件。
yum -y install ftp
尝试登录一下
ftp localhost
输入用户名ftp,密码随便(因为默认是允许匿名的)
登录成功,就代表ftp服务可用了。
但是,外网是访问不了的,所以还要继续配置。
6.取消匿名登录
vi /etc/vsftpd/vsftpd.conf
把第一行的 anonymous_enable=YES ,改为NO
重启
[root@localhost vsftpd]# /bin/systemctl restart vsftpd.service
7.创建一个组,用于存放ftp用户
groupadd ftpgroups
8.创建ftp用户,并加入ftpgroups组,/home/ftp是自己建的目录,不存在就自己创建一个
useradd -d /home/ftp/ftptest -g ftpgroups ftptest
设置密码
passwd ftptest
设置不允许用于用户登录
usermod -s /sbin/nologin ftptest
可以看到已经建好了
[root@localhost vsftpd]# ls /home/ftp ftpn ftptest
这时候重启一下vsftpd服务
/bin/systemctl restart vsftpd.service
登录一下看,可以登录了,但是发现也能访问上层目录,甚至根目录,这不是我们希望的,修改一下配置文件让其只能访问自身目录
vi /etc/vsftpd/vsftpd.conf
如下设置
chroot_local_user=YES chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list
另外,从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列项:
allow_writeable_chroot=YES
好了,这样就只能访问自身所属目录。
如果希望某个用户可以访问根目录,把用户名加入
/etc/vsftpd/chroot_list
不存在就创建这个文件,一行一个用户名。
如果还是登陆不了ftp,那很有可能是selinux的问题,这个东西把他关掉就行
vi /etc/selinux/config
SELINUX=enforcing 设置成SELINUX=disabled
重启一下服务器
reboot
重启完了别忘了把vsftpd服务打开,默认是自启的。
如果连接不上,很可能是防火墙阻止了,尝试关闭防火墙
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
如果出现远程文件夹无法显示的情况,请使用主动模式连接,在你的ftp工具上设置。
linux服务器修改ftp默认21端口方法
1、登录服务器,打开vsftp.conf文件
# vim /etc/vsftpd/vsftpd.conf
2、在文件末尾增加listen_port=8021
#remote_charset=CP1251 # # Enable this options if you have double "я" # #double_377=0 listen_port=8021
3、打开/etc/services文件
# vim /etc/services
4、找到ftp选项并将21修改成你设置的端口,本文为8021
# 21 is registered to ftp, but also used by fsp ftp 8021/tcp ftp 8021/udp fsp fspd
5、重启vsftp服务
# /etc/init.d/vsftpd restart
6、使用netstat -utlpn | grep vsftp命令查看设置的端口,确认是否成功
# netstat -utlpn | grep vsftp tcp 0 0 0.0.0.0:8021 0.0.0.0:* LISTEN 23619/vsftpd
注:实验需要修改端口号,关闭selinux ,实现ftp访问。