LVS

LVS概述

1.LVS:Linux Virtual Server全称叫做linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。四层路由器(交换),根据请求报文的目标IP和目标协议及端口将其调度转发至后端主机集群中的某台RealServer(真实服务器),根据调度算法来挑选RS;
主要有两个组件
VS: Virtual Server 虚拟服务器
RS: Real Server 真实服务器
2、lvs: 由ipvsadm/ipvs两部分组成
ipvsadm:
    工作与用户空间的命令行工具,规则管理器,用于管理集群服务及RealServer(真实服务器);
ipvs:
    工作于内核空间的netfilter的INPUT钩子之上的框架;其集群功能依赖于ipvsadm定义的集群服务器规则;
    工作模式:通过更改目标IP的方式或直接再次封装报文的mac地址的方式或者在网络层首部之外再此封装一个网络层首部(双ip首部及ipip隧道),
    强行改变本该发往本机内部的报文,转而发往后方Real server主机,支持基于TCP、UDP、SCTP、AH、EST、AH_EST等协议的众多服务;
3、lvs集群类型中的术语:
vs:Virtual  Server;虚拟服务,可称为Director、Dispatcher分发器、Balancer负载均衡器
rs:Real  Server;真实服务器,可称为upstream server上游服务器, backend server后端主机
CIP:Client  IP;客户端IP
RIP:Real  Server IP;真实服务器IP 
VIP: Virtual serve IP;等同于FIP(流动IP),负载均衡器虚拟IP
DIP:Director  IP;调度IP(第二张网卡IP地址)

真正的通信是;
    CIP <--> VIP 之间进行通信
    DIP <--> RIP 之间进行通信
4、负载均衡集群中设计时的要点
 1)session保持
    session sticky (iphash):IP地址绑定,来源IP记录在ip hash表作统一调度
    session cluster(multicast/broadcast/unicast):广播集群同步(复制)session,只适用于小规模场景
    session server ():session服务器
2)数据共享(提供一致性存储)
    1) 共享存储;
        NAS:Network Attached Storage (文件级别),网络附加存储,文件服务器
        SAN:Storage Area Network (块级别),存储区域网络
        DS:Distributed Storage,分布式春初
    2) 数据同步:rsync … ...

lvs集群的类型:

1、lvs-nat:地址伪装模型
多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发;
客户端主机发起请求报文CIP指向VIP,通过内核的核心网卡间转发功能,VIP会将请求交给DIP进行调度,
DIP根据设定的算法进行负载均衡给后端的RS主机的RIP,在这个过程中DIP调度功能会将目标IP地址重写为RIP。
请求和返回请求读要调度DIP来进行转换操作。

须知:
    (1)RIP和DIP必须在同一个IP网络,且应该使用私网地址;RS的网关要指向DIP;
    (2)请求报文和响应报文都必须经由Director转发;Director易于成为系统瓶颈;
    (3)支持端口映射,可修改请求报文的目标PORT;
    (4)vs必须是Linux系统,rs可以是任意系统;

LVS

2、lvs-dr:
(direct routing直接路由):网关模型
通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变;
客户端发起请求,经过层层路由到达离VS服务器最近的交换机,通过交换机转发给VS服务器,此时因为每个RS真实主机的LO本地回环接口上都写了VIP地址,并且通过修改内核参数的操作禁止内核的arp请求响应级别和修改自己向外通告的模式,Real server主机不会相应arp请求。所有请求就会到达VS服务器并且由VS服务器负载均衡转发请求给RS服务器。在此过程中VIP修改MAC地址调度请求给真实主机。在此过程中通过ARP协议在一个局域网中广播寻找真实主机的MAC地址。实现全过程源地址为CIP,并且强行限制RS主机的响应报文必须经过LO以此实现目标地址为VIP不变。调度基于寻找MAC。网关模型中的所有主机均要能与外网通信。这样RS主机就能够直接响应客户机。

