交换机的配置

(1)交换机的模式:

switch>    用户模式,可以查看设备的部分内容

SW-3ceng>enable

SW-3ceng#          进入特权模式,可以查看更多的内容;

SW-3ceng#configure terminal

SW-3ceng(config)#            进入全局配置模式,可以对设备进行配置

SW-3ceng(config)#int g1/0/52

SW-3ceng(config-if)#           接口模式

exit     退出一级

end     直接退到特权模式(ctrl+z)

在特权模式可以使用的命令

show mac-address-table   #查看mac地址表**

clock set 17:07:30 May 14 2019   #设置时间:时分秒,日月年

show ip interface brief    #查看所有接口状态**

(说明:只有当Status和Protocol显示都是“up”时,才能正常通信)

show cdp neighbors     #查看邻居和本地的连接情况**

how history    #查看命令历史

show running-config    #查看交换机当前配置,还没有保存(重启就失效;只是写入了“内存”)

write            #保存配置

copy running-config startup-config    #把running里的配置保存到开机启动配置文件里

show startup-config     #交换机每次开机的时候会自动加载的配置(重启仍然有效;写到了“硬盘”中,做永久存储)

reload       #重启

远程管理的步骤:

第一步:给交换机配置IP

SW1(config)#interface vlan 1

SW1(config-if)#ip address 192.168.1.100 255.255.255.0

SW1(config-if)#no sh

第二步:配置telnet

SW1(config)#line vty 0 4    #0表示第1个虚拟接口;4表示最多允许登录人数

SW1(config-line)#password 123456      #设置远程登录的密码

SW1(config-line)#login     #激活

第三步:进入特权模式的密码

SW1(config)#enable password enable   #password表示的明文密码

SW1(config)#enable secret   enable2     #secret表示密文的密码;如果两个都存在,那么密文生效

给console口做安全配置

SW1(config)#line console 0

SW1(config-line)#exec-timeout 0 0       #设置超时时间,第一个0表示分钟;第二个0表示s;0 0 表示永不超时(仅限于实验环境)

SW1(config-line)#password console     #设置console的登录密码

SW1(config-line)#logging synchronous    #设置光标跟随

SW1(config-line)#login         #激活

SW1(config)#no ip domain-lookup        #关闭域名解析

SW1#erase startup-config          #清空所有配置

ssh配置

conf t

username  test  password  密码

ip domain-name  www.test.com  //域名用来生成公钥和私钥

crypto  key  generate  rsa          //生成一对rsa算法的公钥和私钥

line vty 0 4

transport  input  ssh/all

login local

exit

ssh -l  username  192.168.1.254   //在模拟PC上使用ssh连接设备

路由器的简单配置

Router(config)#int g0/0    #进入物理接口

Router(config-if)#ip address 192.168.1.254 255.255.255.0   #配置IP和子网掩码

Router(config-if)#no sh      #开启接口——默认路由器的所有接口是down的状态

给路由器设置ssh

第一步:指定登录方式并激活

R1(config)#line vty 0 4

R1(config-line)#login local

R1(config-line)#transport input all

第二步:

R1(config)#username R1  password 123456    #设置本地用户名和密码

R1(config)#ip domain-name www.R1.com     #设置本地的域名

R1(config)#crypto key generate rsa        #生成秘钥

第三步:

R1(config)#enable password 123456      #设置进入特权模式的密码

SW2(config)#ip default-gateway 192.168.2.254        #如果交换机也想实现跨网段通信,必须要配置网关

路由器中S口的配置

interface Serial0/2/0

ip address 12.1.1.2 255.255.255.0

clock rate 1000000  #配置客户端的带宽

绑定mac地址:

> arp -s   157.55.85.212   00-aa-00-62-c6-09.... 添加静态项。 # 在PC上

Router(config)#arp   10.0.0.95   0013.240a.b219 arpa f0/0       #路由器上绑定,一般绑定“下联”设备的mac地址

Switch(config)#arp  10.0.0.12  90fb.a695.4445  arpa f0/2       #交换机上绑定

交换机里的“端口安全”,要在接口下开启端口安全

(1)在交换机的某个接口启用端口安全:

Int   f0/1

交换机的端口安全(防止mac地址表泛洪):

Switch(config)#interface f0/1    //进入f0/1接口

Switch(config-if)#switchport mode access        //更改交换机模式为access

