linux——ftp(vsftpd)安装和配置

1.通过yum来安装vsftpd

[root@localhost ~]# yum  install  vsftpd

2.设置为开机启动

[root@localhost ~]# chkconfig vsftpd on

3.把下面几行注释去掉,让其配置生效:

vi /etc/vsftpd/vsftpd.conf 

local_enable=YES

write_enable=YES

local_umask=022

chroot_local_user=YES      #这行可能需自己写

pam_service_name=vsftpd

userlist_enable=YES

4.配置保存后重启vsftpd服务:

[root@localhost ~]# service vsftpd restart

添加用户及额外配置 
1.设置vsftp的帐号。

    [root@localhost ~]# useradd -d /home/htdocs -s /sbin/nologin 用户名

2.为添加的账号设置密码

[root@localhost ~]# passwd 用户名

根据提示操作

这样的话,基本的vsftpd服务配置好了。但是这样配置完成后客户端并不能连接上,主要应该是默认防火墙设置下,CentOS的防火墙是不开放ftp服务的,需要添加模块和开放21端口才能提供ftp访问。 
1.添加ip_conntrack_ftp 模块

[root@localhost ~]# vi /etc/sysconfig/iptables-config

添加下面一行

IPTABLES_MODULES="ip_conntrack_ftp"

2.打开21端口

[root@localhost ~]# vi /etc/sysconfig/iptables

添加

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

3.重启iptables使新的规则生效

[root@localhost ~]# service iptables restart

到此,应该是可以了,若软件测试连接过程中,在用户验证的时候出现了错误503,应该是selinux设置的问题:可以用下面的命令检查

[root@localhost ~]#getsebool -a |grep ftp

 

allow_ftpd_anon_write --> off

allow_ftpd_full_access --> off

allow_ftpd_use_cifs --> off

allow_ftpd_use_nfs --> off

allow_tftp_anon_write --> off

ftp_home_dir --> off

ftpd_connect_db --> off

ftpd_disable_trans --> off

ftpd_is_daemon --> on

httpd_enable_ftp_server --> off

这是selinux的问题,我们只要打开ftp_home_dir的值开启为on:,allow_ftpd_full_access也一同开启即可。

[root@localhost ~]#setsebool -P ftp_home_dir 1

[root@localhost ~]#setsebool -P allow_ftpd_full_access 1

到此,安装完毕。

启动/重启/关闭  

/sbin/service vsftpd start

/sbin/service vsftpd restart

/sbin/service vsftpd stop

 

ps -aux | grep ftpd

netstat -na | grep 21

 

ftp服务器设置防火墙

问题, 连接成功
错误:  无法打开传输通道。原因:由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
错误:  无法取得目录列表

先关闭ftp服务端   service vsftpd stop
解决办法

第一步编辑/etc/vsftpd/vsftpd.conf
添加两行
pasv_min_port=40000
pasv_max_port=40009

第二步添加防火墙设置(添加40000-40009端口开放

打开防火墙配置文件

vi  /etc/sysconfig/iptables

增加下面一行

-A INPUT -p tcp -m multiport --dport 40000:40009  -j ACCEPT

重启防火墙

service iptables restart

 

重启vsftpd /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf(没用过,不确定对不对)

 启动 service vsftpd start

被动和主动模式简介

Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。

Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到 Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接

你可能感兴趣的:(linux)