时空主站

嗨,我是时空,一名来自中国的开发者。

0%

reg add HKLM\SYSTEM\Setup\LabConfig /v BypassTPMCheck /d 1 /t reg_dword /f
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassSecureBootCheck /d 1 /t reg_dword /f

reg add HKLM\SYSTEM\Setup\LabConfig /v BypassStorageCheck /d 1 /t reg_dword /f
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassRAMCheck /d 1 /t reg_dword /f

Latest Oracle Java 8 Server-JRE:

docker pull anapsix/alpine-java:latest

docker pull anapsix/alpine-java:8

docker pull anapsix/alpine-java:8_server-jre

docker pull anapsix/alpine-java:8_server-jre_unlimited

Latest Oracle Java 8 JDK (plus DCEVM variant)

docker pull anapsix/alpine-java:8_jdk

docker pull anapsix/alpine-java:8_jdk_unlimited

docker pull anapsix/alpine-java:8_jdk-dcevm

docker pull anapsix/alpine-java:8_jdk-dcevm_unlimited

打开用户文件夹,找到下列配置文件

1
2
3
wubi98_ci.schema.yaml
wubi98_dz.schema.yaml
wubi98_U.schema.yaml

打开拼音new_hide_pinyin

1
2
- name: new_hide_pinyin
reset: 0

打开补全设置translator-enable_completion

1
2
translator:
enable_completion: true

关闭四码自动上屏speller-auto_select

1
2
speller:
auto_select: false

世界上有个恶心的公司叫Sangfor,开发出了恶心的工具EasyConnect,本来这东西都是给在校的学生用的,好不好用都无所谓。但是很多公司也开始使用这个来访问内网,并且还不支持Linux(反正到目前Ubuntu下的64bit版本连接就没成功过),这就很令人讨厌了。回想起Ubuntu下使用Wine安装微信的种种难受,决定还是使用Windows虚拟机开启EasyConnect,并把部分的Linux流量打进虚拟机。

1. 虚拟机配置

虚拟机需要两块网卡,其中一块必须是Host-only类型的,用来和Linux主机通信,这块儿网卡是内网流量的入口,所以必须配置。另一块可以是NAT,也可以是Bridge,随个人喜好。

img

2. Windows虚拟机网络配置

进到Windows虚拟机以后,打开网络适配器设置,这时候可以看到两张网卡: Ethernet0和Ethernet1,找到Host-only那张网卡,并修改其名称为Host,起一个有意义的名称对后面的操作非常有帮助。如果不确定哪张网卡是Host-only的话,可以对比网卡的MAC地址和虚拟机网络配置中的MAC地址。

img

开启EasyConnect,并建立与内网的连接,此时会多出一张名为”以太网”的网卡,这张网卡的IP地址子网掩码什么的都可以不用管,就是张工具卡。设置该网络的共享属性,和前面建立的Host-only网卡建立共享。

img

设置完成以后会发现Host-only那张网卡的IP地址被强制更改成了192.168.137.1,改了就改了吧,也不是不能用。

并关闭Windows的公用网络防火墙,不然数据包会被防火墙拦截。

3. 设置Linux路由规则

1
2
sudo ip a add 192.168.137.2/24 dev vmnet1
sudo ip r add 10.0.0.0/8 via 192.168.137.1

给vmnet1,也就是Host-only网卡添加一个和192.168.137.2相同IP地址段的IP地址,使Linux能够建立正常的路由转发规则,否则Linux主机根本就不知道192.168.137.1这个IP地址是谁的。然后将所有的内网(10.0.0.0/8)请求都通过192.168.137.1走Windows的内网网络。

4. Windows安装CCProxy

对于某些需要域名解析的HTTP请求,又不想用dnsmasq去自己解析DNS,就可以直接用该工具进行转发,下载、安装和使用傻瓜式操作,完美,非常适合我这种智商不高的人。

安装完成以后设置下本机局域网IP地址,选择NAT或者是Bridge的那张网卡即可:

img

由于我的Chrome用了SwitchOmega,并不想牺牲某些便利,所以使用Firefox进行代理设置,内网的HTTP请求以后就用Firefox发送,流量使用分明,代理配置也尽量分开。

Firefox中输入about:preferences,拉到最底下,选择Network Settings,就可以进行代理设置了。

CCProxy的HTTP协议默认端口为808,IP地址则是NAT或者Bridge网卡的IP地址,进行配置即可:

img

需要注意的是FTP端口为2121,SOCKS端口为1080,因为我不需要这两个协议,所以并没有配置。

完)

来源smartkeyerror

今天尝试使用PowerShell代替cmd,运行命令时,提示:

hexo : 无法加载文件 ***。未对文件 *** 进行数字签名。无法在当前系统上运行该脚本。有关运行脚本和设置执行策略的详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

解决方法

管理员运行

1
set-executionpolicy Bypass

一、为什么需要VLAN

1.1、什么是VLAN?

VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。

在此让我们先复习一下广播域的概念。广播域,指的是广播帧(目标MAC地址全部为1)所能传递到的范围,亦即能够直接通信的范围。严格地说,并不仅仅是广播帧,多播帧(Multicast Frame)和目标不明的单播帧(Unknown Unicast Frame)也能在同一个广播域中畅行无阻。

本来,二层交换机只能构建单一的广播域,不过使用VLAN功能后,它能够将网络分割成多个广播域。

1.2、未分割广播域时将会发生什么?

那么,为什么需要分割广播域呢?那是因为,如果仅有一个广播域,有可能会影响到网络整体的传输性能。具体原因,请参看附图加深理解。

1526040463983581

图中,是一个由5台二层交换机(交换机1~5)连接了大量客户机构成的网络。假设这时,计算机A需要与计算机B通信。在基于以太网的通信中,必须在数据帧中指定目标MAC地址才能正常通信,因此计算机A必须先广播“ARP请求(ARP Request)信息”,来尝试获取计算机B的MAC地址。

交换机1收到广播帧(ARP请求)后,会将它转发给除接收端口外的其他所有端口,也就是Flooding了。接着,交换机2收到广播帧后也会Flooding。交换机3、4、5也还会Flooding。最终ARP请求会被转发到同一网络中的所有客户机上。

1526040473194151

请大家注意一下,这个ARP请求原本是为了获得计算机B的MAC地址而发出的。也就是说:只要计算机B能收到就万事大吉了。可是事实上,数据帧却传遍整个网络,导致所有的计算机都收到了它。如此一来,一方面广播信息消耗了网络整体的带宽,另一方面,收到广播信息的计算机还要消耗一部分CPU时间来对它进行处理。造成了网络带宽和CPU运算能力的大量无谓消耗。

1.3、广播信息是那么经常发出的吗?

读到这里,你也许会问:广播信息真是那么频繁出现的吗?

答案是:是的!实际上广播帧会非常频繁地出现。利用TCP/IP协议栈通信时,除了前面出现的ARP外,还有可能需要发出DHCP、RIP等很多其他类型的广播信息。

ARP广播,是在需要与其他主机通信时发出的。当客户机请求DHCP服务器分配IP地址时,就必须发出DHCP的广播。而使用RIP作为路由协议时,每隔30秒路由器都会对邻近的其他路由器广播一次路由信息。RIP以外的其他路由协议使用多播传输路由信息,这也会被交换机转发(Flooding)。除了TCP/IP以外,NetBEUI、IPX和Apple Talk等协议也经常需要用到广播。例如在Windows下双击打开“网络计算机”时就会发出广播(多播)信息。(Windows XP除外……)

总之,广播就在我们身边。下面是一些常见的广播通信:

■ ARP请求:建立IP地址和MAC地址的映射关系。

■ RIP:一种路由协议。

■ DHCP:用于自动设定IP地址的协议。

■ NetBEUI:Windows下使用的网络协议。

■ IPX:Novell Netware使用的网络协议。

■ Apple Talk:苹果公司的Macintosh计算机使用的网络协议。

如果整个网络只有一个广播域,那么一旦发出广播信息,就会传遍整个网络,并且对网络中的主机带来额外的负担。因此,在设计LAN时,需要注意如何才能有效地分割广播域。

1.4、广播域的分割与VLAN的必要性

分割广播域时,一般都必须使用到路由器。使用路由器后,可以以路由器上的网络接口(LAN Interface)为单位分割广播域。

但是,通常情况下路由器上不会有太多的网络接口,其数目多在1~4个左右。随着宽带连接的普及,宽带路由器(或者叫IP共享器)变得较为常见,但是需要注意的是,它们上面虽然带着多个(一般为4个左右)连接LAN一侧的网络接口,但那实际上是路由器内置的交换机,并不能分割广播域。

况且使用路由器分割广播域的话,所能分割的个数完全取决于路由器的网络接口个数,使得用户无法自由地根据实际需要分割广播域。