Switch(config-if)#switchport port-security          //启动端口安全保护机制

Switch(config-if)#switchport port-security maximum 1           //允许最大学习的mac地址为1

Switch(config-if)#switchport port-security violation shutdown/protect(保护:不学习mac但是也不关闭端口;)/restrict(发送日志,计数增加,但是不关闭端口)

//违反规则接口shutdown

Switch(config-if)#switchport port-security mac-address sticky

//粘滞MAC地址(手工绑定工作量大,所以进行自动学习并黏贴)

show    port-security   //查看安全配置

switchport port-security mac-address 00D0.9752.DB78        //给交换机的接口绑定mac地址;如果是非法的mac,直接接口处于error-dis状态

do  show   int  f0/1                      //查看端口状态

errdiasble   recovery   cause   psecure-violation    //300s以后接口恢复正常状态(非法流量仍然会触发接口关闭)

errdisable   recovery   interval    30         //设置恢复时间30s(手工只有先shut 再no  shut才能开启)

show   errdisable    recovery               //查看恢复状态

show   port-security      //哪些接口开启安全

show   port-security    int    f0/4    //查看某个接口的安全

vlan相关命令

1)查看:

SW1(config)# do show vlan brief    #查看vlan的简要信息

SW1(config)#no   vlan  1

Default VLAN 1 may not be deleted.   #默认vlan1不能被删除

(2)创建和删除vlan的命令

SW1(config)#vlan 20

SW1(config-vlan)#name xiaoshoubu

SW1(config)#no vlan 30

3)把接口加入到vlan

SW1(config)#int f0/1

SW1(config-if)#switchport mode access

SW1(config-if)#switchport access vlan 20

针对多个接口同时操作:

Switch(config)# interface range f0/1 – 10

Switch(config-if-range)# switchport access vlan 20

.Trunk链路

SW1(config)#int f0/5

SW1(config-if)#switchport mode trunk         #把接口加入到trunk

SW1(config-if)#switchport trunk allowed vlan all    #允许所有vlan通过

单臂路由

R1(config)#int f0/0

R1(config-if)#no sh     #物理接口必须开启

R1(config)#int f0/0.3         #进入子接口

R1(config-subif)#encapsulation dot1Q 3    #设置封装格式为802.1q,对应的vlan是vlan3

R1(config-subif)#ip add 192.168.3.254 255.255.255.0    #给子接口设置Ip(网关)

VTP的server模式:

vtp mode server/client/transparent  #设置为server模式,也是交换机的默认模式

vtp domain test     #设置vtp域名为test

vtp password 123   #设置加入域的密码为123

vtp version 2       #设置vtp的版本号为2

ServerClient模式下,VTP的配置信息和vlan信息没有在show  run里,而是存到了Flash里。

Switch#delete flash:/vlan.dat

三层交换机的配置:

(1)     二层接口转换为三层接口:

第一步:创建vlan

3L-1(config)#vlan 10

3L-1(config-vlan)#vlan 30

3L-1(config-vlan)#vlan 20

 

3L-1(config-if)#int vlan 20

3L-1(config-if)#ip add 192.168.20.254 255.255.255.0

3L-1(config-if)#no sh

3L-1(config)#ip routing    #开启路由功能

 

3L-2(config)#int f0/2

3L-2(config-if)#no switchport    #转换为3层接口,直接配IP

3L-2(config-if)#ip add 192.168.40.254 255.255.255.0

3L-2(config-if)#no sh

STP的命令

SW1#show spanning-tree   #显示所有vlan的生成树

SW1#show spanning-tree detail   #查看vlan的详细信息

如果接口配置了Portfast,那么接口会立即(1-3s)进入转发状态。

Switch(config)#int  f0/1

Switch(config-if)#swithport   mode  access

Switch(config-if)#spanning-tree portfast

3L-1(config)#spanning-tree vlan 10 root primary     #配置本交换机为vlan10的主根桥,优先级会自动降低8192(在32768的基础)

3L-1(config)#spanning-tree vlan 20 root secondary  #配置本交换机为vlan20的备份根桥,优先级会自动降低4096(在32768的基础)

以太通道

以太通道:EthernetChannel,增加了链路带宽,提高了容错能力,还有负载均衡的作用。

SW1(config)#int range f0/1 - 2   #进入物理接口

