xinetd超级守护进程的使用

xinetd(eXtended InterNET services daemon)

一、xinetd的功能介绍:

xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。它能提供以下特色:

* 支持对tcp、udp、RPC服务(但是当前对RPC的支持不够稳定)

* 基于时间段的访问控制

* 功能完备的log功能,即可以记录连接成功也可以记录连接失败的行为

* 能有效的防止DoS攻击(Denial of Services)

* 能限制同时运行的同一类型的服务器数目

* 能限制启动的所有服务器数目

* 能限制log文件大小

* 将某个服务绑定在特定的系统接口上,从而能实现只允许私有网络访问某项服务

* 能实现作为其他系统的代理。如果和ip伪装结合可以实现对内部私有网络的访问

它最大的缺点是对RPC支持的不稳定性,但是可以启动portmap,与xinetd共存来解决这个问题。

 

二、使用xinetd启动守护进程

原则上任何系统服务都可以使用xinetd,然 而最适合的应该是那些常用的网络服务,同时,这个服务的请求数目和频繁程度不会太高。像DNS和Apache就不适合采用这种方式,而像FTP、 Telnet、SSH等就适合使用xinetd模式,系统默认使用xinetd的服务可以分为如下几类。

① 标准Internet服务:telnet、ftp。

② 信息服务:finger、netstat、systat。

③ 邮件服务:imap、imaps、pop2、pop3、pops。

④ RPC服务:rquotad、rstatd、rusersd、sprayd、walld。

⑤ BSD服务:comsat、exec、login、ntalk、shell、talk。

⑥ 内部服务:chargen、daytime、echo、servers、services、time。

⑦ 安全服务:irc。

⑧ 其他服务:name、tftp、uucp。

具体 可以使用xinetd的服务在/etc/services文件中指出。

 

三、xinetd的主配置文件:/etc/xinetd.conf

 

   1.内容格式如下:

     注:那个 assign_op 主要有三种形式,分别如下:

 = : 表示后面的设定参数就是这样啦!
+= : 表示后面的设定为『在原来的设定集合中里头加入新的参数
-+ : 表示后面的设定为『在原来的参数集合中舍弃这里输入的参数!』
接下来,再来说一说那些 attribute 与 value ! 
2.xinetd共有45个属性,你可以通过man xinetd.conf获得英文原文,属性列表如表4-3所示。

表4-3  xinetd的属性列表

属性选项

功能描述

id

该属性被 用来唯一地指定一项服务。因为有些服务的区别仅仅在于使用不同的协议,因此需要使用该属性加以区别。默认情况下,id和 服务名相同。如echo同时支持dgram和stream服 务。设置id=echo_dgram和id=echo_stream来 分别唯一标志两个服务

type

 

可以是下 列一个或多个值。

 

RPC:RPC类 型的服务。

 

INTERNAL: 由xinetd自身提供的服务,如echo。

UNLISTED: 没有列在标准系统文件如/etc/rpc或/etc/service中 的服务

flags

 

可以是以下一个或多个选项的任意组合。

 

REUSE:设置TCP/IP socket可重用。也就是在该服务socket中设置SO_REUSEADDR标 志。当中断时重新启动xinetd。

INTERCEPT: 截获数据包进行访问检查,以确定是否来自于允许进行连接的位置。INTERNAL服务和多线程服务不可使用 该属性值。

续表 

属性选项

功能描述

flags

 

NORETRY:如果fork失 败,不重试。

 

IDONLY:只有在远程 端识别远程用户时才接受该连接(也就是远程系统必须运行ident服务器),该标记只适用于面向连接的服 务。若没有使用USERID记录选项,则该标记无效,log_on_success或log_on_failure属 性设置USERID值以使该值生效。仅用于多线程的流服务。

 

NAMEINARGS:允 许server_args属性中的第一个参数是进程的完全合 法路径,此时,server属性采用inetd的方式来指定 (此标签的作用是表明该服务采用tcpd的方式来处理,而不是tcp wrapper, 参见NOLIBWRAP标记)。

 

NODELAY:若 服务为tcp服务,并且NODELAY标 记被设置,则TCP_NODELAY标记将被设置。若服务不 是tcp服务,则该标记无效。

 

DISABLE:具有DISABLE标 记的服务表示被禁用。该标记将覆盖enable的指定,即如果你指定了“enable=foo”, 若foo具有DISABLE标记,那么foo仍 将被禁用。使用了该标记的服务不会被提醒。