与路由器相比,二层交换机一般带有多个网络接口。因此如果能使用它分割广播域,那么无疑运用上的灵活性会大大提高。

用于在二层交换机上分割广播域的技术,就是VLAN。通过利用VLAN,我们可以自由设计广播域的构成,提高网络设计的自由度。

二、实现VLAN的机制

2.1、实现VLAN的机制

在理解了“为什么需要VLAN”之后,接下来让我们来了解一下交换机是如何使用VLAN分割广播域的。

首先,在一台未设置任何VLAN的二层交换机上,任何广播帧都会被转发给除接收端口外的所有其他端口(Flooding)。例如,计算机A发送广播信息后,会被转发给端口2、3、4。

1526042559396784

这时,如果在交换机上生成红、蓝两个VLAN;同时设置端口1、2属于红色VLAN、端口3、4属于蓝色VLAN。再从A发出广播帧的话,交换机就只会把它转发给同属于一个VLAN的其他端口——也就是同属于红色VLAN的端口2,不会再转发给属于蓝色VLAN的端口。

同样,C发送广播信息时,只会被转发给其他属于蓝色VLAN的端口,不会被转发给属于红色VLAN的端口。

1526042567117709

就这样,VLAN通过限制广播帧转发的范围分割了广播域。上图中为了便于说明,以红、蓝两色识别不同的VLAN,在实际使用中则是用“VLAN ID”来区分的。

2.2、直观地描述VLAN

如果要更为直观地描述VLAN的话,我们可以把它理解为将一台交换机在逻辑上分割成了数台交换机。在一台交换机上生成红、蓝两个VLAN,也可以看作是将一台交换机换做一红一蓝两台虚拟的交换机。

1526043219532682

在红、蓝两个VLAN之外生成新的VLAN时,可以想象成又添加了新的交换机。

但是,VLAN生成的逻辑上的交换机是互不相通的。因此,在交换机上设置VLAN后,如果未做其他处理,VLAN间是无法通信的。

明明接在同一台交换机上,但却偏偏无法通信——这个事实也许让人难以接受。但它既是VLAN方便易用的特征,又是使VLAN令人难以理解的原因。

2.3、需要VLAN间通信时怎么办?

那么,当我们需要在不同的VLAN间通信时又该如何是好呢?

请大家再次回忆一下:VLAN是广播域。而通常两个广播域之间由路由器连接,广播域之间来往的数据包都是由路由器中继的。因此,VLAN间的通信也需要路由器提供中继服务,这被称作“VLAN间路由”。

VLAN间路由,可以使用普通的路由器,也可以使用三层交换机。其中的具体内容,等有机会再细说吧。在这里希望大家先记住不同VLAN间互相通信时需要用到路由功能。

三、VLAN的访问链接

3.1、交换机的端口

交换机的端口,可以分为以下两种:

■ 访问链接(Access Link)

■ 汇聚链接(Trunk Link)

接下来就让我们来依次学习这两种不同端口的特征。这一讲,首先学习“访问链接”。

3.2、访问链接

访问链接,指的是“只属于一个VLAN,且仅向该VLAN转发数据帧”的端口。在大多数情况下,访问链接所连的是客户机。

通常设置VLAN的顺序是:

●生成VLAN

●设定访问链接(决定各端口属于哪一个VLAN)

设定访问链接的手法,可以是事先固定的、也可以是根据所连的计算机而动态改变设定。前者被称为“静态VLAN”、后者自然就是“动态VLAN”了。

3.2.1、静态VLAN

静态VLAN又被称为基于端口的VLAN(Port Based VLAN)。顾名思义,就是明确指定各端口属于哪个VLAN的设定方法。

1526043958247483

由于需要一个个端口地指定,因此当网络中的计算机数目超过一定数字(比如数百台)后,设定操作就会变得烦杂无比。并且,客户机每次变更所连端口,都必须同时更改该端口所属VLAN的设定——这显然静态VLAN不适合那些需要频繁改变拓补结构的网络。

3.2.2、动态VLAN

另一方面,动态VLAN则是根据每个端口所连的计算机,随时改变端口所属的VLAN。这就可以避免上述的更改设定之类的操作。动态VLAN可以大致分为3类:

● 基于MAC地址的VLAN(MAC Based VLAN)

● 基于子网的VLAN(Subnet Based VLAN)

● 基于用户的VLAN(User Based VLAN)

其间的差异,主要在于根据OSI参照模型哪一层的信息决定端口所属的VLAN。

①、基于MAC地址的VLAN,就是通过查询并记录端口所连计算机上网卡的MAC地址来决定端口的所属。假定有一个MAC地址“A”被交换机设定为属于VLAN“10”,那么不论MAC地址为“A”的这台计算机连在交换机哪个端口,该端口都会被划分到VLAN10中去。计算机连在端口1时,端口1属于VLAN10;而计算机连在端口2时,则是端口2属于VLAN10。

1526044729117016

②、基于子网的VLAN,则是通过所连计算机的IP地址,来决定端口所属VLAN的。不像基于MAC地址的VLAN,即使计算机因为交换了网卡或是其他原因导致MAC地址改变,只要它的IP地址不变,就仍可以加入原先设定的VLAN。

因此,与基于MAC地址的VLAN相比,能够更为简便地改变网络结构。IP地址是OSI参照模型中第三层的信息,所以我们可以理解为基于子网的VLAN是一种在OSI的第三层设定访问链接的方法。

③、基于用户的VLAN,则是根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个VLAN。这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是Windows域中使用的用户名。这些用户名信息,属于OSI第四层以上的信息。

总的来说,决定端口所属VLAN时利用的信息在OSI中的层面越高,就越适于构建灵活多变的网络。

3.2.3、访问链接的总结

综上所述,设定访问链接的手法有静态VLAN和动态VLAN两种,其中动态VLAN又可以继续细分成几个小类。

其中基于子网的VLAN和基于用户的VLAN有可能是网络设备厂商使用独有的协议实现的,不同厂商的设备之间互联有可能出现兼容性问题;因此在选择交换机时,一定要注意事先确认。

下表总结了静态VLAN和动态VLAN的相关信息。

种类

解说

静态VLAN(基于端口的VLAN)

 将交换机的各端口固定指派给VLAN

动态VLAN

 基于MAC地址的VLAN

 根据各端口所连计算机的MAC地址设定

 基于子网的VLAN

 根据各端口所连计算机的IP地址设定

 基于用户的VLAN

 根据端口所连计算机上登录用户设定

四、VLAN的汇聚链接

4.1、设置跨越多台交换机的VLAN

到此为止,我们学习的都是使用单台交换机设置VLAN时的情况。那么,如果需要设置跨越多台交换机的VLAN时又如何呢?

在规划企业级网络时,很有可能会遇到隶属于同一部门的用户分散在同一座建筑物中的不同楼层的情况,这时可能就需要考虑到如何跨越多台交换机设置VLAN的问题了。假设有如下图所示的网络,且需要将不同楼层的A、C和B、D设置为同一个VLAN。

1526047424624849

这时最关键的就是“交换机1和交换机2该如何连接才好呢?”

最简单的方法,自然是在交换机1和交换机2上各设一个红、蓝VLAN专用的接口并互联了。

1526047433285757

但是,这个办法从扩展性和管理效率来看都不好。例如,在现有网络基础上再新建VLAN时,为了让这个VLAN能够互通,就需要在交换机间连接新的网线。建筑物楼层间的纵向布线是比较麻烦的,一般不能由基层管理人员随意进行。并且,VLAN越多,楼层间(严格地说是交换机间)互联所需的端口也越来越多,交换机端口的利用效率低是对资源的一种浪费、也限制了网络的扩展。

为了避免这种低效率的连接方式,人们想办法让交换机间互联的网线集中到一根上,这时使用的就是汇聚链接(Trunk Link)。

4.2、何谓汇聚链接?

汇聚链接(Trunk Link)指的是能够转发多个不同VLAN的通信的端口。

汇聚链路上流通的数据帧,都被附加了用于识别分属于哪个VLAN的特殊信息。

现在再让我们回过头来考虑一下刚才那个网络如果采用汇聚链路又会如何呢?用户只需要简单地将交换机间互联的端口设定为汇聚链接就可以了。这时使用的网线还是普通的UTP线,而不是什么其他的特殊布线。图例中是交换机间互联,因此需要用交叉线来连接。

接下来,让我们具体看看汇聚链接是如何实现跨越交换机间的VLAN的。

①、A发送的数据帧从交换机1经过汇聚链路到达交换机2时,在数据帧上附加了表示属于红色VLAN的标记。

②、交换机2收到数据帧后,经过检查VLAN标识发现这个数据帧是属于红色VLAN的。

③、因此去除标记后根据需要将复原的数据帧只转发给其他属于红色VLAN的端口。