SW1(config-if-range)#channel-group  1 mode on    #设置以太链路为组1,两边的组编号要一致。

SW1(config-if-range)#switchport mode trunk

SW1(config-if-range)#switchport trunk allowed vlan all    #设置为trunk模式,并允许所有vlan通过

SW2#show etherchannel summary   #查看以太通道的结果

HSRP的配置

R1:是vlan10的主

interface FastEthernet0/0.10                  #如果有多个vlan,在路由器上要使用单臂路由(子接口对应vlan信息)

encapsulation dot1Q 10

ip address 192.168.10.100 255.255.255.0      #配置子接口的IP

standby version 2                                                            #HSRP的版本号

standby 10 ip 192.168.10.254                                     #设置HSRP的虚拟IP(PC的网关)

standby 10 priority 105                                        #设置优先级,让本地称为vlan10的Active

standby preempt                                                             #配置抢占模式,只要状态恢复,就要称为Active

standby 0 track FastEthernet0/1                       #配置监控接口,如果接口down,就认为HSRP发生故障;就会切换HSRP的状态

standby 0 track FastEthernet0/0

R2:是vlan10的备份

interface FastEthernet0/0.10

encapsulation dot1Q 10

ip address 192.168.10.200 255.255.255.0

standby version 2

standby 10 ip 192.168.10.254

standby 10 track FastEthernet0/0

standby 10 track FastEthernet0/1

show standby brief   #查看HSRP的简要信息

三层交换机配置HSRP

配置以太通道:

interface FastEthernet0/3

channel-group 1 mode on

switchport trunk encapsulation dot1q

switchport mode trunk

配置HSRP时,看网关在物理接口还是SVI虚接口;网关在哪里,就在哪个接口配置HSRP。

ACL

使用ACL的步骤:

第一步:创建ACL

access-list 10 deny 192.168.1.1  0.0.0.0   // 192.168.1.1  0.0.0.0    代表主机192.168.1.1  ===  host  192.168.1.1

access-list 10 permit host 192.168.1.2

第二步:应用到接口

int  f0/1

ip access-group  1  in/out   ##尽量应用到流量的入接口

扩展ACL:实现基于源目IP、源目端口、基于协议来做数据的过滤;编号100——199

access-list 100 permit tcp host 192.168.1.1 host 192.168.30.1 eq www

access-list 100 permit ip host 192.168.1.1 192.168.20.0 0.0.0.255

access-list 100 deny icmp host 192.168.1.1 host 192.168.30.1

access-list 100 permit tcp host 192.168.1.1 host 192.168.30.1 eq telnet

access-list 100 permit udp host 192.168.1.1 host 192.168.30.1 eq domain

access-list 100 permit tcp host 192.168.1.1 host 192.168.30.1 eq domain

access-list 100 permit tcp host 192.168.1.1 host 192.168.30.1 eq ftp

access-list 100 permit tcp host 192.168.1.1 host 192.168.30.1 eq 20

access-list 100 permit tcp host 192.168.1.1 host 192.168.30.1 established

access-list 100 permit tcp host 192.168.1.1 host 192.168.30.1 range 1024 65535

DHCP配置

客户端和DHCP服务器在同一个网段:直接获取

R2#show run | section dhcp

ip dhcp excluded-address 192.168.10.254         #设置排除地址

ip dhcp pool vlan10            #创建地址池叫vlan10

network 192.168.10.0 255.255.255.0      #设置客户端的网段——作用域

default-router 192.168.10.254           #给客户端设置网关

dns-server 114.114.114.114              #给客户端设置DNS

DHCP命令:

ip   dhcp  pool  vlan10

network   网段   子网

dns-server   114.114.114.114

default-router   192.168.10.254

exit

ip  dhcp  excluded-address   排除地址

NAT:Network  Address  Translation ,作用——把私网地址转换为公网地址;隐藏了真实的内网地址;节省了IPV4地址;把IPv4转化为IPv6。

 静态转换:一对一,一个私网地址对应一个公网地址。

第一步:声明内外接口

int   f0/0

ip  nat  inside

int  f0/1

ip  nat  outside

第二步:设置NAT转换

ip  nat  inside  source  static  内网IP    外网IP

  动态转换:多对多,多个私网IP对应多个公网IP

第一步:声明内外接口

int   f0/0

ip  nat  inside

int  f0/1

