IPSEC

目  录

IPsec

IPsec简介

IPsec的协议实现

IPsec基本概念

加密卡

IPsec虚拟隧道接口

使用IPsec保护IPv6路由协议

IKE

IKE简介

IKE的安全机制

IKE的交换过程

IKE在IPsec中的作用

IPsec与IKE的关系

IPsec

IPsec简介

IPsec(IP Security)是IETF制定的三层隧道加密协议,它为Internet上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证。特定的通信方之间在IP层通过加密与数据源认证等方式,提供了以下的安全服务:

l              数据机密性(Confidentiality):IPsec发送方在通过网络传输包前对包进行加密。

l              数据完整性(Data Integrity):IPsec接收方对发送方发送来的包进行认证,以确保数据在传输过程中没有被篡改。

l              数据来源认证(Data Authentication):IPsec在接收端可以认证发送IPsec报文的发送端是否合法。

l              防重放(Anti-Replay):IPsec接收方可检测并拒绝接收过时或重复的报文。

IPsec具有以下优点:

l              支持IKE(Internet Key Exchange,因特网密钥交换),可实现密钥的自动协商功能,减少了密钥协商的开销。可以通过IKE建立和维护SA的服务,简化了IPsec的使用和管理。

l              所有使用IP协议进行数据传输的应用系统和服务都可以使用IPsec,而不必对这些应用系统和服务本身做任何修改。

l              对数据的加密是以数据包为单位的,而不是以整个数据流为单位,这不仅灵活而且有助于进一步提高IP数据包的安全性,可以有效防范网络攻击。

IPsec的协议实现

IPsec协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议AH(Authentication Header,认证头)、ESP(Encapsulating Security Payload,封装安全载荷)、IKE(Internet Key Exchange,因特网密钥交换)和用于网络认证及加密的一些算法等。其中,AH协议和ESP协议用于提供安全服务,IKE协议用于密钥交换。关于IKE的详细介绍请参见“2 IKE配置”,本节不做介绍。

IPsec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。

IPsec协议中的AH协议定义了认证的应用方法,提供数据源认证和完整性保证;ESP协议定义了加密和可选认证的应用方法,提供数据可靠性保证。

l              AH协议(IP协议号为51)提供数据源认证、数据完整性校验和防报文重放功能,它能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据。AH的工作原理是在每一个数据包上添加一个身份验证报文头,此报文头插在标准IP包头后面,对数据提供完整性保护。可选择的认证算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等。

l              ESP协议(IP协议号为50)提供加密、数据源认证、数据完整性校验和防报文重放功能。ESP的工作原理是在每一个数据包的标准IP包头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾。与AH协议不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。常见的加密算法有DES、3DES、AES等。同时,作为可选项,用户可以选择MD5、SHA-1算法保证报文的完整性和真实性。

在实际进行IP通信时,可以根据实际安全需求同时使用这两种协议或选择使用其中的一种。AH和ESP都可以提供认证服务,不过,AH提供的认证服务要强于ESP。同时使用AH和ESP时,设备支持的AH和ESP联合使用的方式为:先对报文进行ESP封装,再对报文进行AH封装,封装之后的报文从内到外依次是原始IP报文、ESP头、AH头和外部IP头。

IPsec基本概念

1. 安全联盟(Security Association,SA)

IPsec在两个端点之间提供安全通信,端点被称为IPsec对等体。

SA是IPsec的基础,也是IPsec的本质。SA是通信对等体间对某些要素的约定,例如,使用哪种协议(AH、ESP还是两者结合使用)、协议的封装模式(传输模式和隧道模式)、加密算法(DES、3DES和AES)、特定流中保护数据的共享密钥以及密钥的生存周期等。建立SA的方式有手工配置和IKE自动协商两种。

SA是单向的,在两个对等体之间的双向通信,最少需要两个SA来分别对两个方向的数据流进行安全保护。同时,如果两个对等体希望同时使用AH和ESP来进行安全通信,则每个对等体都会针对每一种协议来构建一个独立的SA。

SA由一个三元组来唯一标识,这个三元组包括SPI(Security Parameter Index,安全参数索引)、目的IP地址、安全协议号(AH或ESP)。