这时的转送,是指经过确认目标MAC地址并与MAC地址列表比对后只转发给目标MAC地址所连的端口。

只有当数据帧是一个广播帧、多播帧或是目标不明的帧时,它才会被转发到所有属于红色VLAN的端口。

同理,蓝色VLAN发送数据帧时的情形也与此相同。

1526048203629321

通过汇聚链路时附加的VLAN识别信息,有可能支持标准的“IEEE 802.1Q”协议,也可能是Cisco产品独有的“ISL(Inter Switch Link)”。如果交换机支持这些规格,那么用户就能够高效率地构筑横跨多台交换机的VLAN。

另外,汇聚链路上流通着多个VLAN的数据,自然负载较重。因此,在设定汇聚链接时,有一个前提就是必须支持100Mbps以上的传输速度。

另外,默认条件下,汇聚链接会转发交换机上存在的所有VLAN的数据。换一个角度看,可以认为汇聚链接(端口)同时属于交换机上所有的VLAN。由于实际应用中很可能并不需要转发所有VLAN的数据,因此为了减轻交换机的负载、也为了减少对带宽的浪费,我们可以通过用户设定限制能够经由汇聚链路互联的VLAN。

关于IEEE802.1Q和ISL的具体内容,将在下一讲中提到。

五、VLAN的汇聚方式(IEEE802.1Q与ISL)

5.1、汇聚方式

在交换机的汇聚链接上,可以通过对数据帧附加VLAN信息,构建跨越多台交换机的VLAN。

附加VLAN信息的方法,最具有代表性的有:

● IEEE802.1Q

● ISL

现在就让我们看看这两种协议分别如何对数据帧附加VLAN信息。

5.2、IEEE802.1Q

IEEE802.1Q,俗称“Dot One Q”,是经过IEEE认证的对数据帧附加VLAN识别信息的协议。

在此,请大家先回忆一下以太网数据帧的标准格式。

IEEE802.1Q所附加的VLAN识别信息,位于数据帧中“发送源MAC地址”与“类别域(Type Field)”之间。具体内容为2字节的TPID和2字节的TCI,共计4字节。

在数据帧中添加了4字节的内容,那么CRC值自然也会有所变化。这时数据帧上的CRC是插入TPID、TCI后,对包括它们在内的整个数据帧重新计算后所得的值。

1526049200329406

而当数据帧离开汇聚链路时,TPID和TCI会被去除,这时还会进行一次CRC的重新计算。

TPID的值,固定为0x8100。交换机通过TPID,来确定数据帧内附加了基于IEEE802.1Q的VLAN信息。而实质上的VLAN ID,是TCI中的12位元。由于总共有12位,因此最多可供识别4096个VLAN。

基于IEEE802.1Q附加的VLAN信息,就像在传递物品时附加的标签。因此,它也被称作“标签型VLAN(Tagging VLAN)”。

5.3、ISL(Inter Switch Link)

ISL,是Cisco产品支持的一种与IEEE802.1Q类似的、用于在汇聚链路上附加VLAN信息的协议。

使用ISL后,每个数据帧头部都会被附加26字节的“ISL包头(ISL Header)”,并且在帧尾带上通过对包括ISL包头在内的整个数据帧进行计算后得到的4字节CRC值。换而言之,就是总共增加了30字节的信息。

在使用ISL的环境下,当数据帧离开汇聚链路时,只要简单地去除ISL包头和新CRC就可以了。由于原先的数据帧及其CRC都被完整保留,因此无需重新计算CRC。

1526049224477632

ISL有如用ISL包头和新CRC将原数据帧整个包裹起来,因此也被称为“封装型VLAN(Encapsulated VLAN)”。

需要注意的是,不论是IEEE802.1Q的“Tagging VLAN”,还是ISL的“Encapsulated VLAN”,都不是很严密的称谓。不同的书籍与参考资料中,上述词语有可能被混合使用,因此需要大家在学习时格外注意。

并且由于ISL是Cisco独有的协议,因此只能用于Cisco网络设备之间的互联。

六、VLAN间路由

6.1、VLAN间路由的必要性

根据目前为止学习的知识,我们已经知道两台计算机即使连接在同一台交换机上,只要所属的VLAN不同就无法直接通信。

接下来我们将要学习的就是如何在不同的VLAN间进行路由,使分属不同VLAN的主机能够互相通信。

首先,先来复习一下为什么不同VLAN间不通过路由就无法通信。在LAN内的通信,必须在数据帧头中指定通信目标的MAC地址。而为了获取MAC地址,TCP/IP协议下使用的是ARP。ARP解析MAC地址的方法,则是通过广播。也就是说,如果广播报文无法到达,那么就无从解析MAC地址,亦即无法直接通信。

计算机分属不同的VLAN,也就意味着分属不同的广播域,自然收不到彼此的广播报文。因此,属于不同VLAN的计算机之间无法直接互相通信。为了能够在VLAN间通信,需要利用OSI参照模型中更高一层——网络层的信息(IP地址)来进行路由。关于路由的具体内容,以后有机会再详细解说吧。

路由功能,一般主要由路由器提供。但在今天的局域网里,我们也经常利用带有路由功能的交换机——三层交换机(Layer 3 Switch)来实现。接下来就让我们分别看看使用路由器和三层交换机进行VLAN间路由时的情况。

6.2、使用路由器进行VLAN间路由

在使用路由器进行VLAN间路由时,与构建横跨多台交换机的VLAN时的情况类似,我们还是会遇到“该如何连接路由器与交换机”这个问题。路由器和交换机的接线方式,大致有以下两种:

● 将路由器与交换机上的每个VLAN分别连接

● 不论VLAN有多少个,路由器与交换机都只用一条网线连接

①、最容易想到的,当然还是“把路由器和交换机以VLAN为单位分别用网线连接”了。将交换机上用于和路由器互联的每个端口设为访问链接,然后分别用网线与路由器上的独立端口互联。如下图所示,交换机上有2个VLAN,那么就需要在交换机上预留2个端口用于与路由器互联;路由器上同样需要有2个端口;两者之间用2条网线分别连接。

1526050224982329

如果采用这个办法,大家应该不难想象它的扩展性很成问题。每增加一个新的VLAN,都需要消耗路由器的端口和交换机上的访问链接,而且还需要重新布设一条网线。而路由器,通常不会带有太多LAN接口的。新建VLAN时,为了对应增加的VLAN所需的端口,就必须将路由器升级成带有多个LAN接口的高端产品,这部分成本、还有重新布线所带来的开销,都使得这种接线法成为一种不受欢迎的办法。

②、那么,第二种办法“不论VLAN数目多少,都只用一条网线连接路由器与交换机”呢?当使用一条网线连接路由器与交换机、进行VLAN间路由时,需要用到汇聚链接。

具体实现过程为:首先将用于连接路由器的交换机端口设为汇聚链接,而路由器上的端口也必须支持汇聚链路。双方用于汇聚链路的协议自然也必须相同。接着在路由器上定义对应各个VLAN的“子接口(Sub Interface)”。尽管实际与交换机连接的物理端口只有一个,但在理论上我们可以把它分割为多个虚拟端口。

1526050277516069

VLAN将交换机从逻辑上分割成了多台,因而用于VLAN间路由的路由器,也必须拥有分别对应各个VLAN的虚拟接口。

采用这种方法的话,即使之后在交换机上新建VLAN,仍只需要一条网线连接交换机和路由器。用户只需要在路由器上新设一个对应新VLAN的子接口就可以了。

与前面的方法相比,这种方法扩展性要强得多,也不用担心需要升级LAN接口数不足的路由器或是重新布线。

6.3、同一VLAN内的通信时数据的流程

接下来,我们继续学习使用汇聚链路连接交换机与路由器时,VLAN间路由是如何进行的。如下图所示,为各台计算机以及路由器的子接口设定IP地址。

1526052200566792

红色VLAN(VLAN ID=1)的网络地址为192.168.1.0/24,蓝色VLAN(VLAN ID=2)的网络地址为192.168.2.0/24。各计算机的MAC地址分别为A/B/C/D,路由器汇聚链接端口的MAC地址为R。交换机通过对各端口所连计算机MAC地址的学习,生成如下的MAC地址列表。

端口 MAC地址 VLAN
1 A 1
2 B 1
3 C 2
4 D 2
5
6 R 汇聚

首先考虑计算机A与同一VLAN内的计算机B之间通信时的情形。

(1)、计算机A发出ARP请求信息,请求解析B的MAC地址。

(2)、交换机收到数据帧后,检索MAC地址列表中与收信端口同属一个VLAN的表项。

(3)、结果发现,计算机B连接在端口2上,于是交换机将数据帧转发给端口2,最终计算机B收到该帧。

收发信双方同属一个VLAN之内的通信,一切处理均在交换机内完成。

1526051862515858

6.4、不同VLAN间通信时数据的流程