须知:Director和各RS都得配置使用VIP;
    (1) 确保前端路由器将目标IP为VIP的请求报文发往Director:
        解决方案:
            (a) 在前端网关做静态绑定;
            (b) 在RS上使用arptables;
            (c) 在RS上修改内核参数以禁止RS响应VIP的ARP请求;                 
                1) 修改各RS的内核参数,并把VIP配置在特定的接口上实现禁止其响应;
                    arp_announce
                    arp_ignore
    (2) RS的RIP可以使用私网地址,也可以是公网地址;
        RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director;
    (3) RS跟Director要在同一个物理网络;
    (4) 不支持端口映射;
    (5) RS的OS得支持隧道功能;
    (6) 各RS可以使用大多数的操作系统;

LVS

3、lvs-tun:在原请求IP报文之外新加一个IP首部;ipip隧道
    转发方式:
        不修改请求报文的IP首部(源IP为CIP,目标IP为VIP),而在原IP报文之外再封装一个IP首部(源IP是DIP,目标IP是RIP),将报文发往挑选出的目标RS;
    须知:
        (1) DIP, VIP, RIP都应该是公网地址;
        (2) RS的网关不能,也不可能指向DIP;
        (3) 请求报文要经由Director,但响应不能经由Director;
        (4) 不支持端口映射;
        (5) RS的OS得支持隧道功能;
4、lvs-fullnat:修改请求报文的源和目标IP完成转发;
    通过同时修改请求报文的源IP地址(cip-->dip)和目标IP地址(vip--> rip)实现转发;
    须知:
        (1) VIP是公网地址,RIP和DIP是私网地址,且通常不在同一IP网络;因此,RIP的网关一般不会指向DIP;
        (2) RS收到的请求报文源地址是DIP,因此,只需响应给DIP;但Director还要将其发往Client;
        (3) 请求和响应报文都经由Director;
        (4) 支持端口映射;

注意:

前三种为标准类型,第四种为后添加类型,内核默认可能不支持,需自编译内核

LVS scheduler调度算法

根据其调度时是否考虑各RS当前的负载状态,可分为静态方法和动态方法两种:

静态方法:仅根据算法本身进行调度;
    RR:roundrobin,轮询;依次分配请求,方式简单但时负载均衡的效果一般
    WRR:Weighted RR,加权轮询;权重越大承担负载越大
    SH:Source Hashing,实现session sticy,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定;
        缺点:调度力度大,对负载均衡效果差;session黏性不同,连接时长保持不同
    DH:Destination Hashing;目标地址哈希,将发往同一个目标地址的请求始终转发至第一次挑中的RS;能实现连接追踪,但不考虑负载均衡效果

动态方法:主要根据每RS当前的负载状态及调度算法进行调度;
    Overhead:负载值,VS转发时记录每个RS的Active和Inactive数量(甚至权重)进行算法计算
    Active:活动链接值,当发起新请求后保持在ESTABLISHED状态时,仍有请求响应
    Inactive:非活动链接值,在ESTABLISHED状态时,尚未断开保持空闲等待状态

    LC:least connections;最少连接
        Overhead=activeconns*256+inactiveconns
        后端的RS谁的连接少就分发请求至那台RS,若overhead一样则自上而下轮询列表中的RS

    WLC:Weighted LC;加权最小连接
        Overhead=(activeconns*256+inactiveconns)/weight,计算结果小的将为选中的下一跳RS服务器
        缺点:当Overhead一样时,自上而下轮询响应,权重小的若在列表上方则其会响应

    SED:Shortest Expection Delay;最短期望延迟
        Overhead=(activeconns+1)*256/weight
         缺点:解决WLC问题,但时无法确保权重小的主机一定响应

    NQ:Never Queue;永不排队,SED算法改进
        RS权重大小排列,每台RS服务器先分配一个请求,其余的按照权重大小计算分配

    LBLC:Locality-Based LC;
        基于本地的最少连接,动态的 DH连接算法
    LBLCR:LBLC with Replication;
        带复制功能的LBLC

ipvs:

ipvs:工作在内核级别的,适用于服务器应用级别的服务器,如centos;查看是否已经编译进的方法如下;
    ~]# grep -i -C 10 "ipvs" /boot/config-3.10.0-327.el7.x86_64

    支持的协议:TCP, UDP, AH, ESP, AH_ESP, SCTP;