SPI是用于唯一标识SA的一个32比特数值,它在AH和ESP头中传输。在手工配置SA时,需要手工指定SPI的取值。使用IKE协商产生SA时,SPI将随机生成。

通过IKE协商建立的SA具有生存周期,手工方式建立的SA永不老化。IKE协商建立的SA的生存周期有两种定义方式:

l              基于时间的生存周期,定义了一个SA从建立到失效的时间;

l              基于流量的生存周期,定义了一个SA允许处理的最大流量。

生存周期到达指定的时间或指定的流量,SA就会失效。SA失效前,IKE将为IPsec协商建立新的SA,这样,在旧的SA失效前新的SA就已经准备好。在新的SA开始协商而没有协商好之前,继续使用旧的SA保护通信。在新的SA协商好之后,则立即采用新的SA保护通信。

2. 封装模式

IPsec有如下两种工作模式:

l              隧道(tunnel)模式:用户的整个IP数据包被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被封装在一个新的IP数据包中。通常,隧道模式应用在两个安全网关之间的通讯。

l              传输(transport)模式:只是传输层数据被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被放置在原IP包头后面。通常,传输模式应用在两台主机之间的通讯,或一台主机和一个安全网关之间的通讯。

不同的安全协议在tunnel和transport模式下的数据封装形式如图1-1所示,data为传输层数据。

图 1 安全协议数据封装格式

3. 认证算法与加密算法

(1)        认证算法

认证算法的实现主要是通过杂凑函数。杂凑函数是一种能够接受任意长的消息输入,并产生固定长度输出的算法,该输出称为消息摘要。IPsec对等体计算摘要,如果两个摘要是相同的,则表示报文是完整未经篡改的。IPsec使用两种认证算法:

l              MD5:MD5通过输入任意长度的消息,产生128bit的消息摘要。

l              SHA-1:SHA-1通过输入长度小于2的64次方bit的消息,产生160bit的消息摘要。

MD5算法的计算速度比SHA-1算法快,而SHA-1算法的安全强度比MD5算法高。

(2)        加密算法

加密算法实现主要通过对称密钥系统,它使用相同的密钥对数据进行加密和解密。目前设备的IPsec实现三种加密算法:

l              DES(Data Encryption Standard):使用56bit的密钥对一个64bit的明文块进行加密。

l              3DES(Triple DES):使用三个56bit的DES密钥(共168bit密钥)对明文进行加密。

l              AES(Advanced Encryption Standard):使用128bit、192bit或256bit密钥长度的AES算法对明文进行加密。

这三个加密算法的安全性由高到低依次是:AES、3DES、DES,安全性高的加密算法实现机制复杂,运算速度慢。对于普通的安全要求,DES算法就可以满足需要。

4. 协商方式

有如下两种协商方式建立SA:

l              手工方式(manual)配置比较复杂,创建SA所需的全部信息都必须手工配置,而且不支持一些高级特性(例如定时更新密钥),但优点是可以不依赖IKE而单独实现IPsec功能。

l              IKE自动协商(isakmp)方式相对比较简单,只需要配置好IKE协商安全策略的信息,由IKE自动协商来创建和维护SA。

当与之进行通信的对等体设备数量较少时,或是在小型静态环境中,手工配置SA是可行的。对于中、大型的动态网络环境中,推荐使用IKE协商建立SA。

5. 安全隧道

安全隧道是建立在本端和对端之间可以互通的一个通道,它由一对或多对SA组成。

加密卡

IPsec在设备上可以通过软件实现,还可以通过加密卡实现。通过软件实现,由于复杂的加密/解密、认证算法会占用大量的CPU资源,从而影响设备整体处理效率;而通过加密卡,复杂的算法处理在硬件上进行,从而提高了设备的处理效率。

加密卡进行加/解密处理的过程是:设备将需要加/解密处理的数据发给加密卡,加密卡对数据进行处理,然后加密卡将处理后的数据发送回设备,再由设备进行转发处理。

IPsec虚拟隧道接口

1. 概述

IPsec虚拟隧道接口是一种支持路由的三层逻辑接口,它可以支持动态路由协议,所有路由到IPsec虚拟隧道接口的报文都将进行IPsec保护,同时还可以支持对组播流量的保护。使用IPsec虚拟隧道接口建立IPsec隧道具有以下优点:

l              简化配置:通过路由来确定对哪些数据流进行IPsec保护。与通过ACL指定数据流范围的方式相比,这种方式简化了用户在部署IPsec安全策略时配置上的复杂性,使得IPsec的配置不会受到网络规划的影响,增强了网络规划的可扩展性,降低了网络维护成本。

l              减少开销:在保护远程接入用户流量的组网应用中,在IPsec虚拟隧道接口处进行报文封装,与IPsec over GRE或者IPsec over L2TP方式的隧道封装相比,无需额外为入隧道流量加封装GRE头或者L2TP头,减少了报文封装的层次,节省了带宽。

l              业务应用更灵活:IPsec虚拟隧道接口在实施过程中明确地区分出“加密前”和“加密后”两个阶段,用户可以根据不同的组网需求灵活选择其它业务(例如NAT、QoS)实施的阶段。例如,如果用户希望对IPsec封装前的报文应用QoS,则可以在IPsec虚拟隧道接口上应用QoS策略;如果希望对IPsec封装后的报文应用QoS,则可以在物理接口上应用QoS策略。

2. 工作原理

IPsec虚拟隧道接口对报文的加封装/解封装发生在隧道接口上。用户流量到达实施IPsec配置的设备后,需要IPsec处理的报文会被转发到IPsec虚拟隧道接口上进行加封装/解封装。

如图1-2所示,IPsec虚拟隧道接口对报文进行加封装的过程如下:

图 2 IPsec虚接口隧道加封装原理图

(1)        Router将从入接口接收到的IP明文送到转发模块进行处理;

(2)        转发模块依据路由查询结果,将IP明文发送到IPsec虚拟隧道接口进行加封装:原始IP报文被封装在一个新的IP报文中,新IP头中的源地址和目的地址分别为隧道接口的源地址和目的地址。

(3)        IPsec虚拟隧道接口完成对IP明文的加封装处理后,将IP密文送到转发模块进行处理;

(4)        转发模块进行第二次路由查询后,将IP密文通过隧道接口的实际物理接口转发出去。

如图1-3所示,IPsec虚拟隧道接口对报文进行解封装的过程如下:

图 3 IPsec虚接口隧道解封装原理图

(1)        Router将从入接口接收到的IP密文送到转发模块进行处理;

(2)        转发模块识别到此IP密文的目的地为本设备的隧道接口地址且IP协议号为AH或ESP时,会将IP密文送到相应的IPsec虚拟隧道接口进行解封装:将IP密文的外层IP头去掉,对内层IP报文进行解密处理。

(3)        IPsec虚拟隧道接口完成对IP密文的解封装处理之后,将IP明文重新送回转发模块处理;

(4)        转发模块进行第二次路由查询后,将IP明文从隧道的实际物理接口转发出去。

从上面描述的加封装/解封装过程可见,IPsec虚拟隧道接口将报文的IPsec处理过程区分为两个阶段:“加密前”和“加密后”。需要应用到加密前的明文上的业务(例如NAT、QoS),可以应用到隧道接口上;需要应用到加密后的密文上的业务,则可以应用到隧道接口对应的物理接口上。

使用IPsec保护IPv6路由协议

本特性的支持情况与设备的型号有关,请以设备的实际情况为准。

使用IPsec保护IPv6路由协议是指,使用AH/ESP协议对IPv6路由协议报文进行加/解封装处理,并为其提供认证和加密的安全服务,目前支持OSPFv3、IPv6 BGP、RIPng路由协议。

IPsec对IPv6路由协议报文进行保护的处理方式和目前基于接口的IPsec处理方式不同,是基于业务的IPsec,即IPsec保护某一业务的所有报文。该方式下,设备产生的所有需要IPsec保护的IPv6路由协议报文都要被进行加封装处理,而设备接收到的不受IPsec保护的以及解封装(解密或验证)失败的IPv6路由协议报文都要被丢弃。