KEEPALIVE:如果一个tcp服 务设置了KEEPALIVE标记,那么该服务的socket将 被设置SO_KEEPALIVE标记,对非TCP类型的服务 设置该标记无任何作用。

flags

 

NOLIBWRAP:禁用tcpwrap 库 来决定一个服务的请求访问控制。像xinetd,需要长时间 的运行(系统启动后一直运行),一直调用libwrap函数库是不可取的,这种类型的服务就需要设置该标 记,它们可以直接调用而无须调用libwrap函数库来控制访问请求(参见NAMEINARGS标 记)。

SENSOR: 该标记的作用是使用一个传感器(SENSOR)来代替当前的服务。使用该标记需要注意几个问题:其一,你应 当确认该服务是你不需要的或者是你不想提供该服务;其二,它不能觉察秘密的扫描动作;其三,它将觉察该服务指定端口的请求,并记录到作用于全局的no_access列 表中,这就使得请求过该服务的IP在deny_time指定 的时间过期之前一直都拒绝访问;其四,它还使得xinetd认为该服务的server属 性是INTERNAL;其五,如果使用了该标记的socket_type为stream的 服务设置,你需要设置wait为no

disable

可以设置为yes或no, 设置为yes将禁用一个服务,详见flags的disable标 签

socket_type

使用的TCP/IP socket类型,值可能为stream(TCP),dgram(UDP),raw和seqpacket(可 靠的有序数据包)

protocol

指定该服务使用的协议,其值必须是在/etc/protocols中 定义的。如果不指定,使用该项服务的默认协议

wait

这个属性 有两个可能的值。如果是yes,那么xinetd会启动对方 请求的进程,并停止处理该项服务的其他请求直到该进程终止,适合于单线程服务;如果是no,那xinetd会 为每个请求启动的一个进程,而不管先前启动的进程的状态,适合于多线程服务

user

设置服务进程的UID。 若xinetd的有效UID不是0, 该属性无效

group

设置 进程的GID。若xinetd的有效UID不 是0,该属性无效

instances

接受 一个大于或等于1的整数或UNLIMITED。设置可同时运 行的最大进程数。UNLIMITED意味着xinetd对该 数没有限制

nice

指定 进程的nice值。它决定了服务的优先级,参数值是某个数字,可以为负数

server

要激 活的进程,必须指定完整的路径

server_args

指定 传送给该进程的参数,但是不包括服务程序名

only_from

 

用空 格分开的允许访问服务的客户机列表。如果不为该属性指定一个值,就拒绝任何人访问这项服务。该属性支持所有操作符。访问控制表的语法如下:

 

a) 用数字表示的IP地址,格式为%d. %d. %d. %d。 如果最右边的一位是0,将被看作通配符。举例来说,10.35.1.0表 示10.35.1段内的任何地址都满足条件;如果地址是0.0.0.0, 则匹配所有的IP地址。

 

b) 分解列出的IP地址,格式为%d. %d. %d.{ %d. %d…}。当然,并不是一定要四个部分都列出,例如,%d. %d.{ %d. %d…},这样的格式也是可以的,然而,被分解列出的部分必须 在最后面,例如,%d.{ %d. %d…}.%d.%d, 这样的格式是不允许的。

c) 网络名。/etc/networks中的网络名。

续表 

属性选项

功能描述

only_from

 

d) 主机名或域名。当一个IP地址连接到xinetd上的时候, 它会对这个IP进行反向解析,得出相应的主机名,然后与指定的主机名进行比较,查看是否匹配。当然也可以使 用域名,道理是一样的。

e) 网络/子网。格式为IP Address/netmask, 例如,1.2.3.4/32

no_access

 

用空格分开的拒绝访问服务的客户机列表。该属性支持所有操作符,访问控制表的语法参见only_from。

Only_from和no_access决 定了一个远程连接能否访问某个服务。如果这两个属性都没有设置,那么任何人都可以请求该服务;如果都设置了,那么,最匹配的那个记录优先。例如,你在only_from中 设定了10.35.1.0可以访问,然后又在no_access中 设定10.35.1.10禁止访问,那么,10.35.1段 内除了10.35.1.10外的IP地址都可以访问

access_time

设置 服务的可用时段,也就是说,在哪一段时间里可以使用本服务。格式是hh:mm_hh:mm; 如08:00-18:00, 意味着从8AM到6PM可使用这项服务

log_type

 

指定 服务log的记录方式。

 

SYSLOG facility[level]:设置facility为daemon,auth,user或local0-7;level是 可选的,可用的level值为emerg,alert,crit,err,warning,notice,info,debug, 默认值为info。