ip  nat  outside

第二步:定义上网的网段

access-list  10  permit  192.168.10.0  0.0.0.255

第三步:定义NAT转换

ip  nat  inside  source  list  10   interface  f0/1  overload

4.实验步骤

第一步:

划分vlan和trunk链路

int  f0/1

sw  mode  access

sw  acc  vlan 10

int f0/3

sw  mode trunk

sw  trunk  allow  vlan   all

配置单臂路由:

int  f0/0

no  sh

int  f0/0.10

encapsulation  dot1q  10    #设置封装格式为dot1q,对应的vlan是vlan10

ip   address 192.168.10.254  255.255.255.0    #给子接口配置IP

no   sh

int f0/0.20

encapsulation  dot1q  20

ip address  192.168.20.254 255.255.255.0

no sh

路由器模拟PC的命令

no  ip  routing    #关闭路由功能

int  f0/0

ip   address   192.168.30.30  255.255.255.0

ip default-gateway 192.168.30.254

int  f0/0

ip  address   dhcp    #设置接口地址为dhcp

配置DHCP

ip   dhcp  pool  vlan10

network   网段   子网

dns-server   114.114.114.114

default-router   192.168.10.254

exit

ip  dhcp  excluded-address   排除地址

DHCP中继代理

在客户端对应的网关上配置:

int   f0/0.10

ip  helper-address  192.168.30.30

int   f0/0.20

ip  helper-address  192.168.30.30

第二步:配置NAT

配置PAT:

int   f0/0.10

ip nat inside

int  f0/0.20

ip nat inside

int  e1/0

ip nat outside

ip nat inside source list 10 interface Ethernet1/0 overload

配置Static

int f0/0.30

ip nat inside

ip nat inside source static 192.168.30.30 12.1.1.3

第三步:在右边的LAN中配置access/trunk链路

HSRP配置——解决了网关的冗余问题

R4#show run | s standby

standby 30 ip 192.168.30.254     #配置虚拟IP

standby 30 priority 105          #配置优先级为105,默认为100,谁大谁是主

standby 30 preempt                                    #配置抢占模式

standby 30 track 1 decrement 10   #默认罚值为10,表示接口如果down,那么优先级在100的基础上,减去10

standby 30 track 2 decrement 10   #端口追踪

HSRP的备份路由器配置:

R5#show run | s standby

standby 30 ip 192.168.30.254

standby 30 track 1 decrement 10

standby 30 track 2 decrement 10

注意:内网的路由通信问题。

.RIp的配置

(1)S口模拟公网:‘

int  s2/0

clock  rate   1000000    #在串行链路中,分为DCE(服务端:运营商)和DTE(客户端);时钟频率就是服务端给客户端分配的带宽。

ip   address  12.1.1.2

no   sh

(2)RIP的配置:

router  rip

network   11.1.1.0

(3)查看路由表:

show  ip  route

RIPv2的配置

router  rip

version  2

network    11.1.1.0

no  auto-summary     #关闭自动汇总

RIpv2的认证

enable

conf   t

key    chain     test                       //定义一个钥匙链,两端可以不一样

key     1                      //定义钥匙链上的钥匙(key的ID值必须要要一样)

key-string    cisco                 //设置钥匙密码

int     f0/1

ip     rip       authentication   key-chain  test    //接口使用钥匙链

ip     rip       authentication   mode   md5               //指定接口使用md5

ospf配置

基础配置:

router  ospf   110    #110表示ospf的进程号,本地有效

network   12.1.1.0   0.0.0.255  area  0    #宣告网段,反掩码,区域编号为0;注意区域0是一个特殊区域叫做“骨干区域”,只有相同的区域之间才能通信。

debug  ip  ospf   adj     #查看ospf邻居建立过程

R3#show ip ospf neighbor    #邻居关系表

VPN配置

配置IPsecPVPN

R1的配置

(1)配置第一阶段——秘钥安全性,设置密码

R1(config)#crypto isakmp policy 10       #设置第一阶段,策略编号为10

R1(config-isakmp)#encryption 3des        #设置秘钥的加密方式为3des

R1(config-isakmp)#authentication pre-share    #设置认证方式为预共享秘钥

R1(config-isakmp)#hash md5              #校验秘钥的完整性,使用md5

R1(config-isakmp)#group 2              #使用DH对秘钥交互做二次加密