在基于接口的IPsec处理方式下,设备对配置了IPsec安全功能的接口上发送的每个报文都要判断是否进行IPsec处理。目前,该方式有两种实现,一种是基于ACL的IPsec,只要到达接口的报文与该接口的IPsec安全策略中的ACL规则匹配,就会受到IPsec保护;另一种是基于路由的IPsec,即IPsec虚拟隧道接口方式,只要被路由到虚拟隧道接口上的报文都会受到IPsec保护。

相对于基于接口的IPsec,基于业务的IPsec既不需要ACL来限定要保护的流的范围,也不需要指定IPsec隧道的起点与终点,IPsec安全策略仅与具体的业务绑定,不管业务报文从设备的哪个接口发送出去都会被IPsec保护。

由于IPsec的密钥交换机制仅仅适用于两点之间的通信保护,在广播网络一对多的情形下,IPsec无法实现自动交换密钥,因此必须使用手工配置密钥的方式。同样,由于广播网络一对多的特性,要求各设备对于接收、发送的报文均使用相同的SA参数(相同的SPI及密钥)。因此,目前仅支持手工安全策略生成的SA对IPv6路由协议报文进行保护。

IKE

IKE简介

在实施IPsec的过程中,可以使用IKE(Internet Key Exchange,因特网密钥交换)协议来建立SA,该协议建立在由ISAKMP(Internet Security Association and Key Management Protocol,互联网安全联盟和密钥管理协议)定义的框架上。IKE为IPsec提供了自动协商交换密钥、建立SA的服务,能够简化IPsec的使用和管理,大大简化IPsec的配置和维护工作。

IKE不是在网络上直接传输密钥,而是通过一系列数据的交换,最终计算出双方共享的密钥,并且即使第三者截获了双方用于计算密钥的所有交换数据,也不足以计算出真正的密钥。

IKE的安全机制

IKE具有一套自保护机制,可以在不安全的网络上安全地认证身份、分发密钥、建立IPsec SA。

1. 数据认证

数据认证有如下两方面的概念:

l              身份认证:身份认证确认通信双方的身份。支持两种认证方法:预共享密钥(pre-shared-key)认证和基于PKI的数字签名(rsa-signature)认证。

l              身份保护:身份数据在密钥产生之后加密传送,实现了对身份数据的保护。

2. DH

DH(Diffie-Hellman,交换及密钥分发)算法是一种公共密钥算法。通信双方在不传输密钥的情况下通过交换一些数据,计算出共享的密钥。即使第三者(如黑客)截获了双方用于计算密钥的所有交换数据,由于其复杂度很高,不足以计算出真正的密钥。所以,DH交换技术可以保证双方能够安全地获得公有信息。

3. PFS

PFS(Perfect Forward Secrecy,完善的前向安全性)特性是一种安全特性,指一个密钥被破解,并不影响其他密钥的安全性,因为这些密钥间没有派生关系。对于IPsec,是通过在IKE阶段2协商中增加一次密钥交换来实现的。PFS特性是由DH算法保障的。

IKE的交换过程

IKE使用了两个阶段为IPsec进行密钥协商并建立SA:

(1)        第一阶段,通信各方彼此间建立了一个已通过身份认证和安全保护的通道,即建立一个ISAKMP SA。第一阶段有主模式(Main Mode)和野蛮模式(Aggressive Mode)两种IKE交换方法。

(2)        第二阶段,用在第一阶段建立的安全隧道为IPsec协商安全服务,即为IPsec协商具体的SA,建立用于最终的IP数据安全传输的IPsec SA。

图 4 主模式交换过程

如图2-1所示,第一阶段主模式的IKE协商过程中包含三对消息:

l              第一对叫SA交换,是协商确认有关安全策略的过程;

l              第二对消息叫密钥交换,交换Diffie-Hellman公共值和辅助数据(如:随机数),密钥材料在这个阶段产生;

l              最后一对消息是ID信息和认证数据交换,进行身份认证和对整个第一阶段交换内容的认证。

野蛮模式交换与主模式交换的主要差别在于,野蛮模式不提供身份保护,只交换3条消息。在对身份保护要求不高的场合,使用交换报文较少的野蛮模式可以提高协商的速度;在对身份保护要求较高的场合,则应该使用主模式。

IKE在IPsec中的作用

l              因为有了IKE,IPsec很多参数(如:密钥)都可以自动建立,降低了手工配置的复杂度。