接下来是这一讲的核心内容,不同VLAN间的通信。让我们来考虑一下计算机A与计算机C之间通信时的情况。

1526051923943124

(1)、计算机A从通信目标的IP地址(192.168.2.1)得出C与本机不属于同一个网段。因此会向设定的默认网关(Default Gateway,GW)转发数据帧。在发送数据帧之前,需要先用ARP获取路由器的MAC地址。

(2)、得到路由器的MAC地址R后,接下来就是按图中所示的步骤发送往C去的数据帧。①的数据帧中,目标MAC地址是路由器的地址R、但内含的目标IP地址仍是最终要通信的对象C的地址。这一部分的内容,涉及到局域网内经过路由器转发时的通信步骤,有机会再详细解说吧。

(3)、交换机在端口1上收到①的数据帧后,检索MAC地址列表中与端口1同属一个VLAN的表项。由于汇聚链路会被看作属于所有的VLAN,因此这时交换机的端口6也属于被参照对象。这样交换机就知道往MAC地址R发送数据帧,需要经过端口6转发。

从端口6发送数据帧时,由于它是汇聚链接,因此会被附加上VLAN识别信息。由于原先是来自红色VLAN的数据帧,因此如图中②所示,会被加上红色VLAN的识别信息后进入汇聚链路。

(4)、路由器收到②的数据帧后,确认其VLAN识别信息,由于它是属于红色VLAN的数据帧,因此交由负责红色VLAN的子接口接收。

接着,根据路由器内部的路由表,判断该向哪里中继。

由于目标网络192.168.2.0/24是蓝色VLAN,且该网络通过子接口与路由器直连,因此只要从负责蓝色VLAN的子接口转发就可以了。这时,数据帧的目标MAC地址被改写成计算机C的目标地址;并且由于需要经过汇聚链路转发,因此被附加了属于蓝色VLAN的识别信息。这就是图中③的数据帧。

(5)、交换机收到③的数据帧后,根据VLAN标识信息从MAC地址列表中检索属于蓝色VLAN的表项。由于通信目标——计算机C连接在端口3上、且端口3为普通的访问链接,因此交换机会将数据帧除去VLAN识别信息后(数据帧④)转发给端口3,最终计算机C才能成功地收到这个数据帧。

进行VLAN间通信时,即使通信双方都连接在同一台交换机上,也必须经过:“发送方——交换机——路由器——交换机——接收方”这样一个流程。

七、三层交换机

7.1、使用路由器进行VLAN间路由时的问题

现在,我们知道只要能提供VLAN间路由,就能够使分属不同VLAN的计算机互相通信。

但是,如果使用路由器进行VLAN间路由的话,随着VLAN之间流量的不断增加,很可能导致路由器成为整个网络的瓶颈。

交换机使用被称为ASIC(Application Specified Integrated Circuit)的专用硬件芯片处理数据帧的交换操作,在很多机型上都能实现以缆线速度(Wired Speed)交换。而路由器,则基本上是基于软件处理的。

即使以缆线速度接收到数据包,也无法在不限速的条件下转发出去,因此会成为速度瓶颈。就VLAN间路由而言,流量会集中到路由器和交换机互联的汇聚链路部分,这一部分尤其特别容易成为速度瓶颈。

并且从硬件上看,由于需要分别设置路由器和交换机,在一些空间狭小的环境里可能连设置的场所都成问题。

7.2、三层交换机(Layer 3 Switch)

为了解决上述问题,三层交换机应运而生。三层交换机,本质上就是“带有路由功能的(二层)交换机”。路由属于OSI参照模型中第三层网络层的功能,因此带有第三层路由功能的交换机才被称为“三层交换机”。

关于三层交换机的内部结构,可以参照下面的简图。

1526052735638344

在一台本体内,分别设置了交换机模块和路由器模块;而内置的路由模块与交换模块相同,使用ASIC硬件处理路由。因此,与传统的路由器相比,可以实现高速路由。并且,路由与交换模块是汇聚链接的,由于是内部连接,可以确保相当大的带宽。

7.3、使用三层交换机进行VLAN间路由(VLAN内通信)

在三层交换机内部数据究竟是怎样传播的呢?基本上,它和使用汇聚链路连接路由器与交换机时的情形相同。

假设有如下图所示的4台计算机与三层交换机互联。当使用路由器连接时,一般需要在LAN接口上设置对应各VLAN的子接口;而三层交换机则是在内部生成“VLAN接口(VLAN Interface)”。VLAN接口,是用于各VLAN收发数据的接口。

注:在Cisco的Catalyst系列交换机上,VLAN Interface被称为SVI——Switched Virtual Interface

1526053471333461

为了与使用路由器进行VLAN间路由对比,让我们同样来考虑一下计算机A与计算机B之间通信时的情况。首先是目标地址为B的数据帧被发到交换机;通过检索同一VLAN的MAC地址列表发现计算机B连在交换机的端口2上;因此将数据帧转发给端口2。

7.4、使用三层交换机进行VLAN间路由(VLAN间通信)

接下来设想一下计算机A与计算机C间通信时的情形。针对目标IP地址,计算机A可以判断出通信对象不属于同一个网络,因此向默认网关发送数据(Frame 1)。

交换机通过检索MAC地址列表后,经由内部汇聚链接,将数据帧转发给路由模块。在通过内部汇聚链路时,数据帧被附加了属于红色VLAN的VLAN识别信息(Frame 2)。

路由模块在收到数据帧时,先由数据帧附加的VLAN识别信息分辨出它属于红色VLAN,据此判断由红色VLAN接口负责接收并进行路由处理。因为目标网络192.168.2.0/24是直连路由器的网络、且对应蓝色VLAN;

因此,接下来就会从蓝色VLAN接口经由内部汇聚链路转发回交换模块。在通过汇聚链路时,这次数据帧被附加上属于蓝色VLAN的识别信息(Frame 3)。

交换机收到这个帧后,检索蓝色VLAN的MAC地址列表,确认需要将它转发给端口3。由于端口3是通常的访问链接,因此转发前会先将VLAN识别信息除去(Frame 4)。最终,计算机C成功地收到交换机转发来的数据帧。

1526053447181428

整体的流程,与使用外部路由器时的情况十分相似——都需要经过“发送方→交换模块→路由模块→交换模块→接收方”这样的流程。

八、加速VLAN间通信的手段

8.1、流(Flow)

根据到此为止的学习,我们已经知道VLAN间路由,必须经过外部的路由器或是三层交换机的内置路由模块。但是,有时并不是所有的数据都需要经过路由器(或路由模块)。

例如,使用FTP(File Transfer Protocol)传输容量为数MB以上的较大的文件时,由于MTU的限制,IP协议会将数据分割成小块后传输、并在接收方重新组合。这些被分割的数据,“发送的目标”是完全相同的。发送目标相同,也就意味着同样的目标IP地址、目标端口号(注:特别强调一下,这里指的是TCP/UDP端口)。自然,源IP地址、源端口号也应该相同。这样一连串的数据流被称为“流(Flow)”。

1526054697374874

只要将流最初的数据正确地路由以后,后继的数据理应也会被同样地路由。

据此,后继的数据不再需要路由器进行路由处理;通过省略反复进行的路由操作,可以进一步提高VLAN间路由的速度。

8.2、加速VLAN间路由的机制

接下来,让我们具体考虑一下该如何使用三层交换机进行高速VLAN间路由。

首先,整个流的第一块数据,照常由交换机转发→路由器路由→再次由交换机转发到目标所连端口。这时,将第一块数据路由的结果记录到缓存里保存下来。需要记录的信息有:

● 目标IP地址

● 源IP地址

● 目标TCP/UDP端口号

● 源TCP/UDP端口号

● 接收端口号(交换机)

● 转发端口号(交换机)

● 转发目标MAC地址

等等。

同一个流的第二块以后的数据到达交换机后,直接通过查询先前保存在缓存中的信息查出“转发端口号”后就可以转发给目标所连端口了。

这样一来,就不需要再一次次经由内部路由模块中继,而仅凭交换机内部的缓存信息就足以判断应该转发的端口。

这时,交换机会对数据帧进行由路由器中继时相似的处理,例如改写MAC地址、IP包头中的TTL和Check Sum校验码信息等。

1526054645561727

通过在交换机上缓存路由结果,实现了以缆线速度(Wired Speed)接收发送方传输来数据的数据、并且能够全速路由、转发给接收方。

需要注意的是,类似的加速VLAN间路由的手法多由各厂商独有的技术所实现,并且该功能的称谓也因厂商而异。例如,在Cisco的Catalyst系列交换机上,这种功能被称为“多层交换(Multi Layer Switching)”。

另外,除了三层交换机的内部路由模块,外部路由器中的某些机型也支持类似的高速VLAN间路由机制。

九、传统型路由器存在的意义

9.1、路由器的必要性