file[soft[hard]]: 指定用file记录log,而不是syslog。 限度soft和hard用KB指 定(可选)。一旦达到soft限,xinetd就登记一条消 息。一旦达到hard限,xinetd就停 止登记使用该文件的所有服务。如果不指定hard限,它为soft加1%, 但默认时不超过20MB,默认soft限是5MB

log_on_success

 

指定 成功时登记的信息,默认时不登记任何信息。该属性支持所有操作符。可能的值有以下几种。

 

PID: 进程的PID。如果一个新进程没被分叉,PID设置为0。

 

HOST: 客户机IP地址。

 

USERID: 通过RFC1413调用捕获客户机用户的UID。只可用于多 线程的流服务。

 

EXIT: 登记进程终止的状态。

DURATION: 登记会话持续期

log_on_failure

 

指定 失败时登记的信息。总是登记表明错误性质的消息,默认时不登记任何信息。该属性支持所有操作符。可能的值是有以下几种。

 

ATTEMPT: 记录一次失败的尝试,所有其他值隐含为这个值。

 

HOST: 客户机IP地址。

 

USERID: 通过RFC1413调用捕获客户机用户的UID。只可用于多 线程的流服务。

RECORD: 记录附加的客户机信息,如本地用户、远程用户和终端的类型

rpc_version

指定RPC版 本号或服务号。版本号可以是一个单值或者一个范围,如2~3

rpc_number

如果RPC程 序号不在/etc/rpc中,就指定它

env

用空 格分开的VAR=VALUE表,其中VAR是一个shell环 境变量,VALUE是其设置值。这些设置在服务被激活时被追加到服务的环境变量中。这个属性支持=和+=操 作符

passenv

用空格分开的xinetd环 境中的环境变量表,该表在激活时传递给服务程序。如果设置的值为空就不传送任何变量(除了在env中指定的 变量)。该属性支持所有操作符

port

定义该项服务相关的端口号。如果该服务在/etc/services中 列出,它们必须匹配

redirect

该属性语法为redirect=Ipaddress port。它把tcp服务重定向到另一个系统。如果使用该属性,就忽略server属 性

bind

把一项服务绑定到一个特定界面。语法是bind=ipaddress/interface。 这意味着你的telnet服务可以监听一个本地的安全的端口,而不是一个外部的界面。或者,同一个端口在某 个网络界面上可以做某件事情,同时,在另一个界面上可以做完全不同的事情

interface

等同于bind

banner

无论该连接是否被允许,当 建立连接时就将该文件显示给客户机

banner_success

当连接授权通过时显示banner_success指 定的文件中包含的信息

续表 

属性选项

功能描述

banner_fail

当客 户端的请求违反控制规则时显示banner_fail指定的文件中包含的信息,以告 知用户他们正在试图请求不被允许的服务

per_source

参数值 可以为整数或者UNLIMITED关键字。它表示每一个IP地 址上最多可以建立的实例数目。本属性也可以定义在defaults部分

cps

用来 设定连接速率。它需要两个参数,第一个参数表示每秒可以处理的连接数,如果超过了这个连接数时,之后进入的 连接将被暂时停止处理;第二个参数表示停止处理多少秒后,继续处理先前暂停处理的连接

max_load

用一 个浮点数作为负载系数,当负载达到这个数目的时,该服务将停止处理后续的连接

groups

可以 设置为yes或no。如果设置为yes, 将允许对该服务起作用的组中包含的用户来访问,如果设置为no,将设置服务进程的GID。 如果xinetd的有效GID不是0, 则该属性无效。在BSD类的系统上,很多服务需要设置该属性为yes, 这个属性也可以设置在defaults部分

umask

设置 服务所继承的umask。参数值应该是一个八进制数字,该属 性也可以设置到defaults项中。xinetd自己的umask默 认是022,如果你没有设置umask属性,那么所有xinetd的子 进程的umask将都是022

enabled

其参 数值是一个服务名称的列表,表示该列表中的服务将被启用,其余的则不被启用。然而,如果某个服务设置使用了disable或 者DISABLE 标记(flag),即使该服务被设置在enabled列 表中,也不会被启用。参见disable属性和flags的DISABLE标 记

disabled

只可 用于defaults项,指定被关闭的服务列表,是用空格分开的、不可 用的服务列表来表示的。它和在/etc/xinetd.conf文件中注释掉该服务项 有相同的效果

include