l              IKE协议中的DH交换过程,每次的计算和产生的结果都是不相关的。每次SA的建立都运行DH交换过程,保证了每个SA所使用的密钥互不相关。

l              IPsec使用AH或ESP报文头中的序列号实现防重放。此序列号是一个32比特的值,此数溢出后,为实现防重放,SA需要重新建立,这个过程需要IKE协议的配合。

l              对安全通信的各方身份的认证和管理,将影响到IPsec的部署。IPsec的大规模使用,必须有CA(Certificate Authority,认证中心)或其他集中管理身份数据的机构的参与。

l              IKE提供端与端之间动态认证。

IPsec与IKE的关系

图 5 IPsec与IKE的关系图

从图2-2中我们可以看出IKE和IPsec的关系:

l              IKE是UDP之上的一个应用层协议,是IPsec的信令协议;

l              IKE为IPsec协商建立SA,并把建立的参数及生成的密钥交给IPsec;

l              IPsec使用IKE建立的SA对IP报文加密或认证处理。

附件下载

WMI硬件

public enum HardwareEnum

{

// 硬件

Win32_Processor, // CPU 处理器

Win32_PhysicalMemory, // 物理内存条

Win32_Keyboard, // 键盘

Win32_PointingDevice, // 点输入设备,包括鼠标。

Win32_FloppyDrive, // 软盘驱动器

Win32_DiskDrive, // 硬盘驱动器

Win32_CDROMDrive, // 光盘驱动器

Win32_BaseBoard, // 主板

Win32_BIOS, // BIOS 芯片

Win32_ParallelPort, // 并口

Win32_SerialPort, // 串口

Win32_SerialPortConfiguration, // 串口配置

Win32_SoundDevice, // 多媒体设置,一般指声卡。

Win32_SystemSlot, // 主板插槽 (ISA & PCI & AGP)

Win32_USBController, // USB 控制器

Win32_NetworkAdapter, // 网络适配器

Win32_NetworkAdapterConfiguration, // 网络适配器设置

Win32_Printer, // 打印机

Win32_PrinterConfiguration, // 打印机设置

Win32_PrintJob, // 打印机任务

Win32_TCPIPPrinterPort, // 打印机端口

Win32_POTSModem, // MODEM

Win32_POTSModemToSerialPort, // MODEM 端口

Win32_DesktopMonitor, // 显示器

Win32_DisplayConfiguration, // 显卡

Win32_DisplayControllerConfiguration, // 显卡设置

Win32_VideoController, // 显卡细节。

Win32_VideoSettings, // 显卡支持的显示模式。

// 操作系统

Win32_TimeZone, // 时区

Win32_SystemDriver, // 驱动程序

Win32_DiskPartition, // 磁盘分区

Win32_LogicalDisk, // 逻辑磁盘

Win32_LogicalDiskToPartition, // 逻辑磁盘所在分区及始末位置。

Win32_LogicalMemoryConfiguration, // 逻辑内存配置

Win32_PageFile, // 系统页文件信息

Win32_PageFileSetting, // 页文件设置

Win32_BootConfiguration, // 系统启动配置

Win32_ComputerSystem, // 计算机信息简要

Win32_OperatingSystem, // 操作系统信息

Win32_StartupCommand, // 系统自动启动程序

Win32_Service, // 系统安装的服务

Win32_Group, // 系统管理组

Win32_GroupUser, // 系统组帐号

Win32_UserAccount, // 用户帐号

Win32_Process, // 系统进程

Win32_Thread, // 系统线程

Win32_Share, // 共享

Win32_NetworkClient, // 已安装的网络客户端

Win32_NetworkProtocol, // 已安装的网络协议

Win32_PnPEntity,//all device

}

/// <summary>

/// WMI取硬件信息

/// </summary>

/// <param name="hardType"></param>

/// <param name="propKey"></param>

/// <returns></returns>

public static string[] MulGetHardwareInfo(HardwareEnum hardType, string propKey)

{

List<string> strs = new List<string>();

try

{

using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + hardType))