三层交换机的价格,在问世之初非常昂贵,但是现在它们的价格已经下降了许多。目前国外一些廉价机型的售价,折合成人民币后仅为一万多元,而且还在继续下降中。

既然三层交换机能够提供比传统型路由器更为高速的路由处理,那么网络中还有使用路由器的必要吗?

答案是:“是”。

使用路由器的必要性,主要表现在以下几个方面:

■ 用于与WAN连接

三层交换机终究是“交换机”。也就是说,绝大多数机型只配有LAN(以太网)接口。在少数高端交换机上也有用于连接WAN的串行接口或是ATM接口,但在大多数情况下,连接WAN还是需要用到路由器。

■ 保证网络安全

在三层交换机上,通过数据包过滤也能确保一定程度的网络安全。但是使用路由器所提供的各种网络安全功能,用户可以构建更为安全可靠的网络。

路由器提供的网络安全功能中,除了最基本的数据包过滤功能外,还能基于IPSec构建×××(Virtual Private Network)、利用RADIUS进行用户认证等等。

■ 支持除TCP/IP以外的网络架构

尽管TCP/IP已经成为当前网络协议架构的主流,但还有不少网络利用Novell Netware下的IPX/SPX或Macintosh下的Appletalk等网络协议。三层交换机中,除了部分高端机型外基本上还只支持TCP/IP。因此,在需要使用除TCP/IP之外其他网络协议的环境下,路由器还是必不可少的。

注:在少数高端交换机上,也能支持上述路由器的功能。例如Cisco的Catalyst6500系列,就可以选择与WAN连接的接口模块;还有可选的基于IPSec实现×××的模块;并且也能支持TCP/IP以外的其他网络协议。

9.2、路由器和交换机配合构建LAN的实例

下面让我们来看一个路由器和交换机搭配构建LAN的实例。

1526055712218243

利用在各楼层配置的二层交换机定义VLAN,连接TCP/IP客户计算机。各楼层间的VLAN间通信,利用三层交换机的高速路由加以实现。如果网络环境要求高可靠性,还可以考虑冗余配置三层交换机。

与WAN的连接,则通过带有各种网络接口的路由器进行。并且,通过路由器的数据包过滤和×××等功能实现网络安全。此外,使用路由器还能支持Novell Netware等TCP/IP之外的网络。

只有在充分掌握了二层、三层交换机以及传统路由器的基础上,才能做到物竞其用,构筑出高效率、高性价比的网络。

十、使用VLAN设计局域网

10.1、使用VLAN设计局域网的特点

通过使用VLAN构建局域网,用户能够不受物理链路的限制而自由地分割广播域。

另外,通过先前提到的路由器与三层交换机提供的VLAN间路由,能够适应灵活多变的网络构成。

但是,由于利用VLAN容易导致网络构成复杂化,因此也会造成整个网络的组成难以把握。

可以这样说,在利用VLAN时,除了有:

●网络构成灵活多变

这个优点外,还搭配着:

●网络构成复杂化

这个缺点。

下面,就让我们来看看具体的实例。

10.2、不使用VLAN的局域网中网络构成的改变

假设有如图所示的由1台路由器、2台交换机构成的“不使用VLAN构建”的网络。

1526056371666308

图中的路由器,带有2个LAN接口。左侧的网络是192.168.1.0/24,右侧是192.168.2.0/24。

现在如果想将192.168.1.0/24这个网络上的计算机A转移到192.168.2.0/24上去,就需要改变物理连接、将A接到右侧的交换机上。

并且,当需要新增一个地址为192.168.3.0/24的网络时,还要在路由器上再占用一个LAN接口并添置一台交换机。而由于这台路由器上只带了2个LAN接口,因此为了新增网络还必须将路由器升级为带有3个以上LAN接口的产品。

10.3、使用VLAN的局域网中网络构成的改变

接下来再假设有一个由1台路由器、2台交换机构成的“使用VLAN”的局域网。交换机与交换机、交换机与路由器之间均为汇聚链路;并且假设192.168.1.0/24对应红色VLAN、192.168.2.0/24对应蓝色VLAN。

1526056395954922

需要将连接在交换机1上192.168.1.0/24这个网段的计算机A转属192.168.2.0/24时,无需更改物理布线。只要在交换机上生成蓝色VLAN,然后将计算机A所连的端口1加入到蓝色VLAN中去,使它成为访问链接即可。

然后,根据需要设定计算机A的IP地址、默认网关等信息就可以了。如果IP地址相关的设定是由DHCP获取的,那么在客户机方面无需进行任何设定修改,就可以在不同网段间移动。

利用VLAN后,我们可以在免于改动任何物理布线的前提下,自由进行网络的逻辑设计。如果所处的工作环境恰恰需要经常改变网络布局,那么利用VLAN的优势就非常明显了。

并且,当需要新增一个地址为192.168.3.0/24的网段时,也只需要在交换机上新建一个对应192.168.3.0/24的VLAN,并将所需的端口加入它的访问链路就可以了。

如果网络环境中还需要利用外部路由器,则只要在路由器的汇聚端口上新增一个子接口的设定就可以完成全部操作,而不需要消耗更多的物理接口(LAN接口)。要使用的是三层交换机内部的路由模块,则只需要新设一个VLAN接口即可。

网络环境的成长,往往是难以预测的,很可能经常会出现需要分割现有网络或是增加新网络的情况。而充分活用VLAN后,就可以轻易地解决这些问题。

10.4、利用VLAN而导致的网络结构复杂化

虽然利用VLAN可以灵活地构建网络,但是同时,它也带来了网络结构复杂化的问题。

特别是由于数据流纵横交错,一旦发生故障时,准确定位并排除故障会比较困难。

为了便于理解数据流向的复杂化,假设有下图所示的网络。计算机A向计算机C发送数据时,数据流的整体走向如下:

计算机A→交换机1→路由器→交换机1→交换机2→计算机C

1526056962689769

(1)、首先计算机A向交换机1送出数据(①)

(2)、其后数据被转发给路由器(②)进行VLAN间路由。

(3)、路由后的数据,再从汇聚链路返回交换机1(③)。

(4)、由于通信目标计算机C并不直连在交换机1上,因此还需要经过汇聚链路转发到交换机2(④)。

(5)、在交换机2上,数据最终被转发到C所连的端口2上,这才完成整个流程(⑤)。

在这个例子中,仅由2台交换机构成网络,其数据流已经如此复杂,如果构建横跨多台交换机的VLAN的话,每个数据流的流向显然会更加难以把握。

10.5、网络的逻辑结构与物理结构

为了对应日渐复杂化的数据流,管理员需要从“逻辑结构”与“物理结构”两方面入手,把握好网络的现状。

物理结构,指的是从物理层和数据链路层观察到的网络的现状,表示了网络的物理布线形态和VLAN的设定等等。

而逻辑结构,则表示从网络层以上的层面观察到的网络结构。下面我们就试着以路由器为中心分析一个IP网络的逻辑结构。

还是先前的那个例子,描绘了布线形态和VLAN设定的“物理结构”如下图所示。

1526056984377445

分析这个物理结构并转换成以路由器为中心的逻辑结构后,会得到如下的逻辑结构图。当我们需要进行路由或是数据包过滤的设定时,都必须在逻辑结构的基础上进行。

1526056999972649

把握这两种网络结构图的区别是十分重要的,特别是在VLAN和三层交换机大行其道的现代企业级网络当中。

本文转载于网络,来源未知

为了下载 Office,我们往往最先想到的就是利用搜索引擎查找。但搜索结果往往五花八门、鱼龙混杂,很难找到一个安全、正规的网站可以下载 Office。下载好之后,Office 的安装过程也并不那么友好。还有许多人最关心的激活问题。

因此,接下来要介绍的是一款与 Office 有关的小工具——Office Tool Plus,简称 OTP。麻雀虽小,五脏俱全。OTP 能够对 Office 实现一站式管理、安装、激活、卸载等,支持 Office 365、Office 2019 和 Office 2016 等。此外,其还内置了一些十分实用的小工具。

下载 OTP 工具

首先,到 Office Tool Plus 网站下载 OTP。将其放到全英文路径中,然后打开运行。

主界面如下:

img

OTP 主界面

随着软件的持续更新,界面可能会有明显的变化,但核心操作的流程应当是一样的。

需要注意的是,如果电脑上已经安装了其他版本的 Office 和相关插件等,需要先卸载,卸载完毕后需要重启电脑。卸载可以在 OTP 中进行:

img

在 OTP 中卸载 Office

安装 Office

如果网速比较好的话,可以选择直接在线安装,否则选择离线安装。

在线安装

直接切换到「安装」选项卡,无需先行手动下载。

在安装时,需要根据将要安装的 Office 的不同版本,对「Office 套件」项进行选择:

img

选择「Office 套件」