ipvs集群定义:两个级别的定义
    1)集群服务
    2)服务上的RS

ipvsadm命令:

1、管理集群服务:增、改、删;
增、改:
    ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]

删:
    ipvsadm -D -t|u|f service-address

-A:添加、-E:修改、-D:删除

service-address:服务地址和 -t|u|f 结合使用,具体格式如下
    -t|u|f:
        -t, tcp, vip:port ; TCP的ip和port
        -u, udp, vip:port ; UDP的ip和port
        -f:firewall MARK ; 是一个数字;防火墙标记
    [-s scheduler]:指定集群的调度算法,默认为wlc;

    -p [timeout] :超出时长,持久连接相关,默认时长为300秒
2、管理集群上的RS:增、改、删;
增、改:
ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]

删:
ipvsadm -d -t|u|f service-address -r server-address

-a:添加一个RS、-e:修改一个RS、-d:删除一个RS

server-address指的是rip[:port],端口可省表示与之前的service-address相同,只有nat模式支持端口映射才会使用

选项:
    lvs类型:
        -g: gateway(默认), dr类型
        -i: ipip, lvs-tun隧道类型
        -m: masquerade, lvs-nat类型                       
        -w weight:权重;
3、查看:
ipvsadm -L|l [options]
    --numeric, -n:数字格式显示地址和端口;
    --exact:精确值,不经过单位换算的数值                   
    --connection, -c:显示ipvs连接;
    --stats:显示统计数据;
    --rate :速率
4、保存和重载:
ipvsadm -S = ipvsadm-save
ipvsadm -R = ipvsadm-restore
5、计数器清零:
pvsadm  -Z [-t|u|f service-address]
6、清空定义的所有内容:
ipvsadm  -C

lvs-nat模型构建

1、lvs-nat模型示意图

本次构建的lvs-nat模型的示意图如下,其中所有的服务器和测试客户端均使用VMware虚拟机模拟,所使用的CentOS 7

VS内核都支持ipvs功能,且安装ipvsadm控制书写lvs规则工具。

RS端两台服务器为httpd服务器做请求的负载均衡。

LVS

2、VS网卡配置

1、在"虚拟机设置"中增加一个网络适配器设备,并将其自定义特定网络为VMnet1模式,此处为了模拟负载均衡服务器的两张网卡处于不同网段

LVS

2、配置VS两张网卡的IP地址

网络适配器1(10.1.19.11)模拟为外网网卡,网络适配器2(192.168.25.135)模拟为内网,且该网卡的Ip地址要和RS服务器得ip在同一网段,DIP作为RIP的网络调度(网关),无需配置GATEWAY

LVS

LVS

3、RS网卡配置

此处使用两台CentOS 7虚拟机作为负载均衡后端真实响应主机,安装RPM包格式httpd服务,并启动服务。nmtui命令配置网卡信息,RS1的IP:192.168.25.129,RS2的IP:192.168.25.130,RIP和DIP在同一网段,虚拟机网卡和DIP同时匹配值为VMnet1模式,且两台RS服务器主机网关指向DIP:192.168.25.135

]# yum install -y httpd
]# systemctl start httpd.service
注意:安装完成后在各httpd服务器上配置测试页面,/var/www/html/index.html.
4、测试所有主机是否能够通信

用ping命令测试各节点的通信,例如RIP1和VIP、DIP、RIP2之间是否能够通信

]# ping  IPADDR
5、同步所有主机的时间,这里使用chrony 也可以手动同步
]# vim /etc/chrony.conf 编辑文件添加一行如下;
    server 10.1.0.1 iburst
]# systemctl restart chronyd.service
6、测试两台RS的服务是否能正常访问

LVS

7、VS主机:核心转发和安装ipvsadm
1)安装ipvsadm组件:[root@localhost ~]# yum install -y ipvsadm
2)启动网卡间核心转发功能:[root@localhost ~]# sysctl -w net.ipv4.ip_forward=1 也可以echo 1 到/proc/sys/net/ipv4/ip_forward
]# cat /proc/sys/net/ipv4/ip_forward

