ftp:文件传输协议(ftp,File Transfer Protocol),能够让用户在互联网中上传、下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要完成文件传输需要FTP服务端和FTP客户端的配合才行。
通常用户使用FTP客户端软件向FTP服务器发起连接并发送FTP指令,服务器收到用户指令后将执行结果返回客户端。
FTP协议占用两个端口号:
21端口:命令控制,用于接收客户端执行的FTP命令。
20端口:数据传输,用户上传、下载文件数据。
FTP传输模式:
主动模式:FTP服务端主动向FTP客户端发起连接请求。
被动模式:FTP服务端等待FTP客户端的连接请求。
linux中FTP之vsftpd服务程序:
Vsftp(very secure ftp daemon)是一款运行在类unix操作系统的FTP服务端程序,Vsftp主打的是安全性、完全开源及免费、速率高、虚拟用户。
安装vsftpd
开启防火墙firewalld中vsftpd端口:
1、打开20端口:firewall-cmd --zone=public --add-port=20/tcp --permanent(--permanent表示永久生效,没有此参数重启后失效)
2、打开21端口:firewall-cmd --zone=public --add-port=21/tcp --permanent(--permanent表示永久生效,没有此参数重启后失效)
3、重新加载firewall,修改配置后,必须重新加载才能生效:firewall-cmd --reload
Vsftpd的程序与配置文件
| 主程序 | /usr/sbin/vsftpd |
| 用户禁止登录列表 |
/etc/vsftpd/ftpusers /etc/vsftpd/user_list |
| 主配置文件 | /etc/vsftpd/vsftpd.conf |
先来分析下vsftpd程序的主配置文件:
cat /etc/vsftpd/vsftpd.conf
what???!!!打开后乱码
乱码问题太难解决了,先写这里!!!解决了再写
额!
额!
居然过滤了#掉的文件就可以解决乱码了!!!
备份vsftpd的主配置文件:
[[email protected] ~]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
过滤掉所有包含#号的行,并将过滤结果写回到vsftpd.conf文件中:
[[email protected] ~]# grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf
Vsftpd程序配置文件参数作用:
| 参数 | 作用 |
| listen=yes/no | 是否以独立运行的方式监听服务 |
| listen_address=IP地址 | 设置要监听的IP地址 |
| listen_port=21 | 设置FTP服务的监听端口 |
| download_enable=yes/no | 是否允许下载文件 |
|
userlist_enable=yes/no userlist_deny=yes/no |
是否启用禁止登录用户名单 |
| max_client=0 | 最大客户端连接数,0为不限制 |
|
max_per_ip =0 |
同一IP地址最大连接数,0为不限制 |
| anonymous_enable=yes/no | 是否允许匿名用户访问 |
| anon_update_enable=yes/no | 是否允许匿名用户上传文件 |
| anon_umask=022 | 匿名用户上传的umask值 |
| anon_root=/var/ftp | 匿名用户的FTP根目录 |
| anon_mkdir_write_enable=yes/no | 是否允许匿名用户创建目录 |
| anon_other_write_enable=yes/no | 是否开放匿名用户其他写入权限 |
| anon_max_rate=0 | 匿名用户最大传输速率(字节),0为不限制 |
| local_enable=yes/no | 是否允许本地用户登录FTP |
| local_umask=022 | 本地用户上传文件的umask指 |
| local_root=/var/ftp | 本地用户的FTP根目录 |
| chroot_local_user=yes/no | 是否将用户权限禁锢在FTP目录,更加的安全 |
| local_max_rate=0 | 本地用户最大传输速率(字节),0为不限制 |