如何实现一个基于Linux环境的FTP系统。基于客户/服务器交互模式,采用TCP/IP通信协议

如何实现一个基于Linux环境的FTP系统。基于客户/服务器交互模式,采用TCP/IP通信协议,想实现一个支持远程文件传输的客户/服务器软件,支持文件上传和下载。想知道该... 如何实现一个基于Linux环境的FTP系统。基于客户/服务器交互模式,采用TCP/IP通信协议,想实现一个支持远程文件传输的客户/服务器软件,支持文件上传和下载。想知道该如何入手,是选用已有的FTP软件制作吗?没有头绪=_=想要一些制作思路,还有书籍推荐,谢谢~ 展开
 我来答
匿名用户
2014-02-12
展开全部
ftp服务器的配置
ftp 叫做文件传输协议 他已经有40年的历史了 它以明文的形式进行传输的
ftp的端口号是21
当端口号为21 时:是以命令控制. 发送命令来执行的
20时: 是数据控制 ,提供数据的下载上传
ftp的模式: 分为 主的模式 与控制模式
ftp数据的传输格式 accii 二进制
ftp的用户类型 :匿名用户:anonymous或ftp
本地用户:帐号名称、密码等信息保存在passwd、shadow文件中
虚拟用户:使用独立的账号/密码数据文件
常见的ftp服务器程序
iis serv-u wu-ftpd proftpd
vsftpd rery ecare ftp daemon 这几种是linux常用的
常见的ftp客户端程序
GuteFTP Flashftf leapFTP FILEzilla
gftp kufp
在linux中我们常用的一款ftp服务器软件就是vsftp 现在我们就介绍一下它的用法
vsftp的官方站点时
主程序在/usr/sbin/vsftpd
服务器名是vsftpd
如果你的l主机没有vsftpd这款软件 你可以到官方进行下载安装,安装的方法我们在这里不提了。linux人都知道
vsftpd的配置 其中vsftpd的主配置文件在 /usr/sbin/vsftpd
用户控制列表文件:
/etc/vsftpd/ftpusers 禁止登陆的ftp 用户列表
/etc/viftpd/user_list 仅提供一份ftp用户列表,是否禁止登陆取决于主配置文件中的设置
下面我们介绍一下构建基于虚拟用户的vsftpd服务器 它大体分为7部
1.建立虚拟FTP用户的帐号数据库文件
2.创建FTP根目录及虚拟用户映射的系统用户
3.建立支持虚拟用户的PAM认证文件
4.在vsftpd.conf文件中添加支持配置
5.为个别虚拟用户建立独立的配置文件
6.重新加载vsftpd配置
7.使用虚拟FTP账户访问测试

1:建立虚拟ftp用户的账号数据库文件
建立虚拟用户的账号名 密码列表
vim /etc/vsftpd/vusers.list
随便填写几组密码 定义可以访问的ftp账号
如:AA //账号
124 密码
BB
321
但是ftp并不认识这些虚拟账户密码 我们要用一款软件把它转换成,这款软件是db4-utils 如果你的机子没有。去网上下载安装一下,安装方法很简单
yum install –y db4-utils 安装完了,我们就可以用它了
db_load -T -t hash -f vusers.list vusers.db
更改文件的权限 chown 600 /etc/vsftpd/vusers.*

2 创建ftp 根目录及虚拟用户映射的系统用户
新建目录 mkdir /var/ftproot
创建用户 useradd –d /var/ftproot –s /sbin/nologin virtual
chmod 755 /var/ftproot./
3 建立支持虚拟用户的pam 认证文件
vim /etc/pam.d/vsftpd.vu
写入下面内容
#%PAM-1.0
auth requirel pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
4. 在vsftpd.conf文件中添加支持配置
[root@filesvr ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_umask=022
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
5.为个别虚拟用户建立独立的配置文件
在vsftpd.conf文件中添加用户配置目录支持
user_config_dir=/etc/vsftpd/vusers_dir
为用户mike、john建立独立的配置目录及文件
配置文件名与用户名同名
[root@filesvr ~]# mkdir /etc/vsftpd/vusers_dir/
[root@filesvr ~]# cd /etc/vsftpd/vusers_dir/
[root@filesvr vusers_dir]# touch mike
[root@filesvr vusers_dir]# vi john
anon_upload_enable=YES
anon_mkdir_write_enable=YES
6.重新加载vsftpd配置
service vsftpd reload
7.使用虚拟FTP账户访问测试

分别用mike、john用户登录FTP服务器进行下载、上传测试
mike用户可以登录,并可以浏览、下载文件,但无法上传
john用户可以登录,并可以浏览、下载文件,也可以上传
匿名用户或其他系统用户将不能登录
Storm代理
2023-06-05 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
宛莹2T
2014-02-12 · TA获得超过427个赞
知道小有建树答主
回答量:442
采纳率:0%
帮助的人:367万
展开全部
FTP服务器有现成的 vsftp 等等,如果只是文件上传下载没有必要重新造轮子。配置问题可以参看鸟哥linux私房书,或 vsftp 的帮助手册

如果是实现类似飞鸽传输、QQ等类似的私有传输软件,需要了解 socket 和 TCP/IP 相关知识。可以参考《UNIX高级环境编程》一类的书籍
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FoxTeam
2014-02-12 · TA获得超过122个赞
知道小有建树答主
回答量:475
采纳率:0%
帮助的人:244万
展开全部
安装vsftpd
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式