LVS

7、VS主机:定义配置lvs-nat服务(此处采用rr算法)
1)定义ipvsadm负载均衡集群规则,并查看
 此处定义DIP是以-s指定为rr算法进行轮询调度,-m指定模式为lvs-nat,配置命令如下:
    ]# ipvsadm -A -t 10.1.19.11:80 -s rr
    ]# ipvsadm -a -t 10.1.19.11:80 -r 192.168.25.129 -m
    ]# ipvsadm -a -t 10.1.19.11:80 -r 192.168.25.130 -m
    ]# ipvsadm -L -n

LVS

2)Client客户机测试
在客户端主机上使用curl命令对VIP发起请求,负载均衡服务器会将请求按照rr算法依次将请求调度给不同的主机进行处理,依次请求给分发给192.168.25.129和192.168.25.130主机响应。

LVS

负载均衡集群的设计要点:
(1) 是否需要会话保持;
(2) 是否需要共享存储;
共享存储:NAS, SAN, DS(分布式存储)
设计要点:
(1) RIP与DIP在同一IP网络, RIP的网关要指向DIP;
(2) 支持端口映射;

lvs-dr模型构建

dr模型中,各主机上均需要配置VIP,解决地址冲突的方式有三种;

(1) 在前端网关做静态绑定;
(2) 在各RS使用arptables;
(3) 在各RS修改内核参数,来限制arp响应和通告的级别;
    限制响应级别:arp_ignore
        0:默认值,表示可使用本地任意接口上配置的任意地址进行响应;
        1: 仅在请求的目标IP配置在本地主机的接收到请求报文接口上时,才给予响应;
    限制通告级别:arp_announce
        0:默认值,把本机上的所有接口的所有信息向每个接口上的网络进行通告;
        1:尽量避免向非直接连接网络进行通告;
        2:必须避免向非本网络通告;
1、lvs-dr模型示意图

三台主机为虚拟机CentOS 7,每台主机仅有一块网卡,且使用桥接方式都指向外部网络的网关172.18.19.1

LVS

2、RS服务器配置APR内核参数修改
[root@localhost~]# ll /proc/sys/net/ipv4/conf

LVS

1)ARP响应行为和ARP解析行为内核参数:

1)arp_annouce定义通告级别
    0:默认级别,将本地的任何接口上的配置的地址都在网络中通告
    1:尽量避免向本主机上的其他网卡进行网络通信,特殊情况下其他接口也可以
    2:总是使用最佳网络地址接口(仅使用定义的网卡接口在同网络通信)
2)arp_ignore定义响应级别(0-8九个级别),响应时忽略方式
    0:都全都响应
    1:只对从本接口进入的请求响应,且本接口地址是个网络地址
    … …
注释:一般使用arp_annouce=2,arp_ignore=1

2)配置各RS主机参数

注意:all必须配置、eno16777736(本地)和lo两个可以同时全部配置或者配置其中一个
RealServer内核参数:
]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
]# echo 1 > /proc/sys/net/ipv4/conf/INTERFACE/arp_ignore
]# echo 2 > /proc/sys/net/ipv4/conf/INTERFACE/arp_announce
    注意:INTERFACE为你的物理接口;此处网卡接口指的是eno16777736和lo
3、配置VS和RS服务器的VIP

此处的VIP均以别名的形式配置在往卡上,VS是配置在对外通信的DIP的网卡上;RS配置在lo本地回环网卡

注意:此时配置的VIP的子网掩码必须为255.255.255.255,广播地址为自己本身
 VS:[root@localhost~]# ifconfig eno16777736:0 172.18.19.110 netmask 255.255.255.255 broadcast 172.18.19.110 up
 RS:[root@localhost~]# ifconfig lo:0 172.18.19.110 netmask 255.255.255.255 broadcast 172.18.19.110 up
4、RS服务器上配置路由
]# route add -host 172.18.19.110 dev lo:0
]# route -n

LVS