使用 “include /etc/xinetd.d/service_name”这样的格式来引入一个文件。这 跟直接将引入文件的内容放到xinetd.conf中是不同的,因为那里默认已经有了include指 令。需要注意的是,其一,被引入文件的格式应该是跟xined.conf格式相同;其二,不可以在某个服务 的声明部分使用此指令,应当放在声明之外的地方

includedir

使用 “includedir /etc/xinetd.d”这样的格式引入一个目录作为xinetd配 置文件的存放目录。指定目录下除了文件名包括点号(.)或者以引号(“ ”) 结束的文件,都将视作xinetd的服务配置文件。跟include指 令一样,该指令也不可以放在服务的声明部分

rlimit_as

设置 服务的地址资源限制。参数值应该是以字节为单位的正整数或者UNLIMITED关 键字。由于libc malloc的实现机制,在Linux系 统上设置该属性比设置rlimit_rss、rlimit_data和rlimit_stack属 性更有效,这个资源限制的属性只可以在Linux系统上设置

rlimit_cpu

设置 服务最多可占用的CPU秒数。参数值应该是以秒为单位的正整 数或者UNLIMITED关键字

rlimit_data

设置 服务的最大数据量。参数值应该是以字节为单位的正整数或者UNLIMITED关 键字

rlimit_rss

设置 服务的最大常驻内存。参数值应该是以字节为单位的正整数或者UNLIMITED关 键字

rlimit_stack

设置 服务的最大堆栈大小。参数值应该是以字节为单位的正整数或者UNLIMITED关 键字

deny_time

设置 对于所有IP,所有服务的访问被禁用的时间长度。参数值可以是 以分钟为单位的正整数、FOREVER和NEVER。如果你 设置为FOREVER,在xinetd重启之前一直有效;NEVER只 对那些非法的IP地址有效;数字一般设置为60,设置为这个 数值基本就可以防范DoS攻击了。需要注意的是,这个标记必须与SENSOR标 记(flags)结合使用

3.基本属性

上 面的列表是xinetd可用的所有属性,然而,针对一个服务并不需要指定上面所有的属性,其实必需的属性只有几个,如表4-4所示。

表4-4  xinetd设定服务必需的属性

xinetd设定服务必需的属性

属    性

适用范围

socket_type

所有服务

user

Non_internal service only 非内部服务

server

Non_internal service only 非内部服务

wait

所有服务

protocol

不在/etc/services中 的所有RPC服务和所有其他服务

rpc_vision

所有RPC服 务

rpc_number

不列在/etc/rpc中 的任何RPC服务

port

不在/etc/services中 的非RPC服务

4.支持多操作符的属性

对 于大多数的服务而言,在针对一个服务的设定中操作符只能出现一次,并只支持=操作符,然而,下面的六个属性可以支持多个操作符,如表4-5所示。

表4-5  支持多操作符的属性

支持多操作符的属性

属    性

支持范围

only_from

支持所有 操作符

no_access

log_on_success

log_on_failure

passenv

env

不支持-=操 作符

5.默认属性

defaults项是实现为所有服务指定某些属性的默认值。这些默认值可被每个服务项取消或修改。表4-6列出可在defaults项中指定的属性。这个表也指明了具体服务项中可以修改哪些属性。

表4-6  可用的defaults属性

可用的defaults属 性

属    性

适用范围

log_on_success

可以用=操作符改写,或用+=或-=操 作符修改

log_on_failure

only_from

no_access

passenv

instances

可以用=操作符改写

log_type

disabled

注销掉的服务

enabled

指定启用的服务

6.disabled与enabled

前者的参数是禁用的服务列表,后者的参数是启用 的服务列表。他们的共同点是格式相同(属性名、服务名列表与服务中间用空格分开,例如disabled = in.tftpd in.rexecd),此外,它们都是作用于全局的。如果在disabled列表中被指定,那么无论包含在列表中的服务是否有配置文件和如何设置,都将被 禁用;如果enabled列表被指定,那么只有列表中的服务才可启动,如果enabled没有被指定,那么disabled指定的服务之外的所有服务都可 以启动。

7.注意问题

① 在重新配置的时候,下列的属性不能被改变:socket_type、wait、protocol、type;

② 如果only_from和no_access属性没有被指定(无论在服务项中直接指定还是通过默认项指定),那么对该服务的访问IP将没有限制;

③ 地址校验是针对IP地址而不是针对域名地址。

  