R1(config-isakmp)#exit

R1(config)#crypto isakmp key 0 cisco address 34.1.1.2   #定义秘钥为cisco;对端的公网Ip是34.1.1.2

(2)配置第二阶段——设置数据加密方式

R1(config)#crypto ipsec transform-set R1-R4 esp-3des esp-md5-hmac    #设置数据的加密方式为3des;使用的协议是ESP;保证数据的完整性是md5

R1(cfg-crypto-trans)#mode tunnel    #数据传输方式为隧道模式

R1(cfg-crypto-trans)#exit

R1(config)#

(3)配置ACL(针对那些数据进行加密——感兴趣流量)

R1(config)#access-list 100 permit ip host 192.168.10.1 host 192.168.20.1

(4)配置Map

R1(config)#crypto map Beijing-Shanghai  10  ipsec-isakmp    #定义策略图map,名字叫做Beijing-Shanghai,编号是10

R1(config-crypto-map)#match address 100     #匹配感兴趣流量

R1(config-crypto-map)#set peer 34.1.1.2                          #匹配对端的公网地址

R1(config-crypto-map)#set transform-set R1-R4   #关联转换集

(5)应用到接口

R1(config)#int e1/0

R1(config-if)#crypto map Beijing-Shanghai

R4的配置:

(1)配置第一阶段——秘钥安全性,设置密码

R4(config)#crypto isakmp policy 10

R4(config-isakmp)#encryption 3des

R4(config-isakmp)#hash md5

R4(config-isakmp)#authentication pre-share

R4(config-isakmp)#group 2

R4(config-isakmp)#exit

R4(config)#crypto isakmp key 0 cisco address 12.1.1.1

(2)配置第二阶段——设置数据加密方式

R4(config)#crypto ipsec transform-set R4-R1 esp-3des esp-md5-hmac

R4(cfg-crypto-trans)#mode tunnel

(3)配置ACL(针对那些数据进行加密——感兴趣流量)

R4(config)#access-list 100 permit ip host 192.168.20.1 host 192.168.10.1

(4)配置Map

R4(config)#crypto map Shanghai-Beijing 10 ipsec-isakmp

R4(config-crypto-map)#match add 100

R4(config-crypto-map)#set peer 12.1.1.1

R4(config-crypto-map)#set transform-set R4-R1

R4(config-crypto-map)#exit

(5)应用到接口

R4(config)#int e1/1

R4(config-if)#crypto map Shanghai-Beijing

R4(config-if)#exit

检查命令:

R2#show crypto isakmp policy    #第一阶段

Global IKE policy

Protection suite of priority 10

encryption algorithm:   Three key triple DES

hash algorithm:         Message Digest 5

authentication method:  Pre-Shared Key

Diffie-Hellman group:   #2 (1024 bit)

lifetime:               86400 seconds, no volume limit

R2#show crypto isakmp sa    #第一阶段的协商状态,Active是协商成功

IPv4 Crypto ISAKMP SA

dst             src             state          conn-id status

34.1.1.2        12.1.1.1        QM_IDLE           1001 ACTIVE

R2#show crypto ipsec transform-set   #查看第二阶段的 转换集

Transform set default: { esp-aes esp-sha-hmac  }    #默认转换集

will negotiate = { Transport,  },

Transform set BJ-TJ: { esp-3des esp-md5-hmac  }    #自定义的转换集

will negotiate = { Tunnel,  },

R2#show crypto map   #查看策略图

R2#show    crypto    engine    connections   active  #查看加密和解密数据包的数量

