CentOS7 搭建FTP服务器
说明:本文是参考了 CSDN的博主:xiaocia 的文章《 CentOS7 搭建FTP服务器》进行亲手操作验证可行的。但是有一个不足之处就是:
linux系统重启后,ftp就无法访问呢了。我对此也提供了修正方法,具体请查看本文第七节
软件环境: + CentOS7a明:我的环境安装时CentOS最小化安装,所有很多工具和软件都是没有默认安装的
一:安装FTP软件包
1 :安装软件包: yum install vsftpd -y
2:安装完后,有/etc/vsftpd/vsftpd.conf文件,该文件是vsftp的配置文件。
二:专门新建一个FTP服务器的用户
1:建立用户:
命令:useradd ftpuser 新增一个用户ftpuser
passwd ftpuser 为ftpuser设定密码,期间会有两次提示输入密码确认。
三:为FTP服务器设置防火墙
ftp默认端口是21,而centos默认是没有开启的,所以要修改iptables文件
vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT 最后:wq 保存
重启防火墙:service iptables restart
注意:会出现iptables.service文件不存在,由于Centos7默认是firewall作为防火墙,这里改为iptables防火墙
systemctl start firewalld.service #启动firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
[root@bogon ~]# setsebool -P allow_ftpd_full_access on
[root@bogon ~]# setsebool -P ftp_home_dir on
最后安装iptables防火墙
sudo yum install iptables-services
设置防火墙开机启动
sudo systemctl enable iptables
四、修改seliunx
注意:如果外网是可以访问上去了,可是发现没法返回目录(使用ftp的主动模式,被动模式还是无法访问),也上传不了,因为selinux作怪了。
setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on
执行上面命令,再返回的结果看到两行都是off,代表,没有开启外网的访问
会发现状态已经是on了
这样应该没问题了(如果,还是不行,看看是不是用了ftp客户端工具用了passive模式访问了,如提示Entering Passive mode,就代表是passive模式,默认是不行的,因为ftp passive模式被iptables挡住了,下面会讲怎么开启,如果懒得开的话,就看看你客户端ftp是否有port模式的选项,或者把passive模式的选项去掉。如果客户端还是不行,看看客户端上的主机的电脑是否开了防火墙,关吧)
五、关闭匿名访问
修改/etc/vsftpd/vsftpd.conf文件
vi /etc/vsftpd/vsftpd.conf
重启FTP服务:service vsftpd restart
六、开启被动模式
默认是开启的,但是要指定一个端口范围,打开vsftpd.conf文件,在后面加上
pasv_min_port=30000
pasv_max_port=30999
表示端口范围为30000~30999,这个可以随意改。改完重启一下vsftpd
由于指定这段端口范围,iptables也要相应的开启这个范围,所以像上面那样打开iptables文件。
也是在21上下面另起一行,更那行差不多,只是把21改为30000:30999,然后:wq保存,重启下iptables。这样就搞定了。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
修改前:
修改后:
-=======================================================================================================================================
修改 vsftpd 表示端口范围为30000~30999。改完重启一下
===============================================================================================================================================================================================================
ttp工具测试:因为ip 为 192.168.1.3 所以ftp的连接IP为此值
===========================================================
在linux下开启FTP服务
1. 首先服务器要安装ftp软件,查看是否已经安装ftp软件下:
#which vsftpd
如果看到有vsftpd的目录说明服务器已经安装了ftp软件
2. 查看ftp 服务器状态
#service vsftpd status
3. 启动ftp服务器
#service vsftpd start
4. 重启ftp服务器
#service vsftpd restart
5. 查看服务有没有启动
#netstat -an | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
如果看到以上信息,证明ftp服务已经开启。
6.如果需要开启root用户的ftp权限要修改以下两个文件
#vi /etc/vsftpd.ftpusers中注释掉root
#vi /etc/vsftpd.user_list中也注释掉root
然后重新启动ftp服务。
7. vsftpd 500 OOPS: cannot change directory
登陆报错:
C:\>ftp 192.168.0.101
Connected to 192.168.0.101.
220 (vsFTPd 2.0.5)
User (192.168.0.101:(none)): frank
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/frank
Login failed.
ftp> ls
500 OOPS: child died
Connection closed by remote host.
解决方法:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!
这是SELinux的设置命令,在不熟悉SELnux前,把SELinux关掉也可以的。
======================================================================================================================
处理方法1: 运行ntsysv命令,然后选择上ftp的服务,下次重启机器就会自动启动ftp服务了。<注:此次借鉴百度问答>
具体操作步骤如下:
1:如下图:输入 ntsysv ,再按下回车键
2:如下图,找到 ftp的服务,光标切换到ftp选项,按下空格使其处于选中状态,在用 tab 按钮 使其光标切换到 OK 键,敲下回车按钮即可。
3:重启linux系统:reboot ;等系统重启完毕后,再次用ftp工具链接测试通过
方法二:[root@localhost ~]# chkconfig vsftpd on <注:该方法我没有测试过。借鉴于:csdn:JAVA_DIRECTION>
学问:纸上得来终觉浅,绝知此事要躬行
为事:工欲善其事,必先利其器。
态度:道阻且长,行则将至;行而不辍,未来可期
.....................................................................
------- 桃之夭夭,灼灼其华。之子于归,宜其室家。 ---------------
------- 桃之夭夭,有蕡其实。之子于归,宜其家室。 ---------------
------- 桃之夭夭,其叶蓁蓁。之子于归,宜其家人。 ---------------
=====================================================================
* 博客文章部分截图及内容来自于学习的书本及相应培训课程以及网络其他博客,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。 * @author Alan -liu * @Email no008@foxmail.com
转载请标注出处! ✧*꧁一品堂.技术学习笔记꧂*✧. ---> https://www.cnblogs.com/ios9/