这里需要说明的是,由于 Visio 和 Project 是从 Office 中独立出来的,因此需要单独选择。

如下是一些常见的示例:

Office 版本 Office 套件 ID

Office 2019 专业增强版(零售) ProPlus2019Retail
Office 2019 专业增强版(批量) ProPlus2019Volume
Office 2019 家庭和学生版 HomeStudent2019Retail
Office 2016 专业增强版(零售) ProPlusRetail
Office 2016 专业增强版(批量) ProPlusVolume
Office 2016 家庭和学生版 HomeStudentRetail
Office 365 个人版、家庭版 O365HomePremRetail
Office 365 教育版、E3 等 O365ProPlusRetail

Visio 版本 Visio ID

Visio 2019 专业版(零售) VisioPro2019Retail
Visio 2019 专业版(批量) VisioPro2019Volume
Visio 2016 专业版(零售) VisioProRetail
Visio 2016 专业版(批量) VisioProVolume
Visio 2019 标准版(零售) VisioStd2019Retail
Visio 2019 标准版(批量) VisioStd2019Volume
Visio 2016 标准版(零售) VisioStdRetail
Visio 2016 标准版(批量) VisioStdVolume

Project 版本 Project ID

Project 2019 专业版(零售) ProjectPro2019Retail
Project 2019 专业版(批量) ProjectPro2019Volume
Project 2016 专业版(零售) ProjectProRetail
Project 2016 专业版(批量) ProjectProVolume
Project 2019 标准版(零售) ProjectStd2019Retail
Project 2019 标准版(批量) ProjectStd2019Volume
Project 2016 标准版(零售) ProjectStdRetail
Project 2016 标准版(批量) ProjectStdVolume

之后,根据自己的需要,在「应用程序」区选择将要安装的 Office 组件:

img

选择 Office 组件

「体系结构」部分,64 位(x64)Windows 可以安装 64 位和 32 位的 Office,32 位(x86)Windows 只能安装 32 位的 Office。至于如何选择,可以参考这篇文章

img

选择安装 64 位 Office

「通道」保持默认即可。有需要的可以自行修改。

在全部选择完成后,点击「开始安装」,便会开始安装过程:

img

Office 在线安装

离线安装

下载

切换到「下载」选项卡,先下载离线包,再安装。

「通道」保持默认的「每月通道」即可。有需要的可以自行修改。

「体系结构」部分,64 位(x64)Windows 可以安装 64 位和 32 位的 Office,32 位(x86)Windows 只能安装 32 位的 Office。至于如何选择,可以参考这篇文章。两者都下载的,选择「All」:

img

选择下载 32 位和 64 位的 Office

然后点击「开始」即可下载。下载完成后,OTP 会识别到已下载的离线包,显示其版本号、体系结构等:

img

离线包已下载

安装

之后切换到「安装」选项卡,开始安装。安装过程跟在线安装基本一致。

在安装时,需要根据将要安装的 Office 的不同版本,对「Office 套件」项进行选择:

img

选择「Office 套件」

这里需要说明的是,由于 Visio 和 Project 是从 Office 中独立出来的,因此需要单独选择。

如下是一些常见的示例:

Office 版本 Office 套件 ID

Office 2019 专业增强版(零售) ProPlus2019Retail
Office 2019 专业增强版(批量) ProPlus2019Volume
Office 2019 家庭和学生版 HomeStudent2019Retail
Office 2016 专业增强版(零售) ProPlusRetail
Office 2016 专业增强版(批量) ProPlusVolume
Office 2016 家庭和学生版 HomeStudentRetail
Office 365 个人版、家庭版 O365HomePremRetail
Office 365 教育版、E3 等 O365ProPlusRetail

Visio 版本 Visio ID

Visio 2019 专业版(零售) VisioPro2019Retail
Visio 2019 专业版(批量) VisioPro2019Volume
Visio 2016 专业版(零售) VisioProRetail
Visio 2016 专业版(批量) VisioProVolume
Visio 2019 标准版(零售) VisioStd2019Retail
Visio 2019 标准版(批量) VisioStd2019Volume
Visio 2016 标准版(零售) VisioStdRetail
Visio 2016 标准版(批量) VisioStdVolume

Project 版本 Project ID

Project 2019 专业版(零售) ProjectPro2019Retail
Project 2019 专业版(批量) ProjectPro2019Volume
Project 2016 专业版(零售) ProjectProRetail
Project 2016 专业版(批量) ProjectProVolume
Project 2019 标准版(零售) ProjectStd2019Retail
Project 2019 标准版(批量) ProjectStd2019Volume
Project 2016 标准版(零售) ProjectStdRetail
Project 2016 标准版(批量) ProjectStdVolume

之后,根据自己的需要,在「应用程序」区选择将要安装的 Office 组件:

img

选择 Office 组件

「体系结构」部分,64 位(x64)Windows 可以安装 64 位和 32 位的 Office,32 位(x86)Windows 只能安装 32 位的 Office。至于如何选择,可以参考这篇文章

img

选择安装 64 位 Office

「通道」保持默认的「每月通道」即可。有需要的可以自行修改。

在全部选择完成后,点击「开始安装」,便会开始安装过程:

img

Office 离线安装

激活 Office

有条件请支持正版!正版 Office 不仅可以享受 Office 的全部权益,还能获得专业的售后支持服务。加上 Office 365 的价格一再降低,人们已经能够以较低的价格购买到正版的 Office。

可到微软中国商城购买 Office。可至 Office 产品比较页面查看 Office 各版本的区别,以决定购买哪种。

购买完成后,使用密钥激活 Office;或者将密钥绑定到微软账户,然后使用该微软账户登录 Office 即可。

暂时没有经济能力的,可以继续往下看。

为了使用 KMS 方式激活 Office,需要将先前安装的零售版 Office 转换为批量版,方法就是安装许可证书。根据已安装的版本,选择对应的批量版许可证书,然后点击「安装许可证」:

img

选择许可证

由于在安装许可证时会一并安装默认的 GVLK 密钥,因此这里不需要额外安装密钥。

之后,输入 KMS 服务器的地址,再点击「设定服务器地址」:

img

设定 KMS 服务器

最后,点击「激活」,等待激活完成。

以下是一些可用的 KMS 服务器:

kms.loli.beer
kms.loli.cab
kms.90zm.xyz
kms.cangshui.net
kms.03k.org
kms.myftp.org
zh.us.to
kms.chinancce.com
kms.digiboy.ir
kms.luody.info
kms.mrxn.net
kms8.MSGuides.com
xykz.f3322.org
kms.bige0.com
kms.shuax.com
kms9.MSGuides.com
kms.lotro.cc
www.ddddg.cn
cy2617.jios.org
enter.picp.net

关于激活 Office 的详细说明,请查看 OTP 内置的说明:

img

OTP 关于激活的说明

其它功能

目前的 OTP 还包含了一些其它的小功能,比如批量转换 Office 文档:

文档批量转换

以及工具箱,用于修复 Office 可能存在的一些异常问题:

OTP 工具箱

题外话

关于 OTP 的详细使用说明,其内部有许多地方都内置了说明:

OTP 内置的说明

并且在软件主界面还有经常更新的公告,讲解一些使用技巧。综上来看,OTP 实在是一款非常实用的小工具。

转自简书

也许很多人知道,最近有个挺火的项目,叫996.icu。这个项目主要是介绍了软件界常见的”996”加班模式,列举了相关法规和相关报道,并提出了抗议。域名的意义是,加班996,生病ICU。

这个网站在网上的讨论很热烈。我也算是在软件行业里混过一段时间。所以蹭个热点,说说个人看法。

一些基本知识

在说看法之前,首先我想把什么是正常工作,什么是996,以及关于996的一些事实情况(至少是我知道的情况)讲清楚了。否则后面讨论容易跑偏。

谈到996,首先我们需要说国家规定的理想工作状态。工作时间是一周五天,周休两天,每天八小时。当然,规定并没有说明八小时的涵盖内容,因此分为两种。一种解读是,工作八小时,午饭休息一到一个半小时,不计在内。因此9点上班的话,对应6点或者6点半下班。但是有很多福利不错的单位,午饭一小时涵盖在八小时内。因此就变成了朝九晚五的工作模式。很难想象吧。被我们嘲讽当作社畜象征的朝九晚五,其实几乎是最好的工作制。

关于加班,国家的规定是。一天最多可以加班3小时,一周最多加班8小时,一个月最多36小时(一个月4.5周计)。

关于加班工资,国家规定是。延长劳动时间,支付不低于正常工资的150%。休息日安排工作又不能补休,支付不低于正常工资的200%。法定假日安排工作,支付不低于正常工资的300%。当然,对所有公司来说,不低于都会被默认视为等于。

996和一些变种打法