{

var hardInfos = searcher.Get();

foreach (var hardInfo in hardInfos)

{

if (hardInfo.Properties[propKey].Value.ToString().Contains("COM"))

{

strs.Add(hardInfo.Properties[propKey].Value.ToString());

}

}

searcher.Dispose();

}

return strs.ToArray();

}

catch

{

return null;

}

finally

{ strs = null; }

}

//通过WMI获取COM端口

string[] ss = MulGetHardwareInfo(HardwareEnum.Win32_PnPEntity, "Name");

VNC许可证

输入一个有效的密钥:5D7L8-ZQXSA-2L5D4-4UFB4-PWDLA   或77NVU-D9G5T-79ESS-V9Y6X-JMVGA

ELBMU-ZFYMV-2HC77-73M46-UL4TA97KLJ-VBTAL-T7GN2-K29PS-ANXCA45YV6-WXWMJ-NPAAV-HWD7Q-W5HVAL76HR-6428G-Q8JAX-7PSSH-ZWYKAEQ48W-C5MQJ-44A2K-5GB2T-NECWA

win7 反应v

一.搞清楚概念

所谓的映射、转发是针对接收数据的端口而言的,一般用作服务端,要侦听的

应用场景如:原本有个服务程序在PC2上运行,侦听着PC2上的B端口,现在希望在不动PC2及服务程序的前提下,外界能通过PC1的A端口与PC2上服务程序通信,这时就需要用端口映射(端口转发)来解决。

将PC1的A端口映射到PC2的B端口,是指将PC1的A端口收到的数据转发到PC2的B端口。外界都来连PC1的A端口,PC1的A端口只做受理窗口,具体业务处理放在PC2的B端口。其实,PC2的B端仍然能用,就是多了一个受理窗口(PC1的A端口)。

所以端口映射体现的是横向扩展,不是移花接木

二.实现

1.用windows的netsh实现

优点:
(1)部署简单。Windows自带,支持IPv4和IPv6
(2)不用重启机器,还长记性。命令即时生效,重启系统后配置仍然存在.
缺点:
(1)不支持UDP
(2)XP/2003需要先安裝IPV6,Win7以上系统自带.

用法:
下面都是命令行

(1)安装环境支持
netsh interface ipv6 install

(2)查看已配置的“端口映射”清单
netsh interface portproxy show v4tov4

(3)添加“端口映射”
netsh interface portproxy add v4tov4 listenaddress=192.168.222.145 listenport=15001 connectaddress=192.168.222.63 connectport=81
将本机(192.168.222.145)的15001端口映射到192.168.222.63的81端口

(4)删除“端口映射”
netsh interface portproxy delete v4tov4 listenaddress=192.168.222.145 listenport=15001


2.用SSH端口转发实现

好贴:https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/
好例:https://koumm.blog.51cto.com/703525/1318975

IP HELP SERVICE


K2p panduola

这个问题有大神说过了,忘了名字,是无线更新续约的什么问题了,WinSCP登陆找到config下面的wireless.在后面加入下面,我同样的问题是这样解决的.希望你也能解决,现在一直使用L大的这个固件.单线双拨非常稳定.百兆带宽,刚自己换了千兆光猫,
        option wmm ‘0’
        option wpa_group_rekey ‘0’
        option wpa_pair_rekey ‘0’
        option wpa_master_rekey ‘0’

mysql 57.php7

  1. <?php 
  2. $mysqli = new mysqli(“localhost”, “root”, “password”, “testgame”); 
  3. if(!$mysqli)  { 
  4. echo”database error”; 
  5.     }else{ 
  6. echo”php env successful”; 
  7.     } 
  8. $mysqli->close(); 
  9. ?> 

mysql 57 + apache 24+php7 环境搭建 windwos server 2008

php 手动搭建环境

php手动搭建环境有好多种组合,版本号不一致,会导致搭建失败。

我搭建的组合是: php7+MySQL5.7+Apache2.4的组合。

一、PHP语言包下载

首先从官网上下载php5.6 https://windows.php.net/download#php-5.7

选择完整版下载:

二、 Apache服务器下载

首先从官网上下载Apache2.4  https://httpd.apache.org/download.cgi

进入第二个界面,选择第二个选项:

根据电脑的不同,选择相应的位数:

注意有句话:

