![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ftp
文章平均质量分 84
梦花火
服务端爱好者,个人博客地址http://justsolitude.com/
展开
-
ftp关键技术一:账户验证
title: ftp关键技术一:账户验证对于Linux端的ftp服务的而言,账户即为Linux端的用户。一般步骤是:以root用户权限启动ftp服务获取客户端的验证信息从系统获取用户名对应的加密后的密码对客户端发过来的密码进行对应的加密,并对比如何验证是否以root用户启动服务?我们可以通过getuid()函数获取当前程序运行的uid。一般root用户的uid =0。所以可以通过以下方式验证是否...原创 2018-05-18 17:10:34 · 842 阅读 · 0 评论 -
ftp关键技术二:nobody进程创建和使用(二)
本文将从以下几个方面具体阐述nobody进程的前世今生 如何给予nobody权限 nobody进程负责的任务以及实现 如何给予nobody权限先看看在系统中ftp服务器是如何工作的吧[root@VM_0_11_redhat ~]# ps -ef | grep miniftproot 6362 1 0 May13 ? 00:0...原创 2018-07-26 14:27:26 · 707 阅读 · 3 评论 -
ftp关键技术二:nobody进程创建和使用(一)
本文将从以下几个方面具体阐述nobody进程的前世今生 为什么需要nobody进程? 进程间通信的协议制定 为什么需要nobody进程(1)为什么要使用nobody进程和服务进程两个进程? 1.在PORT模式下,服务器会主动建立数据通道连接客户端,服务器可能就没有权限做这种事情,就需要nobody进程来帮忙。 Nobody进程会通过unix域协议(本机通信效率高) ...原创 2018-07-26 14:28:36 · 1803 阅读 · 0 评论 -
ftp关键技术四:空闲断开
首先提出一个问题,我们为什么需要空闲断开? 对于服务端而言,由于连接数和内存的限制,我们不可能对一个长时间处于不活跃的客户端,单独维护一个fd,一个进程/线程始终为其服务,fd单个进程上限默认值为1024,由于内存的限制,也不能无限制的分配出进程或者线程为其服务,这个时候我们就需要断开在规定时间内没有任何动作的客户端,腾出内存为其他客户端服务。第二个问题,我们要基于什么实现空闲断开呢?...原创 2018-07-26 14:29:20 · 1416 阅读 · 0 评论 -
ftp关键技术五:限制链接数
通常在一些网站中,为了防止恶意大量的访问和超大量访问导致内存占满,会对单个链接的连接数和总链接数做出一个限制。 以本FTP服务端为例,假设每个客户链接,我们都需要两个进程来处理它,假设了一个客户需要分配总共1M的栈内存出来,1000个链接,接近1G的内存就没有了。另一方面,如果单个ip大量链接服务端,会占用大量的带宽、内存和文件句柄,实际上每个用户(ip)只需要两三个链接就可以解决问题,所...原创 2018-07-26 14:30:33 · 3729 阅读 · 0 评论