讲清楚正常工作,和加班的法律规定,下面我们就可以对比一下IT圈的实际打法了。996的原始意义是,每天9点上班至9点下班,每周工作6天。按照全部工作时间计算可以看到,周工作时间是72小时。如果扣除午餐晚餐各一小时,工作时间是60小时。横竖都是超过最长工作时间的。当然,名义上叫996,实际上有不同的弹性制做法。例如10-10-6,也就是比996晚上班一个小时,总工作时间不变。这类变形统称996,代表7x小时级加班。在此之上,还有时间更长的997。工作时间70小时,累计的话是84小时,代表8x小时级加班。以及最高级007,代表168小时级加班。由于一周只有168小时,所以007也是工作时间的极限,没办法再长。这个加班制也被戏称为”License to kill”。

当然,007并不是说我们就无需睡眠了。我们可以简单计算一下一个人的时间分配。假设这个人一天睡眠7小时,吃饭两个小时,洗澡上厕所等必要的浪费时间一小时。那么一天有10小时时间是必然处于无法工作中的。因此极限状态下的加班,最长限度工作时间也就是14*7=98小时。大概就100小时,这还建立在吃住在公司的情况下。再加班,就需要压缩吃饭和睡眠时间了。软件行业赶工的情况下,有周工作时间120小时的极限情况。当然,这种状态是注定无法持久的,结束后需要一定时间的放松调整。

996一个隐性前提

其实在讨论之前,我们需要讲一个隐性前提。996认为,工作的产出和工作时间呈正比。所以为了提升产出,我们需要加班。对于现在的软件行业来说,这是一个正常假定,然而并不是一个必然。产出正比于劳动时间,这是工业化的结果。我们的软件行业,正试图将所有软件的生产流程变成一个标准化的工业制度。

然而很多软件生产过程,或者工业化大生产中的几个特殊职位,依然是依靠几个人的直觉,天赋和经验。脑子想清楚比努力干重要,机遇和灵感比脑子想清楚重要。在这些东西面前,劳动时间并没有用,或者帮不上什么大忙,或者反而有害。在这些特殊的场景下,必然是不需要加班或者996的。然而不能因为这些特殊情况的存在,而否认当前软件行业是个工业化大生产的行业(或者说要逐步进入工业化大生产)。

从这个角度说,艺术式的软件开发,既不会产生996(因为没用),也对行业现状没有帮助。因为艺术式的软件开发,注定不能通过增加人手来获得更高的收益,因而不能吸纳劳动力。

分类讨论

讨论加班工资的时候,我们需要按照几个核心问题将情况分为几类。

  1. 员工是否在招聘前就知道可能面临加班,大致会是怎样一个加班量级。
  2. 员工是否能够收到加班的对价收益。(劳资溢价计入工资或加班后计入加班费都算,福利的话需要足额)
  3. 员工是否可以选择加班或不加班,而且基本不会因为这个选择受到除了加班费外的其他影响。

问题一讨论的是透明性,二讨论的是加班工资本身,三讨论的是公平性。一和二的关系非常紧密。有一就有二。很少有公司在招聘的时候大咧咧的说我们要加班,但是请你按照市面上不加班的工资和我们谈。而反过来,有二也很可能有一。很少有公司明明需要员工加班,也明明会足额给加班费,但是招聘的时候不说明白。因为给足加班费的情况下,唯一的问题就是员工本身适不适合(或者说想不想)加班了。隐瞒这个事实,招一堆不适合的人来再开除,也很少有公司这么无聊。这种情况下常见的是,公司自己也不知道下面会有一段惨烈的加班。

按照前两个问题,我将情况分为三类,最后再讨论第三个问题。一类是招聘的时候直接说明的公司。第二类愿意给足额或基本足额工资。第三类就是只有象征性补偿,或者只有福利,或者连福利都没有。为什么这么分三类呢?因为这三类的动机和影响各自不同。

招聘时讲明的公司

第一类的问题最小。在入职前告知,不侵犯知情权,也不套住人才。合同里说清楚996,并且把公平的对价补偿也写了进去。愿意来的可以来,不愿意的可以不来。很多朋友对这类的意见是,认真负责的好公司。

当然。严格来说,在合同里约定超过48小时每周的工作时间也是违法的。所以很多公司会有工作制告知,但是并不会体现在合同中。只要这个告知早于员工接受offer,那么就可以算为此类。

这类公司,加班的动机往往是程序行业的内在动机。可能很多圈外人不知道,软件行业的效率,和项目人数的平方成反比,随着参与人数的增加而迅速降低。这个观点是Frederick在人月神话中提出的核心观点。他的解释是,软件工作中,有一部分非常重要的工作就是沟通。程序员需要让彼此了解对方意思,才能写出一致无误的软件。而沟通很难群体进行,因而沟通的成本是和团队规模的平方成正比。因此实际践行中,一个团队的理想大小,会限制在10人上下。如果要再扩充规模,往往会虚胖。即团队内实际产生战斗力的人员仍然在10人上下,其余人就是围着干零活,感觉有力使不上。因此大型软件工作往往会采用横向或纵向的模式,来切分工作。例如将一个大型系统分为几个功能模块,约定好彼此的接口,分别开发,最后联调。这样做往往使得模块和模块间产生不少问题,甚至可能导致漏洞或逻辑问题而无法使用。然而从软件工程角度讲,仍然是一个非常好的提升总体速度的方法。当然,模块的切分也是有限的。模块越多,模块间的协调成本越高,总体质量变差的可能性越大。通过模块切分的方式,也无法实现无上限的加人。

那么,我们也就很容易理解这类加班的内在理由了。加班10%能解决的工作量,招人的话需要多招20%。这意味着更多的争抢,更大的人员流动性,更多的培训,磨合。而且加人还需要重新安排团队,更细化的切分项目,更频繁的沟通会议,更高的高级管理人员成本。就算能招到人,最后总成本上升可能远远超过20%。同理,996的加班高达50%-80%,如果招人的话,大概要招2-3倍以上的人,成本则可能高达3-4倍。就算按照加班工资实打实发,加班成本也就是2.2倍。作为管理者,有百分百的动机选择加班,而不是招人。对于他们来说,更实际的做法是入职的时候直接谈一个相对于不加班2-3倍之间的溢价package。员工也能赚钱,公司也能省钱。

愿意给予相当补偿的公司

第二类公司,起码还不算坑到底。如果是一般加班,老板的选择往往是强制结成年假,而不是支付加班工资。因为休一天损失100%工资,支付加班工资可要付150%-300%。然而996的加班往往太多。总不能一个部门半个房间都在休假吧。所以也有协商,部分结算,部分转为年假。

这类公司的理由往往是一般正常公司都有的,软件行业峰谷影响。例如,做2B的知道,年底的时候各种突击花钱,突击签单,争取用光预算。到了来年三月的时候,就变成了非常紧的项目压力了。然而到了下半年接近年底的时候,项目做的差不多验收了,往往单子又会跟不上。因此有些公司会选择以年为周期进行加班和调度。年初的时候多加一些班,到年底开始强制员工休假。如果休不了才进行加班结算。

特别注明一下。首先,这类年级调度加班调休的公司,如果超出每周8小时也是违法的。其次,公司原因导致的停工,其实不需要计算为假期。如果员工不同意使用自己假期,原则上单位需要照发工资和加班补贴。让不让员工干活随意,但是钱必须发。然而,很少有员工和单位这么对着干。

基本无补偿,甚至无福利的公司

这类公司是最常见的,其基本想法就是压低工资或是降薪,或者又干脆裁员。

压低工资很好理解,这似乎是劳动力密集型行业的通病。和员工谈的时候只谈工资,招进来就往最大工作时间利用。为了让员工不走,甚至会使用押金或迟发工资这类手段。这类事情员工通常得不到政府的救济。毕竟农民工欠薪这种事都要总理亲自去要。只是加班而已,似乎也就不那么严重了。一家两家如此做,多了之后,劳方也不管你们加班不加班了,总之就按照加班的开薪资。资方说不加班,劳方不敢信。一来二去,逆向选择,不加班的公司不好混,大家就都开始加班。而一旦成为行规之后,劳方更是不会相信什么不加班的事情。其实这个情况和招聘时讲明很类似,差别在于大家对加班与否的认知不统一。劳方认为我就是值这么多钱的,不加班就是这么高工资,所以公司没有加班费,属于违法违规。公司则认为,员工根本不值这么多钱。之所以给这么高溢价,就是因为要加班。最后就很容易发生纠纷。

我常见的情况是,如果是劳方市场,员工选择权更多,资方往往倾向于招聘时讲明白。因为一旦员工入职后发现劳方和事实相差太大,可以自行离职,不怕找不到工作。那么资方就要承担成本了。而如果是资方市场,通常就是大家都揣着明白装糊涂。反正入职后跑不了。