大体意思是,配置好Apache之后,要运行ApacheMonitor.exe,可能会报缺少dll文件,如果报缺少文件,需要下载这个软件。

下载好Apache2.4之后继续下载MySQL 5.7。

三、MySQL 5.7服务的下载。

我使用的是mysql5.6.17这个版本  官网下载地址: https://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-17.html

可能官网下载会比较慢,也可以直接网上找。

这个文件有两种,一种是安装版(msi结尾的文件),还有一种是免安装版(zip结尾的文件)

两种都可以。

注意:之前数据库里有东西最好备份一下

我使用的是免安装版,自己觉得这个版本产生的错误比较少。下面介绍免安装版的配制方法:

解压到自定义目录,我解压的目录是D:\mysql-5.6.17-winx64

将根目录下的my-default.ini,改名为my.ini,my.ini用下面内容替换全部内容。

[client]

port=3306

default-character-set=utf8

#客户端字符类型,与服务端一致就行,建议utf8

[mysqld]

port=3306

character_set_server=utf8

#服务端字符类型,建议utf8

basedir=D:\LAMP\mysql-5.6.17-winx64

#解压根目录

datadir=D:\LAMP\mysql-5.6.17-winx64\data

#解压根目录\data

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[WinMySQLAdmin]

D:\LAMP\mysql-5.6.17-winx64\bin\mysqld.exe

#解压根目录\bin\mysqld.exe

注意这句话:

1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

这里设置的是,如果要在表里面的某一列添加空数据,不能使用  ”  的方式,必须要写入  NULL  不能加引号。

如果想用 ”  的方式,就把这句话改成:

1

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

环境变量配置

我的电脑-属性-高级-环境变量-新建

变量MYSQL_HOME  值D:\LAMP\mysql-5.6.17-winx64

找到变量path 编辑,在后面加上  ;%MYSQL_HOME%\bin

运行中输入cmd ,或找到C:\Windows\System32\cmd.exe,进入mysql解压目录bin子目录下

1

2

3

4

5

6

7

8

9

C:\Documents and Settings\Administrator>cd\

C:\>d:

D:\>cd LAMP

D:\LAMP>cd mysql-5.6.17-winx64

D:\LAMP\mysql-5.6.17-winx64>cd bin

D:\LAMP\mysql-5.6.17-winx64\bin>

D:\LAMP\mysql-5.6.17-winx64\bin>mysqld -install

提示:Service successfully installed.及即安装成功。

(CMD命令:CD\  返回根目录 D: 进入D盘  cd LAMP  进入LAMP文件夹)

1

2

3

4

5

启动、停止、移出MYSQL服务

启动MYSQL服务:net start mysql

停止MYSQL服务:net stop mysql

移出mysql服务:mysqld -remove

这里启动服务,方便下一步操作。

 这样就配置完了。

如果是msi结尾的文件,安装过程为:

进入这个界面,选择第二个custom设置路径

一路选择默认选项,

这里设置密码。

MySQL安装好后就可以开始配置开发环境了

Apache安装配置

1、将下载的Apache2.4 解压到自定义目录,我这里选择的目录是D盘的AMP目录。

2、打开apache解压目录conf文件夹下的httpd.conf文件:

查找所有的c:Apache24   将其修改为你自己解压的目录,应该有好几个地方需要改,直接使用记事本的替换功能。

替换后再打开cmd命令行,输入httpd -k install再检查一下语法,如下:

如图红色文字显示,则成功。

3、接下来启动apache服务,测试一下是否安装成功,打开apache bin目录下的ApacheMonitor.exe(如果打开提示缺少dll文件,那么就需要安装上面说的VC了,安装后就可以打开这个monitor了),打开后如下:

4、测试

在浏览器中输入localhost回车,看到如下图说明apache安装成功了。

其实浏览器显示的it works是apache默认站点htdocs(其实就位于apache目录下的htdocs文件夹)下的默认主页index.html的内容。自此,apache安装成功,接下来需要配置php,让apache和php一起工作(将php作为apache的一个模块)。

这个文件夹 htdocs 就是作为php文件运行的根目录, 所有php文件都要放在这里面才可以运行。

配置php模块到apache服务器