四、xinetd能有效地防止拒绝服务攻击 (Denial of Services)的原因如下:

    1.限制同时运行的进程数
    通过 设置instances选项设定同时运行的并发进程数:
    instances=20
    当服务器被 请求连接的进程数达到20个时,xinetd将停止接受多出部分的连接请求。直到请求连接数低于设定值为止。
    2.限制一个IP地址的最大连接数
    通过限制一个主机的最大连接数,从而防止某个主机独占某个服务。
    per_source=5
    这里每个IP地址的连接数是5个。
    3.限制日志文件大小,防止磁盘空间被填满
    许多 攻击者知道大多数服务需要写入日志。入侵者可以构造大量的错误信息并发送出来,服务器记录这些错误,可能就造成日志文件非常庞大,甚至会塞满硬盘。同时会 让管理员面对大量的日志,而不能发现入侵者真正的入侵途径。因此,限制日志文件大小是防范拒绝服务攻击的一个方法。
    log_type FILE.1 /var/log/myservice.log 8388608 15728640
    这里设置的 日志文件FILE.1临界值为8MB,到达此值时,syslog文件会出现告警,到达15MB,系统会停止所有使用这个日志系统的服务。
    4.限制负载
    xinetd 还可以使用限制负载的方法防范拒绝服务攻击。用一个浮点数作为负载系数,当负载达到这个数目的时候,该服务将暂停处理后续的连接。
    max_load = 2.8
    上面的设定 表示当一项系统负载达到2.8时,所有服务将暂时中止,直到系统负载下降到设定值以下。
    说明  要使用这个选项,编译时应加入“--with-loadavg”,xinetd将处理max-load配置选项,从而在系统负载过重时关闭某些服务进程, 来实现防范某些拒绝服务攻击。
    5.限制所有服务器数目(连接速 率)
    xinetd 可以使用cps选项设定连接速率,下面的例子:
    cps = 25 60
    上面的 设定表示服务器最多启动25个连接,如果达到这个数目将停止启动新服务60秒。在此期间不接受任何请求。
    6.限制对硬件资源的利用
    通 过rlimit_as和rlimit_cpu两个选项可以有效地限制一种服务对内 存、中央处理器的资源占用:
    rlimit_as = 8M
    rlimit_cpu=20
    上面的 设定表示对服务器硬件资源占用的限制,最多可用内存为8MB,CPU每秒处理20个进程。
    xinetd的一个重要功能是它能够控制从属服务可以利用的资源量,通过它的以上设置可以达到这 个目的,有助于防止某个xinetd服务占用大量资源,从而导致“拒绝服 务”情况的出现。

当 然上面的参数不需要每个都设定啦!只要设定需要的就可以啦!而在 /etc/xinetd.conf 这个文件中,一定会看到『 includedir = /etc/xinetd.d 』这一行!这说明的是,除了 /etc/xinetd.conf 之外,所有在 /etc/xinetd.d 的文件都是可以用来设定的啦!

五、用telnet来举例说明:

    /etc/xinetd.d/telnet,内容如下:

上面的表格中,已经说明了每一项参数的意义!如果原本的默认值你并不满意,那么你可以修改成比较安全与多一点机制。假设你这个 Linux 是一部主机,而且他有两块网络接口,分别是对外的 140.116.44.125 与对内的 192.168.0.254 这两个,如果你想要让对内的接口限制较松,而对外的限制较严格,你可以这样的来设定呢:

对内较为松散的限制设定:

对外较为严格的限制设定:

呵呵!如上面的设定,我们可以将 telnet 的启动项目进行更多的限制!如此一来,将有助于我们的安全防护呢!尤其如果可以针对不同的接口来设定,嘿嘿!就更加的棒啰!不过,请注意喔!如果照上面的设定,那么您的主机上面将会开了两个 23 port 的接口,分别是给两个接口来使用的呢!嗯!真好玩?同样的,你也可以针对自己的喜好来设定你的其它 daemon 使他挂在 xinetd 底下呢!

六、SENSOR + DENY_TIME的使用

使用rlogin和krb5-telnet来进行实验:

   1、yum install rsh-server -y

   2、yum install krb5-workstation -y

   3、对krb5-telnet进行配置:

service telnet