5、VS主机:定义配置lvs-dr模式(此处采用rr算法)
1)配置和查看
    [root@localhost~]# ipvsadm -A -t 172.18.19.110:80 -s rr
    [root@localhost~]# ipvsadm -a -t 172.18.19.110:80 -r 172.18.19.218 -g
    [root@localhost~]# ipvsadm -a -t 172.18.19.110:80 -r 172.18.19.184 -g
    [root@localhost~]# ipvsadm -L -n

LVS

2)测试
     [root@localhost~]# curl http://172.18.19.110
         因为基于rr算法调度,依次分发给RS主机

LVS

6、RS的预配置脚本:
            #!/bin/bash
            #
            vip=10.1.0.5
            mask='255.255.255.255'

            case $1 in
            start)
                echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
                echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
                echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
                echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

                ifconfig lo:0 $vip netmask $mask broadcast $vip up
                route add -host $vip dev lo:0
                ;;
            stop)
                ifconfig lo:0 down

                echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
                echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
                echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
                echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce

                ;;
            *) 
                echo "Usage $(basename $0) start|stop"
                exit 1
                ;;
            esac
7、VS的配置脚本:
            #!/bin/bash
            #
            vip='10.1.0.5'
            iface='eno16777736:0'
            mask='255.255.255.255'
            port='80'
            rs1='10.1.0.7'
            rs2='10.1.0.8'
            scheduler='wrr'
            type='-g'

            case $1 in
            start)
                ifconfig $iface $vip netmask $mask broadcast $vip up
                iptables -F

                ipvsadm -A -t ${vip}:${port} -s $scheduler
                ipvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1
                ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 1
                ;;
            stop)
                ipvsadm -C
                ifconfig $iface down
                ;;
            *)
                echo "Usage $(basename $0) start|stop"
                exit 1
                ;;
            esac

通过防火墙标记来定义lvs

1、FWM:FireWall Mark
防火墙标记可以实现多个集群服务绑定为同一个,实现统一调度;将共享一组RS的集群服务统一进行定义
FWM基于iptables的mangle表实现防护墙标记功能,定义标记做策略路由
2、FWM定义集群的方式
1)在director上netfilter的mangle表的PREROUTING定义用于"打标"的规则
    ~]#iptables -t mangle -A PREROUTING -d $vip -p $protocol --dport $port -j MARK--set-mark #
        $vip:VIP地址
        $protocol:协议
        $port:协议端口
2)基于FWM定义集群服务:
    ~]#ipvsadm -A -f # -s scheduler
3、示例
[root@localhost~]# iptables -t mangle -A PREROUTING -d 172.18.19.110 -p tcp --dport 80 -j MARK --set-mark 5
[root@localhost~]# ipvsadm -A -f 5 -s rr
[root@localhost~]# ipvsadm -a -f 5 -r 172.18.19.218 -g
[root@localhost~]# ipvsadm -a -f 5 -r 172.18.19.184 -g

LVS持久连接功能:lvs persistence

1、lvs persistence功能

无论ipvs使用何种scheduler,其都能够实现在指定时间范围内始终将来自同一个ip地址的请求发往同一个RS;实现方式和lvs调度的十种算法无关,通过lvs持久连接模板(hash表)实现,当超过自定义的可持节连接时长候再根据LVS算法本身进行调度。

ipvsadm命令中-p选项实现,在-p后不指定具体数字(单位:秒),默认为300,到时候会自动延长2分钟,对于web本身就是15秒

2、模式
1)每端口持久(PPC)

客户端对同一服务端口发起请求,会基于该服务的端口实现请求在一段时间内对同一RS服务器持久连接;

例如:有两台主机做为RS服务器做http和hssh的两种服务的集群,仅http做每端口持久,Client请求会实现绑定在,但是22号端口请求不会绑定在同一台RS

2)每客户端持久(PCC):定义tcp或udp协议的0号端口为集群服务端口

director会将用户的任何请求都识别为集群服务,并向RS进行调度;同一客户端的请求任何端口都发往同一台第一次选定的RS服务器

3)每防火墙标记持久(PFWMC)