网络简要<入门篇>对应配置代码的更多相关文章

  1. 网络简要<入门篇>

    OSI七层 网络的含义:两个不在同一地理位置的主机(终端),通过传输介质和通信协议,实现通信和资源共享. 网络四要素:终端,传输介质 ,通信协议,资源 网络分类: 以范围分类:LAN网(局域网,以太网 ...

  2. Python网络爬虫入门篇

    1.  预备知识 学习者需要预先掌握Python的数字类型.字符串类型.分支.循环.函数.列表类型.字典类型.文件和第三方库使用等概念和编程方法. 2. Python爬虫基本流程 a. 发送请求 使用 ...

  3. Spring课程 Spring入门篇 5-3 配置切入点 pointcut

    1 解析 1.1 xml常见的配置切入点写法 2 代码演练 2.1 xml配置切入点   1 解析 1.1 xml常见的配置切入点写法 2 代码演练 2.1 xml配置切入点 xml配置: <? ...

  4. Spring课程 Spring入门篇 5-2 配置切面aspect

    本节主要讲了在xml中配置切面的demo 1 解析 1.1 配置切面xml 1.2 配置切面xml 1.3 问:什么是动态代理? 2 代码演练 2.1 配置切面xml 1 解析 1.1 配置切面xml ...

  5. Python 基础教程 —— 网络爬虫入门篇

    前言 Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言,它由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年.自面世以后,Pytho ...

  6. PHP学习总结(2)——PHP入门篇之PHP代码标识

    认识PHP代码标识 想在页面中编写PHP​代码非常容易,如下面代码: <?php echo "想学习php吗?来慕课网吧";?> 就像你可以编写JavaScript脚本 ...

  7. Hadoop基础-MapReduce入门篇之编写简单的Wordcount测试代码

    Hadoop基础-MapReduce入门篇之编写简单的Wordcount测试代码 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本文主要是记录一写我在学习MapReduce时的一些 ...

  8. Sping Boot入门到实战之入门篇(三):Spring Boot属性配置

    该篇为Sping Boot入门到实战系列入门篇的第三篇.介绍Spring Boot的属性配置.   传统的Spring Web应用自定义属性一般是通过添加一个demo.properties配置文件(文 ...

  9. Sping Boot入门到实战之入门篇(四):Spring Boot自动化配置

    该篇为Sping Boot入门到实战系列入门篇的第四篇.介绍Spring Boot自动化配置的基本原理与实现.   Spring Boot之所以受开发者欢迎, 其中最重要的一个因素就是其自动化配置特性 ...

随机推荐

  1. BUPT2017 wintertraining(16) #9

    龟速补题.目前基本弃坑.已暂时放弃 D.I 两题. 下面不再写题意了直接说解法注意事项之类,直接放contest链接. https://vjudge.net/contest/151537 A.The ...

  2. CentOS7版本的新特性

    综述 XFS  比 EXT 4更适合大文件处理,但消耗的CPU资源是EXT4的两倍 XFS 最大支持单文件16TB ,EXT4:50TB 最小1GB/建议每个逻辑CPU 1GB 逻辑CPU:核数,而非 ...

  3. Struts2 Action重启偶尔404 偶尔正常

    这是一个痛苦的教训 因想懒省事,复制module.action  到product.action  跟user.action 然后修改代码内容  ,最痛苦的是  还用查找替换功能进行全部文字替换  , ...

  4. readl()和writel()

    writel() 往内存映射的 I/O 空间上写数据,wirtel() I/O 上写入 32 位数据 (4字节). 原型: 引用 #include <asm/io.h> void writ ...

  5. 可拖动的div——demo

    可拖动的div——demo 我们经常会遇到这样的注册界面 我们以前经常可以遇到这种需要注册的网站,如上图: 上图有一个特点,即是上述注册框其实是一个div,同时可以拖动,以下做一个简单的实例,就可以实 ...

  6. OpenCV摄像头读取

    在Mac下面使用默认的OpenCV读取摄像头程序会报错 int main(int, char**) { VideoCapture cap(0); // open the default camera ...

  7. W5500中断寄存器的理解

    W5500中断部分,W5500中文手冊V1.0 写的不够清楚,该文是本人结合中英文手冊及自己理解,整理出有关中断部分的理解,如有不对的请指正. 一:引脚 INTn 为中断输出(Interrupt ou ...

  8. IntelliJ IDEA 16 EAP新特性一览

    IntelliJ IDEA 16 EAP新特性一览 作者:chszs,未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs IntelliJ I ...

  9. ios 使用Safari浏览器跳转打开、唤醒app

    常常使用Safari浏览器浏览网页点击url会唤醒该站点的手机版app 须要在app的project中设置 1.打开project中的myapp-Info.plist文件 2.打开文件里新增URL T ...

  10. 大型项目开发: 隔离 (《大规模C++程序设计》书摘)

    书中第六章 隔离. 主要在撰述什么须要定义在头文件?什么应当移到编译单元中? 核心仍然是先区分接口定义与实现细节.实现细节的改变会导致客户代码的又一次编译,从逻辑上也表示与客户代码间可能存在着强耦合. ...