{
disable    = no  #将telnet服务设置为启用。如果disable = yes  表示禁用服务。
flags      = SENSOR  #设置为SENSOR,拒绝条件触发后,将在全局生效,即所有被xinetd托管的服务都有效
deny_time  = 2       #拒绝2分钟
no_access  = 192.168.0.3   #拒绝的IP范围
socket_type = stream
wait       = no
user       = root   #指定程序用什么身份来执行
server     = /usr/sbin/in.telnetd   #xinetd服务托管的程序,当被触发时就启动该程序来监听
access_times = 9:00-18:00    #允许访问的时间段为早上9点到下午6点
bind       = 192.168.0.100   #在指定的网络接口上监听 (在有多个网卡多个IP时,可以精确控制)
cps        = 25 30    #在同一时刻,有25个连接数,则暂停连接30秒
per_source = 15       #限制每个源IP最大只能有15个并发连接
}
具体讲讲一下三行:
flags      = SENSOR
deny_time  = 2
no_access  = 192.168.0.3
作用:禁止192.168.0.3的IP来使用telnet连接本机,如果他telnet连接了本机,那么被xinetd所管理的全部服务都禁止192.168.0.3来访问,禁止访问的时间为2分钟。SENSOR模式表示让xientd所管理的全部服务都生效改配置。

    4、进行测试:telnet 192.168.0.y;rlogin 192.168.0.y

七、向xinetd添加新服务

   例:添加一个TCP服务,开启26端口的服务程序wushank

     1、在/etc/services文件中添加服务和端口信息:

             wushank    26/tcp            #test

     2、在/etc/xinetd.d目录下生成服务文件,具体如下:  

      3、创建/bin/wushank脚本:

                #!/bin/bash
                date +%F" "%T
                echo "welcome to you"

      4、重启服务:service xinetd restart

      5、测试结果如下:

          

 

 

免责声明:
一切资料仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。资料来自网络,版权争议与本人无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我联系处理。