1、在Apache24/conf/httpd.conf中做如下配置:

在文件最后加入以下代码(注意修改路径):

1

2

3

4

LoadModule php7_module D:\AMP\php-5.6.30-Win32-VC11-x64\php7apache2_4.dll

AddType application/x-httpd-php .php

#LoadModule php5_module modules/libphp5.so

PHPIniDir D:\AMP\php-5.6.30-Win32-VC11-x64

完了后重启apache服务器(修改了配置文件都要重启)。

2、在apache 的htdocs目录建一个php文件,这里叫index.php,在这个文件中写入如下内容:

1

2

3

<?php

echo "hello php world!";

?>

在浏览器中输入localhost/index.php可以看到:

apache配置php成功,然后需要配置做一些php的相关配置及将MySQL配置到php中。

php配置

配置时区:

打开php解压目录,找到php.ini-development文件,将其改名为php.ini,用记事本打开。

找到(带分号)     ;date.timezone =

去掉前面的分好,修改为   date.timezone = Asia/Shanghai

测试:在根目录下的index.php 文件夹中写入以下代码

1

2

3

4

<?php

echo  date("Y:m:d H:i:s");

?>

 浏览器运行如果显示了当前时间,则配置时区成功。

配置mysql

1、打开php.ini文件,查找extension_dir关键字

去掉前面的注释并将ext文件路径改成我们自己的ext路径,即修改为:

1

extension_dir = "D:\AMP\php-5.6.30-Win32-VC11-x64\ext"

 2、在php.int中继续查找php_mysql关键字

将图中两项前面的分号去掉。如果之后在php运行中,缺少扩展,可将相应的内容之前的分号去掉。

3、设置编码:

查找 default_charset =

将其改为:

default_charset = “UTF-8”

至此php环境搭建完成,可以将php文件放入htdocs文件夹中运行了。

MSR路由器双wan线路接入主备自动切换

对于MSR网关,可以使用策略路由和自动侦测实现负载分担和链路备份功能。同样以其中一条WAN连接地址为142.1.1.2/24,网关为142.1.1.1,另外一条WAN连接地址为162.1.1.2/24,网关为162.1.1.1,使用MSR2010做为网关设备为例,配置方法如下:
1、配置自动侦测组,对WAN连接状态进行侦测:
[H3C]nqa agent enable
[H3C]nqa entry wan1 1 
[H3C-nqa-wan1-1]type icmp-echo 
[H3C-nqa-wan1-1-icmp-echo]destination ip 142.1.1.1
[H3C-nqa-wan1-1-icmp-echo]next-hop 142.1.1.1
[H3C-nqa-wan1-1-icmp-echo]probe count 3
[H3C-nqa-wan1-1-icmp-echo]probe timeout 1000
[H3C-nqa-wan1-1-icmp-echo]frequency 10000 
[H3C-nqa-wan1-1-icmp-echo]reaction 1 checked-element probe-fail threshold-type consecutive 6 action-type trigger-only
[H3C]nqa entry wan2 1 
[H3C-nqa-wan2-1]type icmp-echo 
[H3C-nqa-wan2-1-icmp-echo]destination ip 162.1.1.1
[H3C-nqa-wan2-1-icmp-echo]next-hop 162.1.1.1 
[H3C-nqa-wan2-1-icmp-echo]frequency 10000
[H3C-nqa-wan2-1-icmp-echo]probe count 3
[H3C-nqa-wan2-1-icmp-echo]probe timeout 1000
[H3C-nqa-wan2-1-icmp-echo]reaction 1 checked-element probe-fail threshold-type consecutive 6 action-type trigger-only
[H3C]nqa schedule wan1 1 start-time now lifetime forever
[H3C]nqa schedule wan2 1 start-time now lifetime forever
[H3C]track 1 nqa entry wan1 1 reaction 1
[H3C]track 2 nqa entry wan2 1 reaction  1
2、配置默认路由,当任意WAN链路出现故障时,流量可以在另外一条链路上进行转发
[H3C]ip route-static 0.0.0.0 0.0.0.0 142.1.1.1 track 1 preference 60
[H3C]ip route-static 0.0.0.0 0.0.0.0 162.1.1.1 track 2 preference 100