将两个或两个以上服务通过防火墙打标绑定在一起,这些服务的请求实现同时定向与同一台RS服务器,服务绑定同一RS

示例:
lvs-dr模式下以rr算法绑定http和https服务
~]#iptables -t mangle -A PREROUTING -d 172.18.19.110 -p tcp --dport 80 -j MARK--set-mark 99
~]#iptables -t mangle -A PREROUTING -d 172.18.19.110 -p tcp --dport 443 -j MARK--set-mark 99
~]#ipvsadm -A -f 99 -s rr -p
~]#ipvsadm -a -f 99 -r 172.18.19.218 -g
~]#ipvsadm -a -f 99 -r 172.18.19.84 -g

保存及重载规则:

保存:建议保存至/etc/sysconfig/ipvsadm
    ipvsadm-save > /PATH/TO/IPVSADM_FILE
    ipvsadm -S > /PATH/TO/IPVSADM_FILE
    systemctl stop ipvsadm.service 
重载: 
    ipvsadm-restore < /PATH/FROM/IPVSADM_FILE
    ipvsadm -R < /PATH/FROM/IPVSADM_FILE
    systemctl restart ipvsadm.service

考虑:

(1) Director不可用,整个系统将不可用;SPoF
    解决方案:高可用 
        keepalived 
        heartbeat/corosync
(2) 某RS不可用时,Director依然会调度请求至此RS;
    解决方案:对各RS的健康状态做检查,失败时禁用,成功时启用;
        keepalived
        heartbeat/corosync, ldirectord
    检测方式:
        (a) 网络层检测;
        (b) 传输层检测,端口探测;
        (c) 应用层检测,请求某关键资源;

        ok --> failure
        failure --> ok

原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/58150

(0)
M20-1马星M20-1马星
上一篇 2016-11-07
下一篇 2016-11-07

相关推荐

  • vim文本编辑器

    vim简介: vi: Visual Interface,文本编辑器 文本:ASCII, Unicode 文本编辑种类: 行编辑器: sed 全屏编辑器:nano, vi vim – Vi Improved 其他编辑器: gedit一个简单的图形编辑器 gvim一个Vim 编辑器的图形版本   vim使用: 三种主要模式: 命令(Norm…

    Linux干货 2017-06-17
  • 马哥教育网络班21期+第7周课程练习

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@itop ~]# fdisk /dev/sda&nbsp…

    Linux干货 2016-08-30
  • Android必备的Java知识点

     Android应用程序开发是以Java语言为基础的,所以需要有扎实的Java基础知识。首先熟悉java基本语法,然后熟悉设计模式等。         a) Java基础语法:看下面的《Java知识点列表》       b)设计模式:由于在Android系统的框架层当中,使用了大…

    Linux干货 2015-04-08
  • ansible的用法

    ansible 每台主机拥有不同的功能,可能同时是http服务器,php-fpm的客户端,共享存储的客户端等,这些功能是单独定义的,不同主机需要的功能各不相同 应确保目标主机的状态为事先给他定义的目标状态 使目标主机达到目标状态有两种方法      agentless:由服务端主机通过ssh连接到目标主机执行命令,客户端不需要额…

    Linux干货 2016-11-11
  • Linux的发行版和它们区别跟联系

    linux的主要发行版有Debian,Slackware,RedHat三个大系列    Debian 最早由Ian Murdock于1993年创建。可以算是迄今为止,最遵循GNU规范的Linux系统。Debian最具特色的是apt-get / dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发…

    Linux干货 2017-07-02
  • 推荐-VSftpd使用MySQL存储虚拟用户进行认证

    VSftpd使用MySQL存储虚拟用户进行认证 VSftpd使用MySQL存储虚拟用户进行认证 前言 实验拓扑 实验环境 实验步骤 安装vsftpd并测试 安装MySQL并创建对应用户和表 配置vsftpd基于MySQL表的虚拟用户 测试 测试tom用户的权限 测试anyisalin用户的权限 总结 前言 周一的时候做这个实验失败了,当时以为是pam_mys…

    Linux干货 2016-04-04