更===多===课程====请====加===v===信=== a518958666
   基于SpringCloud 微服务架构 广告系统设计与实现
   系统学习docker
   docker前后端分离实战
   Docker+Kubernetes(k8s)微服务容器化实战
   Go语言实战抽奖系统
   Go语言开发分布式任务调度 轻松搞定高性能Crontab
   20小时快速入门go语言
   Java从零到企业级电商项目实战
   SSM主流框架入门与综合项目实战
   Socket网络编程进阶与实战

 0. 基于Python玩转人工智能最火框架 TensorFlow应用实践
 1. webapp书城开发
 2. 组件方式开发 Web App全站
 3. 前端到后台ThinkPHP开发整站
 4. MySQL性能管理及架构设计
 5. 响应式开发一招致胜
 6. 掌握React Native技术转型随意切换
 7. Yii 2.0开发一个仿京东商城平台
 8. Python高效编程技巧实战
 9. 快速开发轻量级App
 10. 6小时 jQuery开发一个前端应用
 11. Android架构师之路 网络层架构设计与实战
 12. 程序猿的内功修炼,学好算法与数据结构
 13. Vue.js高仿饿了么外卖App 1.0到2.0版本完美升级
 14. Android 专项测试 Python篇
 15. 微信小程序入门与实战 常用组件API开发技巧项目实战
 16. Android 5.0+高级动画开发 矢量图动画 轨迹动画路径变换
 17. Android自动化测试实战 Java篇 主流工具 框架 脚本
 18. Python升级3.6 强力Django+杀手级Xadmin打造在线教育平台
 19. 高性能可扩展MySQL数据库设计及架构优化 电商项目
 20. 带领新手快速开发Android App
 21. Angular JS 仿拉勾网 WebApp 开发移动端单页应用
 22. 组件化封装思想实战Android App
 23. React.js入门基础与案例开发
 24. Yii 2.0进阶版 高级组件 优化京东平台
 25. 双平台真实开发GitHub App React Native技术全面掌握
 26. 玩转算法面试 leetcode题库分门别类详细解析
 27. Thinkphp 5.0 仿百度糯米开发多商家电商平台
 28. ThinkPHP5.0正式版第二季:实战开发企业站【完结】
 29. 最容易上手的Vue 2.0入门实战教程
 30. 聚焦Python分布式爬虫必学框架Scrapy 打造搜索引擎
 31. Angular 4.0从入门到实战 打造股票管理网站
 32. Java Spring带前后端开发完整电商平台
 33. Node.js项目线上服务器部署与发布
 34. Java大牛 带你从0到上线开发企业级电商项目
 35. ThinkPHP 5.0开发微信小程序商场打通全栈项目架构
 36. ES6零基础教学 解析彩票项目
 37. React高级实战 打造大众点评 WebApp
 38. BAT大咖助力 全面升级Android面试
 39. 全程MVP手把手 打造IM即时通讯Android APP
 40. 微信服务号+Yii 2.0构建商城系统全栈应用
 41. 机器学习入门 Scikit-learn实现经典小案例
 42. 腾讯大牛亲授 Web 前后端漏洞分析与防御技巧
 43. IT段子手详解MyBatis遇到Spring 秒学Java SSM开发大众点评 难度中级
 44. Vue 2.0 高级实战-开发移动端音乐 WebApp
 45. 全新升级 Kotlin系统入门与进阶
 46. 对接真实数据 从0开发前后端分离企业级上线项目
 47. Android应用发展趋势必备武器 热修复与插件化
 48. Laravel 快速开发简书
 49. 以慕课网日志分析为例 进入大数据 Spark SQL 的世界
 50. Get全栈技能点 Vue2.0/Node.js/MongoDB 打造商城系统
 51. Python操作三大主流数据库
 52. 前端JavaScript面试技巧
 53. Java SSM快速开发仿慕课网在线教育平台
 54. Android通用框架设计与完整电商APP开发
 55. Spring Boot企业微信点餐系统
 56. 开发微信全家桶项目 Vue/Node/MongoDB高级技术栈全覆盖
 57. Web自动化测试 Selenium基础到企业应用
 58. 高性能的 PHP API 接口开发
 59. 企业级刚需Nginx入门,全面掌握Nginx配置+快速搭建高可用架构
 60. Angular 打造企业级协作平台
 61. Python Flask 构建微电影视频网站
 62. Spring Boot带前后端 渐进式开发企业级博客系统
 63. 从零开发Android视频点播APP
 64. 前端跳槽面试必备技巧
 65. 10小时入门大数据
 66. 让你页面速度飞起来 Web前端性能优化
 67. Google面试官亲授 升级Java面试
 68. LoadRunner 工具使用 企业级性能测试实战
 69. 360大牛带你横扫PHP职场 全面解读PHP面试
 70. Python前后端分离开发Vue+Django REST framework实战
 71. Spring Security技术栈开发企业级认证与授权
 72. PHP开发高可用高安全App后端
 73. 看得见的算法 7个经典应用诠释算法精髓
 74. 全网最热Python3入门+进阶 更快上手实际开发
 75. Android互动直播APP开发
 76. JMeter 深入进阶性能测试体系 各领域企业实战
 77. Node.js入门到企业Web开发中的应用
 78. SSM到Spring Boot 从零开发校园商铺平台
 79. 深度学习之神经网络核心原理与算法
 80. BAT大厂APP架构演进实践与优化之路
 81. PHP秒杀系统 高并发高性能的极致挑战
 82. Java开发企业级权限管理系统
 83. Redux+React Router+Node.js全栈开发
 84. Redis从入门到高可用,分布式实践
 85. ES6+ 开发电商网站的账号体系 JS SDK
 86. Spark Streaming实时流处理项目实战 
 87. 快速上手Linux 玩转典型应用 
 88. Python接口测试框架实战与自动化进阶 
 89. Python3数据科学入门与实战
 90. Android高级面试 10大开源框架源码解析
 91. 移动端App UI 设计入门与实战
 92. 精通高级RxJava 2响应式编程思想
 93. Java企业级电商项目架构演进之路 Tomcat集群与Redis分布式
 94. Webpack + React全栈工程架构项目实战精讲
 95. 快速上手Ionic3 多平台开发企业级问答社区
 96. 全面系统讲解CSS 工作应用+面试一步搞定
 97. 跨平台混编框架 MUI 仿豆瓣电影 APP
 98. Kotlin打造完整电商APP 模块化+MVP+主流框架
 99. BAT大牛亲授 基于ElasticSearch的搜房网实战
 100. Python3入门机器学习 经典算法与应用
 101. Java秒杀系统方案优化 高性能高并发实战
 102. 四大维度解锁 Webpack3.0 工具全技能 
 103. 手工测试企业项目实践及面试提升 
 104. 基于Storm构建实时热力分布项目实战 
 105. Java深入微服务原理改造房产销售平台 
 106. 全网稀缺Python自动化运维项目实战 
 107. 前端成长必经之路-组件化思维与技巧 
 108. 基于Python玩转人工智能最火框架 TensorFlow应用实践
 109. Koa2框架从0开始构建预告片网站
 110. React16+React-Router4 从零打造企业级电商后台管理系统
 111. Google资深工程师深度讲解Go语言
 112. 微信小游戏入门与实战 刷爆朋友圈
 113. Elastic Stack从入门到实践
 114. Python移动自动化测试面试
 115. Python3数据分析与挖掘建模实战
 116. Tomcat+Memcached/Redis集群 构建高可用解决方案
 117. 系统学习Docker 践行DevOps理念
 118. Spring Cloud微服务实战
 119. 揭秘一线互联网企业 前端JavaScript高级面试
 120. OpenCV+TensorFlow 入门人工智能图像处理
 121. 基于Golang协程实现流量统计系统
 122. 移动端自动化测试Appium 从入门到项目实战Python版
 123. UI动效设计从入门到实战 PC与移动界面设计必学
 124. Java并发编程与高并发解决方案
 125. Vue核心技术 Vue+Vue-Router+Vuex+SSR实战精讲
 126. 韩天峰力荐 Swoole入门到实战打造高性能赛事直播平台
 127. Docker+Kubernetes(k8s)微服务容器化实践
 128. Python Flask高级编程
 129. ZooKeeper分布式专题与Dubbo微服务入门
 130. App界面设计利器Sketch 精选案例合集
 131. Python高级编程和异步IO并发编程
 132. 新浪微博资深大牛全方位剖析 iOS 高级面试
 133. Vue2.5开发去哪儿网App 从零基础入门到实战项目
 134. 最全面的Java接口自动化测试实战
 135. HBase+SpringBoot实战分布式文件存储
 136. Gradle3.0自动化项目构建技术精讲+实战
 137. 玩转数据结构 从入门到进阶
 138. MyCAT+MySQL 搭建高可用企业级数据库集群
 139. 验证码图像识别,快速掌握TensorFlow模型构建与开发
 140. SpringBoot2.0不容错过的新特性 WebFlux响应式编程
 141. 响应式开发一招致胜
 142. jquery源码分析
 143. AngularJS全栈开发知乎
 144. 揭秘一线互联网企业 前端JavaScript高级面试
 145. JavaScript版 数据结构与算法
 146. Koa2 实现电影微信公众号前后端开发
 147. Koa2+Nodejs+MongoDb 入门实战视频教程 
 148. Node.js 从零开发 web server博客项目 前端晋升全栈工程师必备
 149. Vue.js 源码全方位深入解析
 150. Vue核心技术 Vue+Vue-Router+Vuex+SSR实战精讲
 151. Vue全家桶+SSR+Koa2全栈开发美团网
 152. 飞速上手的跨平台App开发
 153. 前端JS基础面试技巧
 154. 前端跳槽面试必备技巧
 155. 让你页面速度飞起来 Web前端性能优化
 156. 微信小程序商城构建全栈应用
 157. 移动Web APP开发之实战美团外卖
 158. Thinkphp 5.0 仿百度糯米开发多商家电商平台
 159. ThinkPHP5.0正式版第二季:实战开发企业站
 160. ThinkPHP 5.0开发微信小程序商场打通全栈项目架构
 161. 前端到后台ThinkPHP开发整站
 162. PHP从基础语法到原生项目开发
 163. PHP高性能 高价值的PHP API
 164. 360大牛全面解读PHP面试
 165. PHP开发高可用高安全App后端
 166. PHP秒杀系统 高并发高性能的极致挑战
 167. Swoole入门到实战打造高性能赛事直播平台
 168. YII 2.0开发一个仿京东商城平台

......
......
更===多===课程====请====加===v===信=== a518958666
             
  ╭══════════════════════════════════════════╮                                                       ║
 ║    说明:教程版权归原作者所有,本人只是负责搜集整理,本人     ║
  ║          不承担任何技术及版权问题。本人分享的任何教程仅提        ║
  ║          供学习参考,不得用于商业用途,请在下载后在24小时       ║
  ║          内删除。                                                                          ║
  ║                                                                                                 ║
  ║     1.请遵守中华人民共和国相关法律、条例                                ║
  ║     2.本人提供的各类视频教程仅供研究学习,本人不承担观看     ║
  ║       本教程后造成的一切后果                                                    ║
  ║     3.本人不保证提供的教程十分安全或是完全可用,请下载后    ║
  ║       自行检查                                                                           ║
  ║     4.本人提供的教程均为网上搜集,如果该程序涉及                 ║
  ║       或侵害到您的版权请立即写信通知我们。                            ║
  ║     5.如不同意以上声明,请立即删除,不要使用,谢谢合作       ║
  ║                                                                                               ║
  ╰═════════════════════════════════════════╯

 

 

你可能感兴趣的:(linux,进程)