日期:2014-05-16  浏览次数:20833 次

21端口怎么被xinetd占用呢?
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1573/xinetd 
ftp服务器进程怎么没在运行?
但是又可以连上ftp呢?


------解决方案--------------------
xinetd是一个daemon程序,一大堆服务的管理程序。比如:telnet,ftp等。

每个服务一个守护进程,太浪费资源,所以就用xinetd统一监听端口。
客户端请求之后,xinetd进程就临时启动相应服务并把相应端口移交给相应服务,客户端断开之后,相应的服务进程结束,xinetd继续监听。

直接连上ftp,然后查看21端口是否变为了ftp服务程序。
------解决方案--------------------
一般在配置文件中可设,man 应该有详细说明
------解决方案--------------------
很简单,xinetd读取配置文件,替你监听所有的端口。

对于TCP,它创建socket,bind,listen,select。一旦accept就fork子进程,把socket dup2到0, 然后exec程序就可以了。
对于UDP,它创建socket,bind,select,一旦可读,就取消对此socket的select监听,fork子进程,socket dup2到0,然后exec程序, 等到程序退出后重新select该udp socket。

所以你可以看到xinetd进程怎么占了那么多端口,阿门。
------解决方案--------------------
探讨

很简单,xinetd读取配置文件,替你监听所有的端口。

对于TCP,它创建socket,bind,listen,select。一旦accept就fork子进程,把socket dup2到0, 然后exec程序就可以了。
对于UDP,它创建socket,bind,select,一旦可读,就取消对此socket的select监听,fork子进程,socket dup2到0,然后exec程序,……

------解决方案--------------------
探讨

引用:

很简单,xinetd读取配置文件,替你监听所有的端口。

对于TCP,它创建socket,bind,listen,select。一旦accept就fork子进程,把socket dup2到0, 然后exec程序就可以了。
对于UDP,它创建socket,bind,select,一旦可读,就取消对此socket的select监听,fork子进程,socket ……