在CentOS上安装FTP服务器过程中遇到的问题

安装ftp服务器的全过程:
1、安装vsftpd组件
[[email protected] ~]# yum -y install vsftpd
安装完后,其中/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件。

2、添加一个ftp用户
[[email protected] ~]# useradd ftpuser
此用户就是用来登录ftp服务器用的。这样一个用户建完,可以用这个登录,记得用普通登录不要用匿名了。登录后默认的路径为/home/ftpuser.

3、给ftp用户添加密码
[[email protected] ~]# passwd ftpuser
输入两次密码后修改密码。

4、防火墙开启21端口
因为ftp默认的端口为21,而CentOS默认是没有开启的,所以要修改iptables文件
[[email protected] ~]# vim /etc/sysconfig/iptables
在一行上面有22 -j ACCEPT 下面另起一行输入跟那行差不多的,只是把22换成21,然后:wq保存。
还要运行下,重启iptables
[[email protected] ~]# service iptables restart

5、修改selinux
外网是可以访问上去了,可是发现没法返回目录(使用ftp的主动模式,被动模式还是无法访问),也上传不了,这是因为selinux在作怪。
修改selinux:
执行以下命令查看状态:
[[email protected] ~]# getsebool -a | grep ftp
allow_ftpd_anon_write –> off
allow_ftpd_full_access –> off
allow_ftpd_use_cifs –> off
allow_ftpd_use_nfs –> off
ftp_home_dir –> off
ftpd_connect_db –> off
ftpd_use_passive_mode –> off
httpd_enable_ftp_server –> off
tftp_anon_write –> off
执行上面命令,在返回的结果中看到两行都是off,这代表没有开启外网的访问。因此应开启外网的访问,如下:
[[email protected] ~]# setsebool -P allow_ftpd_full_access on
[[email protected] ~]# setsebool -P ftp_home_dir on

6、关闭匿名访问
修改/etc/vsftpd/vsftpd.conf文件:
在CentOS上安装FTP服务器过程中遇到的问题
重启ftp服务:
[[email protected] ~]# service vsftpd restart

7、开启被动模式
默认是开启的,但是要指定一个端口范围,打开vsftpd.conf文件,在后面加上
pasv_min_port=30000
pasv_max_port=30999
表示端口范围为30000~30999,这个可以随意改。改完重启一下vsftpd
由于指定这段端口范围,iptables也要相应的开启这个范围,所以像上面那样打开iptables文件。
也是在21上下面另起一行,更那行差不多,只是把21 改为30000:30999,然后:wq保存,重启下iptables。这样就搞定了。

8、设置开机启动vsftpd ftp服务
[[email protected] ~]# chkconfig vsftpd on

使用此方法可以顺利的安装ftp服务器。
当使用ftp客户端访问服务器上的某一资源时,或者是上传文件到服务器上时,那么服务器上的文件夹一定要设置相应的权限,不然有可能上传文件不到服务器上。
解决方法:进入需要修改权限的文件目录下,使用命令行chmod -R 777 相应的文件目录。
当使用java程序FTPClient访问ftp服务器上传文件时,如遇无法上传问题,有可能需要设置为被动模式的代码为:ftpClient.enterLocalPassiveMode();
除此之外,还有一种情况,手工使用ftp命令或工具上传成功,但使用程序则不行,有可能是操作系统防火墙阻止了程序的这种操作,可将防火墙关闭以验证是否此原因导致。