其实程序员现在也不笨,如果是大公司的话,一般也会找人打听打听是否在加班,面试的时候也会问。但是你可以看到各大公司对加班的态度,大部分对公开媒体的态度都是粉饰加班的,只强调要求员工全情投入。实质上我们知道这个说法也就是说说,不信你试试入职后问你老板,我的工作态度端正绝对全力投入,但是我就是不加班,行不行。

降薪和裁员是大家意见最大,也是反弹最大的。毕竟996相当于公司宣布降薪一半以上,不可能没反应。这个主要是因为软件行业景气状态有波动。仔细观察毕业生薪资就能发现,往往是一年出现天价,第二年就跌穿地板。软件行业的发展不全是线性的。一旦不景气,老板就有压缩成本的动力。压缩成本两个思路,一个是降薪,一个是裁员。然而降薪不好听,裁员补偿极高。怎么办呢?两个问题有同一个解决方法,996。如果同意的话,就是变相降薪了。不同意就无补偿离职了。这个思路有个尤其恶心的实现,就是年底的时候宣布996。这时候走人,连年终奖都省了。

实话说,这种手段叫杀人一千自伤八百。因为肯放弃年终奖和赔偿的主要理由,最主要是因为有一个不错的潜在机会。与其在这里熬着,还不知道拿不拿的到。不如在新工作的margin里找回来。相反,如果没有潜在机会,那不妨先混着。然而能很快找到不错的机会的人都是什么样的人?所以这种策略下最先走的,往往都是公司里的精英。反而是公司想开掉的平庸者更有动力留下来。

公平性的影响

所谓公平性,就是员工能够自己选择是否参与996。因为从道义上说,除了上面的第一种情况,员工和公司的合同只涵盖了40小时工作时间。国家标准也只涵盖了最多48小时每周的工作时间。除此之外的时间,员工并没有义务来工作,给没给够工资都没这个义务。加班费给够了,愿意来,是自愿选择。给够了,还是不愿意来,那是个人选择。不愿意来就给穿小鞋,在bonus和升迁上刁难,甚至威胁开除,这就是逼迫了。

然而现状是,很少有公司敢于说自己是公平的,甚至很少有公司意识到这个问题。大部分公司在考评的时候,都会有一项,工作积极性。其中不愿意加班的人,这项肯定不会太好看。然而细想的话,用员工下班后的表现,考评员工的工作积极性,这是个什么道理呢?

一个隐性的问题

996是不是好事?当然不是,对于大多数人都不是。首先第一点无可反驳的理由。这个行为违法。要相信国家,相信法律嘛。然而法律为什么规定40个小时呢?是不是太保守了?一周最高98个小时,干个70小时不过分嘛。

996对于个人来说,既是个机遇,也是个障碍。短期来说,会有一份非常不错的收入。而且996能为程序员提供很好的上升机会。因为学东西的速度是和工作时间相关的,而上升通道是和毕业年限反相关的。一个机会,同样水平的人,一个毕业一年,一个毕业五年,当然是先选择毕业一年的,因为潜力更大。996能够极大提升新手的机会。

然而当程序员进入30后,后遗症就接踵而至。首先,996会减少员工和家人朋友相处的时间。会做程序员的人本来普遍就不会特别善于交际。相处时间进一步减少后,就很少能有足够的时间谈恋爱。所以程序员单身狗的名号不是白来的。虽说结不结婚是个私事,然而从国家总体角度来看,这当然是个坏事。都没结婚,哪里来的二胎?靠女装么?其次,996普遍减少学习的时间。这使得程序员除了公司相关技术外,自己学的东西很少。软件行业又是个更新换代非常快的行业。最后,当技能没有更新的程序员,和愿意996的竞争者竞争的时候,往往就会被淘汰。因此常有个说法,程序员过了35做不下去。这对个人和行业来说都不是个好事。

所以总体来看,最好是30岁之前996,30岁之后正常工作。然而工作制度的事情并不是随个人想法而改变的。对于行业来说,如果规定至少150%工资,那就是150%。没有人会多给。对于行业来说,一周标准是50小时,那坚持工作40小时的程序员就会失业。之所以要确定行业标准是因为,企业一定会在标准范围内最大限度的利用资源。如果没有统一的行业强制标准,会出现这么一个现象。某个企业提出加班到一周50个小时,另一个企业提出加班到60小时。25岁的程序员说我可以接受70小时,22岁的说我可以接受80小时。这么搞下去的结局是地狱。

这个问题,即便是第一类公司,也没有解决。他们能做的只有,给员工足够的工资,足够的晋升平台。但是他们却不能说给行业做了个好榜样,甚至不是一个好的竞争者。他们的成功,无疑鼓励所有公司尽情加班,只要给钱。无疑限制了程序员行业只能牺牲年轻的肝,让他们在35之后面对茫茫的未来。同时也限制了软件行业的总供给,因为35后的都转行了。

因此,国家制定了各种规章。即便牺牲总体效率,也要限制无底线的加班竞争。而且这一点不仅限制没给够补偿的公司,也要限制给够了补偿的公司。然而很遗憾的,这些规章非但没有贯彻,甚至不被理解。

主人翁意识

很多老板提到主人翁意识,提到拼搏奋斗。拼搏奋斗当然是对的,然而主人翁意识就要看员工在整件事里的收益了。我们不常提,然而又无法避免的一件事是,员工和老板很多时候不是一条心的,甚至往往是对立的。员工不是企业的拥有者,不在企业的获益里有分成(或者说不是所有员工都有分成,有也不一定是对等分成)。要求一个不从整件事里获益的人,为这件事拼搏,本身并不合逻辑。这个问题更扩大点,国家也要求每个公民有主人翁意识。为啥各位大老板不能者多劳一点,把每年的盈利全上缴国家呢?主人翁意识的前提,就是员工从整件事里获得合理的收益。而合理收益的最直观体现,当然是加班费。连加班费都没给够的公司,我们又如何能相信公司能为员工提供足够的分成呢?

事实上,主人翁意识本身就是个悖论。如果员工真的有将企业当作自己的事业来干的干劲和能力,那么他为什么不自己创业呢?现在社会,技术不是壁垒,资本不是壁垒。创业可以说是最好的时机。从这点来推论,大部分在企业内就业的人,要么是不会将自己视为企业的主人,要么就是将要创业的。

有什么可以做的

最简单的,请慎重考虑996的度,以及对人生的影响。有些公司996是因为真的临时有问题。这种公司虽然短期内不合法,但是我仍然认为值得一去。然而多短,多大程度的加班才是可接受的。这个加班又会如何影响你的人生呢?请自行仔细考虑。起码,我不希望我的读者因为996而去世。如果你觉得无法容忍,最低限度的,你应该离开。

其次,我希望大家都提升效率,更有效的工作,并离开996的公司,参与规范工作的公司。这不仅对你有帮助,而且能够帮助整个行业。因为如果做事规矩的公司,因为你而可以对抗施行996的公司,那么会给市场上多一些选项,给其他人多一点希望。

最后,我们希望大家帮助劳动法落地实施。劳动法并不是一部闲的没事干的法律,尤其是劳动时间限制这块。我们有很多法律缺失,然而加班这块法律实际存在,却没有实际实施。所以希望大家在面对权益损害的时候,能够勇敢的合法对抗。至少国家现在也在宣传依法治国,那么实践一下总没错吧。即便不想亲自对着干,也可以考虑支持或给予方便。最低限度,希望大家理解支持并同情权益受损的人。毕竟这些人,可能是你的昨天或明天。

其他行业的一点情况

当然,最后我要说的是,程序员是一个特殊的群体。我们毕竟有高收入,可能无法,但是也可能可以弥补我们加班逝去的青春。我们有发声渠道。社会还能听见我们的声音。然而社会上还有很多行业,加班程度远远超过程序员。例如出租车司机。就我了解,这个行业的特性是做一休一,24小时交班。计算一下就知道,周工作84小时,追平997。但是这是司机的日常。一年365天,连春节都要上班,还得面对程序员写的打车软件的竞争。你看出租车司机有开11365.icu吐槽一下么?又例如医生。在住院医阶段,就是住在医院里的。这个位置的意思就是007,一周98小时。而且医生需要压缩睡眠,工作时长甚至超过007,持续还得持续一年。你又看谁说我们医生太辛苦了,我们把医院关了吧。或者医生收入太低了,我们把诊费和工资翻个倍吧。

我写这些例子,并不是说大家都是这么过来的,你们程序员贱人就是矫情。我是说我们有很多不公平的工作制度,在伤害个人,在伤害行业和整个社会的未来。我们在经济大发展的年代,一切都要跑步前进,没有停下好好看路,也就罢了。现在经济不景气,大家日子都不好过。在这个时候还疯狂加班,是想干什么呢?不如趁机把这些事情扳一扳。毕竟,很多事情再不扳,就来不及了。

转自Shell Xu