查看“FTP服务器的工作原理”的源代码
←
FTP服务器的工作原理
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==FTP服务== 文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层 根据服务的对象不同,可分为:'''匿名服务器与系统FTP服务器''' [[文件:linux8-1.png]] 两种连接方式: '''控制连接''' 控制连接主要用来传送在实际通信过程中需要执行的FTP命令以及命令的响应。 '''数据连接''' 数据连接是等到传输文件时才临时建立的 == FTP的工作体系 == '''服务器与客户机之间利用TCP的21号端口建立控制连接;利用20号端口建立数据连接'''; 具体工作过程如下: *客户机启动客户端程序,请求建立服务器的连接 *服务器对客户机进行身份验证 *进行相应目录操作和数据传输 *断开连接 == FTP的数据传输模式 == ===主动传输模式 (Active FTP)=== FTP的数据连接和控制连接的方向是相反的。 也就是说,当客户机发出请求之后,是服务器向客户端发起一个用于数据传输的连接。 '''在FTP主动模式中,服务器端从20端口发起数据连接请求''' ===被动传输模式 (Passive FTP)=== FTP的数据连接和控制连接的方向是一致的。 也就是说,当客户机发出请求之后,是客户端向服务器发起一个用于数据传输的连接。 被动模式的FTP通常用在处于防火墙之后的FTP客户访问外界FTP服务器的情况。 == FTP服务的使用者 == 本地用户(real用户) 本地用户既可以登录Shell,又可以FTP登录。 本地用户可以通过输入自己的账号和口令来进行授权登录。 当授权访问的本地用户登录系统后,其登录目录为用户自己的家目录($HOME)。 虚拟用户(guest用户) <nowiki>如果用户在远程FTP服务器上拥有账号, 且此账号只能用于文件传输服务,则称此用户为虚拟用户或Guest用户。 虚拟用户可以通过输入自己的账号和口令来进行授权登录。 当授权访问的虚拟用户登录系统后,其登录目录为服务器为其指定的目录。 eg:adduser -s /sbin/nologin -g ftp username</nowiki> 匿名用户(anonymous用户) <nowiki>如果用户在远程FTP服务器上没有账号,则称此用户为匿名用户。 若FTP服务器提供匿名访问功能,则匿名用户可以通过输入账号(anonmous或ftp) 和口令(用户自己的E-Mail地址)来进行登录。 当匿名用户登录系统后,其登录目录为匿名FTP服务器的根目录(/var/ftp)。</nowiki> == Linux下常见的FTP软件 == === Vsftpd === Red Hat 中自带了一个高安全性的FTP服务器 === Proftp === 一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序,它是在自由软件基金会的版权声明(GPL)下开发、发布的免费软件 === Wu-ftp === WashingtonUniversity FTP,它是一个著名的FTP服务器软件,它功能强大,能够很好地运行于众多的UNIX操作系统 参考文档: https://www.aliyun.com/zixun/content/2_6_518621.html == vsftpd的配置文件 == vsftpd的主配置文件 /etc/vsftpd/vsftpd.conf vsftpd的PAM配置文件 /etc/pam.d/vsftpd(用户身份验证配置文件) vsftpd的用户访问控制配置文件 /etc/vsftpd.ftpusers 指定哪些用户不能访问FTP服务器 /etc/vsftpd.user_list 文件中指定的用户是否可以访问ftp服务器由vsftpd.conf文件中的userlist_deny的取值来决定。 /etc/vsftpd.ftpusers 设置不允许登录的用户名单 注:'''/etc/hosts.deny文件用于指定不能访问ftp服务器的用户列表''' === 主配置文件 /etc/vsftpd/vsftpd.conf === <nowiki>#vi /etc/vsftpd/vsftpd.conf 功能:设置FTP服务器相关选项 文件格式: #说明语句 …… 配置选项 ……</nowiki> 默认配置: <nowiki>anonymous_enable=YES //允许匿名用户登录 local_enable= YES //允许本地用户登录 write_enable= YES //全局写设置 guest_enable=yes/no //是否允许虚拟用户登录; 注:虚拟用户只能登录FTP服务器 local_mask=022 //设置本地用户的文件生成掩码为 022,默认值为077 dirmessage_enable= YES //设置切换到目录时显示.message 隐含文件的内容 xferlog_enable= YES //激活上传和下载日志 connect_from_port_20= YES //启用FTP数据端口连接 pam_service_name=vsftpd //设置PAM认证服务的配置文件名称, 该文件存放在/etc/pam.d目录下 userlist_enable= YES //决定vsftpd.user_list文件是否有效 userlist_deny= YES //拒绝vsftpd.user_list文件中的用户 访问服务器 listen= YES //是否使用独占启动方式 tcp_wrappers= YES //使用tcp_wrappers作为主机访问控制方式 关于被动模式的数据连接 pasv_enable=Yes/NO(默认值为yes,处于被动模式下) 设置用户登陆后所在目录 local_root=/var/ftp(设置本地用户登陆所在目录,默认为该用户的用户主目录) anon_root=/var/ftp(匿名用户登陆所在目录) </nowiki> 默认配置文件功能说明: <nowiki>1)允许匿名用户登录/var/ftp,但不能离开主目录 2)允许本地用户登录,且可离开主目录 3)匿名用户只能下载,不能上传 4)本地用户允许上传/下载 5)写在文件/etc/vsftpd.ftpusers中的本地用户禁止登录 6)服务器使用独占方式启动,且无限制连接数 </nowiki>
返回至
FTP服务器的工作原理
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息