HCIA

[toc]

子网计算

image-20230214194022895

image-20230214194423029

习题

1
2
3
4
5
6
7
8
9
4个部门 4个子网
每个部门最多到50台主机 每个子网至少容纳50个主机地址
借两位 主机数=62台
192.168.100.0/24->26

0 1~62 63
64 65~126 127
128 129~190 192
192 193~254 255

image-20230215000603724

块(Block) = 2^主机数位=256-感兴趣掩码数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
如果生产部主机100台,销售部有50台,财务部有25台,客服部有12台,应该如何划分子网呢?

生产部100台,至少保留7位主机位,最多借1位

块=128
生产部可以在下面两个子网二选一,假设选了子网1,那么子网1就不能参与下面其他部门的分割,只能使用子网2去分割。

子网1:192.168.100.0/25
子网2:192.168.100.128/25

销售部50台,至少保留6位主机位,最多借两位
块=64

子网3:192.168.100.128/26
子网4:192.168.100.192/26

销售部25台,客服部有12台,至少保留5位主机位,最多借三位
块=32

子网5:192.168.100.192/27 销售部
子网6:192.168.100.224/27 客服部


第1问:61.179.150.39/28 子网号为多少,广播号为多少,可用IP地址范围是多少?

1
2
3
4
5
6
7
块=16

? X 块 = B < 39
? = 2 B = 32
子网号32
广播号47
可用ip地址范围33 ~ 46

第2问:19.224.17.0/17 可不可以配置在路由器的接口上?如果可以,是为什么,不可以又是为什么?

1
2
3
4
5
块=128

子网地址19.224.0.0/17
19.2240.0~19.224.127.255
可以

第3问:37.95.221.16/5 和 41.222.221.16/5 两个地址在不在同一个网段,能不能ping通?为什么?

1
2
块=8
32.0.0.0/5 40.0.0.0/5 很明显不是同一个网段,ping不通

第4问:给出第3问的IP地址 37.95.221.16的子网号和广播号

1
2
3
4
5
块=128

子网号32.0.0.0/5
广播号39.255.255.255/5
可以

回环网卡设置过程

一.安装过程

1.找到”开始”选项,鼠标右击找到”设备管理器”,然后随便在空白处单击鼠标一下。

屏幕截图(4)

2.鼠标单击菜单栏选项的”操作”选项,然后单击”添加过时硬件”,然后在”弹窗”选项单击”下一步”;在”你想向导做什么”选项里面选择”安装我手动从列表选择的硬件(高级)”,然后单击”下一步”;在”常见硬件类型”选择中选择”网络适配器”,然后单击”下一步”;然后在”厂商”选项中选择”Microsoft”,然后在”型号”选项中选择”Microsoft KM-TEST 环回适配器”,然后单击”下一步“,然后在单击一次”下一步”,系统就会按照选项按照网卡,等待”完成”选项出来后,单击”完成”选项即可完成配置。

屏幕截图(5)

屏幕截图(6)

屏幕截图(7)

屏幕截图(10)

二.检查过程

1.然后可以在”更改适配器选项中”找到”以太网”这张回环网卡

image-20220118203530057

1.当然你也可以给这张网卡”重命名”,比如左上角那张”loop”网卡就是我上一次实验的回环网卡,接下来我会用”loop”网卡做实验(顺带说一句,回环网卡安装好后是必须要重启才能生效)

三.ensp配置回环实验

1.接下来我用这个拓扑来做一次

image-20220118235018574

2.首先,我们单拖一个云”Cloud”出来。然后”右击”鼠标选择”设置”。没开始配置前的设置是这样的,如下图:

image-20220118205140449

3.我们首先在端口创建那里找到绑定信息”UDP”,然后单击右边的”增加”选项。然后,配置表就出现一行配置,如下图:

image-20220118205410999

4.然后我们在端口创建那里找到绑定信息”loop”(我们创建的回环网卡,这里的回环网卡我更改了设备名,所以叫loop),然后单击右边的”增加”选项。然后,配置表就出现第二行配置,如下图:

image-20220118205550165

image-20220118205753084

5.然后我们看下方的”端口映射设置”,在”出”或者”入”端口设置里面选择一方的端口编号设置成为”2”,然后再勾选下方的”双向通道”,然后单击”增加”即可完成配置。

image-20220118210211711

6.设置回环网卡ip为”1.0.0.2”,打开”网络设配器选项”找到目标网卡改就行了

image-20220118210811144

7.给路由器刷入命令(记得开启路由器)

image-20220118211028820

8.xshell测试路由器ip”1.0.0.1”是否可以ping通

image-20220118210928564

9.把服务命令刷入路由器,然后用xshell连接上去。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sys
sys AR1
int g0/0/0
ip add 1.0.0.1 24
q
telnet server enable
user-interface vty 0 4
authentication-mode aaa
q
aaa
local-user julintongxue password cipher 123.com
local-user julintongxue privilege level 15
local-user julintongxue service-type telnet
display this

image-20220118235856933

image-20220118235920804

认证 模式 描述
AAA 登录时需要用户名和密码
Password 登录时只需要密码
1
2
dis telnet server status
dis telnet server enable
命令 备注
user-interface vty 0 4 进入vty配置模式
+ authentication-mode password/aaa 配置认证模式
+ set authentication password cipher huawei 配置认证密码huawei
+ user privilege level 15 配置用户级别为15
user-interface maximum-vty 15 配置最大vty会话数量
aaa 进入aaa配置模式
+ local-user julintongxue password cipher huawei 创建julintongxue用户和huawei密码
+ local-user julintongxue privilege level 15 创建用户级别
+ local-user julintongxue service-type telnet 创建用户可用服务

学习

ospf综合实验

image-20230608003146657

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
sys 
sys AR1
int g0/0/0
ip add 192.168.0.1 24
ospf 1 router-id 1.1.1.1
area 0
net 192.168.0.0 0.0.0.255
int g0/0/0
ospf dr-pri 200



sys
sys AR2
int g0/0/0
ip add 192.168.0.2 24
ospf 1 router-id 2.2.2.2
area 0
net 192.168.0.0 0.0.0.255
int g0/0/0
ospf dr-pri 100



sys
sys AR3
int g0/0/0
ip add 192.168.0.3 24
int s4/0/0
ip add 34.0.0.3 8
ospf authentication-mode md5 1 cipher julintongxue@gmail.com
ospf 1 router-id 3.3.3.3
area 0
net 192.168.0.0 0.0.0.255
net 34.0.0.0 0.255.255.255



sys
sys AR6
int g0/0/0
ip add 192.168.0.6 24
ospf 1 router-id 6.6.6.6
area 0
net 192.168.0.0 0.0.0.255



sys
sys AR4
int g0/0/1
ip add 48.0.0.4 8
ip route-static 0.0.0.0 0 48.0.0.8
int s4/0/0
ip add 34.0.0.4 8
ospf authentication-mode md5 1 cipher julintongxue@gmail.com
int lo 4
ip add 4.4.4.4 32
ospf 1 router-id 4.4.4.4
default-route-advertise
area 0
net 4.4.4.4 0.0.0.0
net 34.0.0.0 0.255.255.255



sys
sys AR5
int g0/0/0
ip add 48.0.0.8 8
ip route-static 0.0.0.0 0 48.0.0.4
int lo 5
ip add 8.8.8.8 32

VLAN“基础实验”

image-20230613001021890

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
sys
sys SW1
vlan batch 10 20 100 200
int g0/0/3
p l t
p t a v 10 20 100 200
int g0/0/1
p l h
p h un v 10 100
p h p v 10
int g0/0/2
p l h
p h un v 20 200
p h p v 20



sys
sys SW2
vlan batch 10 20 100 200
int g0/0/1
p l t
p t a v 10 20 100 200
int g0/0/2
p l t
p t a v 10 20 100 200
int g0/0/3
p l h
p h un v 10 100
p h p v 100
int g0/0/4
p l h
p h un v 20 200
p h p v 200



sys
sys SW3
vlan batch 10 20 100 200
int g0/0/4
p l t
p t a v 10 20 100 200
int g0/0/1
p l h
p h un v 10 100
p h p v 10
int g0/0/2
p l h
p h un v 20 200
p h p v 20

网络安全与管理综合实训

ACl

实验1:ACl

Snipaste_2023-09-07_16-44-36

  • 完成基础配置,让X园区的所有主机都可以访问ISP,完成NAT的配置
  • 要求是AR1和AR2都可以远程R3(SSHv2),但是R1的SSH网管流量在进入ISP是要求被过滤掉
  • 要求X园区的PC1不能访问PC2
  • 要求X园区的HTTP Client1不能访问ISP的HTTP Server1
  • 要求X园区的PC1不能访问ISP的PC3,但是可以访问PC4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
sys 
sys SW1
acl 2000
rule 5 deny source 192.168.1.0 0.0.0.255
int e0/0/2
traffic-filter outbound acl 2000


sys
sys AR1
int g0/0/0
ip add 192.168.1.254 24
int g0/0/1
ip add 100.1.12.1 24
acl 2000
rule permit source 192.168.1.0 0.0.0.255
int g0/0/1
nat outbound 2000
ospf 1
area 1
network 100.1.12.0 0.0.0.255
ssh client first-time enable
acl 3000
rule deny tcp source 192.168.1.3 0 destination 10.10.10.10 0 destination-port eq 80
rule deny icmp source 192.168.1.1 0 destination 8.8.8.8 0
int g0/0/0
traffic-filter inbound acl 3000




sys
sys AR2
int g0/0/0
ip add 100.1.12.254 24
int g0/0/1
ip add 100.1.23.1 24
ospf 1
area 1
network 100.1.23.0 0.0.0.255
network 100.1.12.0 0.0.0.255
ssh client first-time enable
acl 3000
rule deny tcp source 100.1.12.1 0 destination 100.1.23.254 0 destination-port eq 22
int g0/0/0
traffic-filter inbound acl 3000




sys
sys AR3
int g0/0/0
ip add 100.1.23.254 24
int g0/0/1
ip add 8.8.8.254 24
int g0/0/2
ip add 9.9.9.254 24
int g1/0/0
ip add 10.10.10.254 24
ospf 1
area 1
network 8.8.8.0 0.0.0.255
network 9.9.9.0 0.0.0.255
network 10.10.10.0 0.0.0.255
network 100.1.23.0 0.0.0.255
stelnet server enable
user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
aaa
local-user orange password cipher huawei@123 privilege level 3
local-user orange service-type ssh
rsa local-key-pair create
ssh user orange authentication-type password

Basic NAT

实验2:Basic_NAT

image-20230913012019405

完成Basic NAT的配置(Easy IP、 地址池 NAT、NAT Server 、静态 NAT/NAPT)

  • PC2访问ISP的8.8.8.8采用G0/0/2 通过静态NAT实现
  • PC3访问ISP的9.9.9.9采用G2/0/0 通过NAPT实现
  • HTTP Client2访问ISP HTTP Server1采用EASYIP实现
  • ISP HTTP Client1访问内网Server2的HTTP服务,通过NAT Server实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
NAPT地址池:
101.1.1.11-101.1.1.22



sys
sys AR1
int g0/0/0
ip add 192.168.2.254 24
int g0/0/1
ip add 192.168.1.254 24
int g2/0/1
ip add 102.1.1.1 24
int g0/0/2
ip add 100.1.1.1 24
nat static enable
nat static global 100.1.1.2 inside 192.168.1.1
int g2/0/0
ip add 101.1.1.1 24
ip route-static 0.0.0.0 0 100.1.1.254
ip route-static 9.9.9.9 32 101.1.1.254
ip route-static 10.10.10.10 32 102.1.1.254
nat address-group 1 101.1.1.11 101.1.1.22
acl 2000
rule permit source 192.168.1.2 0.0.0.255
int g2/0/0
nat outbound 2000 address-group 1
acl 2001
rule permit source 192.168.1.3 0
int g2/0/1
nat outbound 2001
int g2/0/1
nat server protocol tcp global current-interface www inside 192.168.2.100 www



sys
sys AR2
int g2/0/0
ip add 8.8.8.254 24
int g2/0/1
ip add 9.9.9.254 24
int g2/0/2
ip add 10.10.10.254 24
int g0/0/2
ip add 102.1.1.254 24
int g0/0/0
ip add 100.1.1.254 24
int g0/0/1
ip add 101.1.1.254 24
ip route-static 100.1.1.2 32 100.1.1.1



sys
sys SW1

NGFW Basic Configuration

实验3:NGFW_Basic_Configuration

  • 防火墙web管理方式实现
  • 防火墙安全区域的规划配置
  • 默认的情况下,Trust的PC1是否能和PC2通讯? 可以通讯
  • 如果Trust的PC1能够PING DMZ的Server1,安全策略如何实现?
  • 如果DMZ的Server1能够PING Trust的PC1,安全策略如何实现?

小云朵连接了回环网卡

这是回环网卡的ip设置

image-20231007022450233

image-20231007021251862

image-20231007021812598

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
sys
sys FW1
int g0/0/0
ip add 192.168.2.1 24
service-manage all permit
firewall zone dmz
add int g1/0/1
int g1/0/1
ip add 172.16.1.254 24
service-manage all permit
firewall zone untrust
add int g1/0/3
int g1/0/3
ip add 100.1.1.1 24
service-manage all permit
firewall zone trust
add int g1/0/2
add int g1/0/0
int g1/0/2
ip add 192.168.2.254 24
service-manage all permit
int g1/0/0
ip add 192.168.1.254 24
service-manage all permit
q
security-policy
rule name PC1-to-200-trust-to-dmz-icmp
source-zone trust
destination-zone dmz
source-address 192.168.1.1 32
destination-address 172.16.1.100 32
service icmp
action permit
q
rule name 200-to-PC1-dmz-to-trust-icmp
source-zone dmz
destination-zone trust
source-address 172.16.1.100 32
destination-address 192.168.1.1 32
service icmp
action permit
q
rule name PC1-to-200-trust-to-dmz-icmp
source-zone trust
destination-zone dmz
source-address 192.168.1.1 32
destination-address 172.16.1.200 32
service icmp
action permit
nat address-group 1
section 130.1.1.1
mode pat
nat-policy
rule name snat-01
source-zone trust
destination-zone dmz
source-address 192.168.1.1 32
destination-address 172.16.1.200 32
service icmp
action source-nat address-group 1




sys
sys AR1
int g0/0/0
ip add 100.1.1.254 24
int g0/0/1
ip add 8.8.8.254 24
int g0/0/2
ip add 9.9.9.254 24
int g4/0/0
ip add 10.10.10.254 24

NGFW NAT Configuration

实验4:NGFW_NAT_Configuration

Server2 又当dnsServer也当httpServer

Server2配置

image-20231007122901911

image-20231007122923090

image-20231007122937350

Client2当客户端image-20231007123023201

image-20231007122623070

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
sys
sys FW1
firewall zone dmz
add int g1/0/1
int g1/0/1
ip add 172.16.1.254 24
service-manage all permit
firewall zone untrust
add int g1/0/3
int g1/0/3
ip add 100.1.1.1 24
service-manage all permit
firewall zone trust
add int g1/0/2
add int g1/0/0
int g1/0/2
ip add 192.168.2.254 24
service-manage all permit
int g1/0/0
ip add 192.168.1.254 24
service-manage all permit
q
security-policy
rule name PC1-PC3-to-PC2-trust-to-untrust
source-zone trust
destination-zone untrust
source-address 192.168.1.1 32
source-address 192.168.2.1 32
destination-address 8.8.8.8 32
service icmp
action permit
nat-policy
rule name EASYIP
source-zone trust
egress-interface g1/0/3
source-address 192.168.0.0 16
destination-address 8.8.8.8 32
service icmp
action source-nat easy-ip
q
q
ip route-static 0.0.0.0 0 100.1.1.254
security-policy
rule name C2-to-S2-to-PC2-untrust-to-trust
source-zone untrust
destination-zone dmz
source-address 9.9.9.9 32
destination-address 172.16.1.200 32
service dns http
action permit
q
q
nat server HTTP1 protocol tcp global 100.1.1.1 8080 inside 172.16.1.200 80
nat server DNS1 protocol udp global 100.1.1.1 53 inside 172.16.1.200 53
dns resolve
dns server 172.16.1.200



sys
sys AR1
int g0/0/0
ip add 100.1.1.254 24
int g0/0/1
ip add 8.8.8.254 24
int g0/0/2
ip add 9.9.9.254 24
int g4/0/0
ip add 10.10.10.254 24

NGFW NAT Server 内网服务器多台映射

实验5:NGFW_NAT_Server内网服务器多台映射

  • 实现将两台服务器都映射到公网上,提供HTTP服务
  • 如果NAT SERVER不同服务器映射到相同的端口,可以实现吗?如果可以是什么现象?

Client1

image-20231007140050878

image-20231007140111661

image-20231007140030346

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
sys
sys AR1
int g0/0/1
ip add 8.8.8.254 24
int g0/0/0
ip add 100.1.1.254 24
ip route-static 0.0.0.0 0 100.1.1.1




sys
sys FW1
firewall zone dmz
add int g1/0/0
int g1/0/0
ip add 172.16.1.254 24
service-manage all permit
firewall zone untrust
add int g1/0/1
int g1/0/1
ip add 100.1.1.1 24
service-manage all permit
q
ip route-static 0.0.0.0 0 100.1.1.254
security-policy
rule name untrust-to-dmz
source-zone untrust
destination-zone dmz
source-address 8.8.8.8 mask 255.255.255.255
destination-address 172.16.1.100 mask 255.255.255.255
destination-address 172.16.1.200 mask 255.255.255.255
service http
service icmp
action permit
q
nat server HTTP1 zone untrust protocol tcp global interface g1/0/1 8081 inside 172.16.1.100 80
nat server HTTP2 zone untrust protocol tcp global interface g1/0/1 8082 inside 172.16.1.200 80

NGFW NAT ALG

实验6:NGFW_NAT_ALG

需求:使用SmartNAT实现FTP应用,分析NAT-ALG在FTP Port模式下的工作过程。

image-20231007164916587

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
sys
sys FW1
int g1/0/0
ip add 172.168.1.254 24
service-manage all permit
firewall zone dmz
add int g1/0/0
int g1/0/1
ip add 100.1.1.1 24
service-manage all permit
firewall zone untrust
add int g1/0/1
ip route-static 0.0.0.0 0 100.1.1.254
security-policy
rule name dmz-to-untrust-ftp01
source-zone dmz
destination-zone untrust
service ftp icmp
action permit
nat address-group 1
mode no-pat global
section 100.1.1.10 100.1.1.20
smart-nopat 100.1.1.21
route enable
nat-policy
rule name smartnat01
source-zone dmz
destination-zone untrust
source-address 172.168.1.100 32
destination-address 8.8.8.8 32
service ftp icmp
action source-nat address-group 1



sys
sys AR1
int g0/0/0
ip add 100.1.1.254 24
int g0/0/1
ip add 8.8.8.254 24

NGFW NAT双出口设计

实验7:NGFW_NAT双出口设计.rar

image-20231014140520912

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
sys
sys FW1
int g1/0/0
ip add 10.3.0.254 24
service-manage all permit
firewall zone trust
add int g1/0/0
int g1/0/2
ip add 1.1.1.1 24
service-manage all permit
firewall zone name isp1
set priority 10
add int g1/0/2
int g1/0/3
ip add 2.2.2.1 24
service-manage all permit
firewall zone name isp2
set priority 11
add int g1/0/3
int g1/0/1
ip add 10.2.0.254 24
service-manage all permit
firewall zone dmz
add int g1/0/1
ip route-static 0.0.0.0 0 1.1.1.2 pre 59
ip route-static 0.0.0.0 0 2.2.2.2
security-policy
rule name trust-to-isp-icmp01
source-zone trust
destination-zone isp1
destination-zone isp2
service icmp
action permit
nat address-group 1
route enable
section 1.1.1.10 1.1.1.20
mode pat
nat address-group 2
route enable
section 2.2.2.10 2.2.2.20
mode pat
nat-policy
rule name sourcenat01
source-zone trust
destination-zone isp1
source-address 10.3.0.0 mask 255.255.255.0
destination-address 8.8.8.0 mask 255.255.255.0
service icmp
action source-nat address-group 1
rule name sourcenat02
source-zone trust
destination-zone isp2
source-address 10.3.0.0 mask 255.255.255.0
destination-address 8.8.8.0 mask 255.255.255.0
service icmp
action source-nat address-group 2
nat server HTTP1 zone isp1 protocol tcp global interface GigabitEthernet1/0/2 www inside 10.2.0.1 www
nat server HTTP2 zone isp2 protocol tcp global interface GigabitEthernet1/0/3 www inside 10.2.0.1 www
security-policy
rule name isp-to-dmz-http01
source-zone isp1
source-zone isp2
destination-zone dmz
service http
action permit


sys
sys AR1
int g0/0/0
ip add 1.1.1.2 24
int g0/0/1
ip add 8.8.8.252 24
vrrp vrid 1 virtual-ip 8.8.8.254
vrrp vrid 1 priority 120
vrrp vrid 1 track interface g0/0/0 reduced 30
dis vrrp brief


sys
sys AR2
int g0/0/0
ip add 2.2.2.2 24
int g0/0/1
ip add 8.8.8.253 24
vrrp vrid 1 virtual-ip 8.8.8.254
dis vrrp brief

NGFW NAT场景规避环路风险的方法

实验8:NGFW_NAT场景规避环路风险的方法

需求:分析上述NAT环境中存在环路风险是什么原因导致,并且提供解决方案?

image-20231007182358503

1
# PC1 tracert 202.1.1.20会环路
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
sys
sys AR1
int g0/0/0
ip add 202.1.1.2 30
int g0/0/1
ip add 210.1.1.1 24
int g0/0/2
ip add 220.1.1.1 24
ip route-static 202.1.1.20 32 202.1.1.1



sys
sys FW1
int g1/0/0
ip add 192.168.0.1 24
service-manage all permit
int g1/0/1
ip add 202.1.1.1 30
service-manage all permit
q
firewall zone trust
add int g1/0/0
q
firewall zone untrust
add int g1/0/1
q
ip route-static 0.0.0.0 0 202.1.1.2
security-policy
rule name trust-to-untrust
source-zone trust
destination-zone untrust
service icmp http
action permit
nat address-group 1
section 202.1.1.10 202.1.1.20
route enable #这个去了就环路
mode pat
nat-policy
rule name sourcenat01
source-zone trust
destination-zone untrust
source-address 192.168.0.0 24
service icmp http
action source-nat address-group 1

#上述环路是因为在AR1里面设置了一条静态路由(ip route-static),该路由的目的是让数据包有回去的方向,但是在Client1 ping 202.1.1.20 的时候,由于FW1本地没有该路由所以交给了缺省路由解决,缺省路由则会把数据交给AR1,而AR1在前面说到有了静态路由,又会把数据丢给FW1,彼此往复就形成环路。
#解决办法则是:在防火墙内设置黑洞路由,把这个会环路的路由丢黑洞里,或者route enable
#dis nat-policy rule all
#dis f s t v

B2B VPN 建设

实验9:B2B_VPN建设.rar

image-20231015131620231

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
sys
sys AR1
int g0/0/0
ip add 192.168.1.254 24
int g0/0/1
ip add 100.1.1.1 24
ip route-static 0.0.0.0 0 100.1.1.2
acl 3000
rule deny ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
rule permit ip source 192.168.1.0 0.0.0.255
int g0/0/1
nat outbound 3000
acl 3001
rule permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
ipsec proposal 1
transform ah-esp
ah authentication-algorithm sha2-256
esp authentication-algorithm sha2-256
esp encryption-algorithm 3des
encapsulation-mode tunnel
ipsec policy 1 1 manual
security acl 3001
proposal 1
tunnel local 100.1.1.1
tunnel remote 200.1.1.2
sa spi inbound ah 123456
sa spi inbound esp 123456
sa string-key inbound ah simple 123456
sa string-key inbound esp simple 123456
sa spi outbound ah 654321
sa spi outbound esp 654321
sa string-key outbound ah simple 654321
sa string-key outbound esp simple 654321
q
int g0/0/1
ipsec policy 1




sys
sys AR2-ISP
int g0/0/0
ip add 100.1.1.2 24
int g0/0/1
ip add 200.1.1.1 24
int g0/0/2
ip add 8.8.8.254 24



sys
sys AR3
int g0/0/0
ip add 200.1.1.2 24
int g0/0/1
ip add 192.168.2.254 24
ip route-static 0.0.0.0 0 200.1.1.1
acl 3000
rule deny ip source 192.168.2.0 0.0.0.255 destination 192.168.1.0 0.0.0.255
rule permit ip source 192.168.2.0 0.0.0.255
int g0/0/0
nat outbound 3000
acl 3001
rule permit ip source 192.168.2.0 0.0.0.255 destination 192.168.1.0 0.0.0.255
ipsec proposal 1
transform ah-esp
ah authentication-algorithm sha2-256
esp authentication-algorithm sha2-256
esp encryption-algorithm 3des
encapsulation-mode tunnel
ipsec policy 1 1 manual
security acl 3001
proposal 1
tunnel local 200.1.1.2
tunnel remote 100.1.1.1
sa spi inbound ah 654321
sa spi inbound esp 654321
sa string-key inbound ah simple 654321
sa string-key inbound esp simple 654321
sa spi outbound ah 123456
sa spi outbound esp 123456
sa string-key outbound ah simple 123456
sa string-key outbound esp simple 123456
q
int g0/0/0
ipsec policy 1

NGFW GRE TUNNEL Basic Configuration

实验10:NGFW_GRE_TUNNEL_Basic_Configuration.rar

image-20231015172320107

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
sys
sys AR1
int g0/0/0
ip add 100.1.1.254 24
int g0/0/1
ip add 200.1.1.254 24
int g0/0/2
ip add 8.8.8.254 24


sys
sys FW1
firewall zone trust
add int g1/0/0
int g1/0/0
ip add 192.168.1.254 24
service-manage all permit
firewall zone untrust
add int g1/0/1
int g1/0/1
ip add 100.1.1.1 24
service-manage all permit
ip route-static 0.0.0.0 0.0.0.0 100.1.1.254
security-policy
rule name ISP-icmp01
source-zone local
destination-zone untrust
service icmp
action permit
rule name sourcenat01
source-zone trust
destination-zone untrust
service icmp
action permit
nat-policy
rule name sourcenat01
source-zone trust
egress-interface GigabitEthernet1/0/1
source-address 192.168.1.0 mask 255.255.255.0
service icmp
action source-nat easy-ip
int tunnel0
ip add 172.16.1.1 24
tunnel-protocol gre
source 100.1.1.1
destination 200.1.1.1
firewall zone name gre
set priority 10
add interface Tunnel0
security-policy
default action permit
ospf 1
area 0
network 172.16.1.0 0.0.0.255
network 192.168.1.0 0.0.0.255


sys
sys FW2
firewall zone trust
add int g1/0/0
int g1/0/0
ip add 192.168.2.254 24
service-manage all permit
firewall zone untrust
add int g1/0/1
int g1/0/1
ip add 200.1.1.1 24
service-manage all permit
ip route-static 0.0.0.0 0.0.0.0 200.1.1.254
security-policy
rule name ISP-icmp01
source-zone local
destination-zone untrust
service icmp
action permit
rule name sourcenat01
source-zone trust
destination-zone untrust
service icmp
action permit
nat-policy
rule name sourcenat01
source-zone trust
egress-interface GigabitEthernet1/0/1
source-address 192.168.2.0 mask 255.255.255.0
service icmp
action source-nat easy-ip
int tunnel0
ip add 172.16.2.1 24
tunnel-protocol gre
source 200.1.1.1
destination 100.1.1.1
firewall zone name gre
set priority 11
add interface Tunnel0
security-policy
default action permit
ospf 1
area 0
network 172.16.2.0 0.0.0.255
network 192.168.2.0 0.0.0.255

NGFW用户管理和认证部署配置

image-20231015173541524

DHCP中继

image-20230915221920304

image-20230915223928106

  • PC1开dhcp自动获取AR1下发的ip
  • 下面是抓到的报文:

AR1_g0_0_1_DHCP_Unicast.pcapng

AR2_g0_0_0_DHCP_broadcast.pcapng

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
sys
sys AR1
dhcp enable
int g0/0/0
ip add 192.168.12.1 24
ip pool 1
network 192.168.1.0 mask 24
gateway-list 192.168.1.254
int g0/0/0
dhcp select global
ip route-static 192.168.1.0 24 192.168.12.2

sys
sys AR2
dhcp enable
int g0/0/1
ip add 192.168.12.2 24
int g0/0/0
ip add 192.168.1.254 24
dhcp select relay
dhcp relay server-ip 192.168.12.1

sys
sys SW1

实验

交换机划分VLAN配置

一、实验目标

1、理解虚拟LAN(VLAN)基本配置;

2、掌握一般交换机按端口划分VLAN的配置方法;

3、掌握Tag VLAN配置方法。

二、实验背景

某一公司内财务部、销售部的PC通过2台交换机实现通信;要求财务部和销售部的PC可以互通,但为了数据安全起见,销售部和财务部需要进行互相隔离,现要在交换机上做适当配置来实现这一目标。

三、技术原理

VLAN是指在一个物理网段内。进行逻辑的划分,划分成若干个虚拟局域网,VLAN做大的特性是不受物理位置的限制,可以进行灵活的划分。VLAN具备了一个物理网段所具备的特性。相同VLAN内的主机可以相互直接通信,不同VLAN间的主机之间互相访问必须经路由设备进行转发,广播数据包只可以在本VLAN内进行广播,不能传输到其他VLAN中。

Port VLAN是实现VLAN的方式之一,它利用交换机的端口进行VALN的划分,一个端口只能属于一个VLAN。
Tag VLAN是基于交换机端口的另一种类型,主要用于是交换机的相同Vlan内的主机之间可以直接访问,同时对不同Vlan的主机进行隔离。Tag VLAN遵循IEEE802.1Q协议的标准,在使用配置了Tag VLAN的端口进行数据传输时,需要在数据帧内添加4个字节的802.1Q标签信息,用于标示该数据帧属于哪个VLAN,便于对端交换机接收到数据帧后进行准确的过滤。

四、实验设备

PC1,PC2,PC3,PC4

两台S5700交换机

五、实验的步骤和结果

image-20221224163323380

结果就是PC1ping通PC3,PC2ping通PC4,PC1和PC3都不能访问PC2和PC4

image-20221224163549970

image-20221224163612934

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# LSW1配置:
sys
sys LSW1
vlan b 10 20
int g0/0/2
p l a
p d v 10
q
int g0/0/3
p l a
p d v 20
q
int g0/0/1
p l t
p t a v 10 20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# LSW2配置:
sys
sys LSW2
vlan b 10 20
int g0/0/2
p l a
p d v 10
q
int g0/0/3
p l a
p d v 20
q
int g0/0/1
p l t
p t a v 10 20

PC1配置(所有的PC只需配ip和子网掩码即可)

image-20221224164203896

三层交换机基本配置

一、实验目标

1、理解三层交换机的基本原理;

2、掌握三层交换机物理端口开启路由功能的配置方法。

二、实验背景

公司现有1台三层交换机,要求你进行测试,该交换机的三层功能是否工作正常。

三、技术原理

三层交换机是带有三层路由功能的交换机,也就是这台交换机的端口既有三层路由功能,也具有二层交换功能。三层交换机端口默认为二层口,如果需要启用三层功能就需要在此端口输入undo portswitch命令。如果切换二层交换机可以用portswitch命令。

四、实验设备

PC1,PC2

一台S5700交换机

五、实验的步骤和结果

讲一下我的设想,PC1和PC2处于不同网段,想要互访必须要经过路由,但是实验只有一个交换机,我们可以使用交换机的三层功能(即套一个路由器,这个路由器是虚拟的,这就是三层路由功能)

image-20230104192525719

交换机配置

1
2
3
4
5
6
7
8
9
10
11
12
13
sys
sys LSW1
vlan batch 10 20
int g0/0/1
p l a
p d v 10
int vlanif10
ip add 192.168.1.254 24
int g0/0/2
p l a
p d v 20
int vlanif20
ip add 192.168.2.254 24

PC配置

image-20230104193842862

image-20230104193858032

利用三层交换机实现VLAN间路由(有问题。。。)

一、实验目标

1、掌握交换机Tag VLAN的配置;
2、掌握三层交换机基本配置方法;
3、掌握三层交换机VLAN路由的配置方法;
4、通过三层交换机实现VLAN间相互通信。

二、实验背景

某企业有两个主要部门,技术部和销售部,分处于不同的办公室,为了安全和便于管理对两个部门的主机进行了VLAN的划分,技术部和销售部分处于不同的VLAN,先由于业务的需求需要销售部和技术部的主机能够相互访问,获得相应的资源,两个部门的交换机通过一台三层交换机进行了连接。

三、技术原理

三层交换机具备网络层的功能,实现VLAN相互访问的原理是:利用三层交换机的路由功能,通过识别数据包的IP地址,查找路由表进行选路转发,三层交换机利用直连路由可以实现不同VLAN之间的相互访问。三层交换机给接口配置IP地址。采用SVI(交换虚拟接口)的方式实现VLAN间互连。SVI是指为交换机中的VLAN创建虚拟接口,并且配置IP地址。

四、实验设备

PC1,PC2,PC3,PC4

两台S5700交换机

五、实验的步骤和结果

image-20230104211928090

交换机LSW1配置

1
2
3
4
5
6
7
8
9
10
11
12
sys
sys LSW1
vlan batch 10 20
int g0/0/1
p l a
p d v 10
int g0/0/2
p l a
p d v 20
int g0/0/3
p l t
p t a v 10 20

交换机LSW2配置

1
2
3
4
5
6
7
8
9
10
11
12
sys
sys LSW2
vlan batch 10 20
int g0/0/1
p l t
p t a v 10 20
int g0/0/2
p l a
p d v 10
int g0/0/3
p l a
p d v 20

PC1配置

image-20230104212214169

PC2配置

image-20230104212226789

PC3配置

image-20230104212237237

PC4配置

image-20230104212252180

我发现这实验有问题的。。。可能是我技术不好,这个更改后的配置,更改前的配置如下:

交换机LSW2配置(其他配置不变)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sys
sys LSW2
vlan batch 10 20
int g0/0/1
p l t
p t a v 10 20
int g0/0/2
p l a
p d v 10
int g0/0/3
p l a
p d v 20
int vlanif 10
ip add 192.168.1.254 24
int vlanif 20
ip add 192.168.2.254 24

我开启了三层功能会发现vlan全部失效,vlan10可以访问vlan20了。。。无奈之下我只能把vlanif的配置去掉,所以上面的配置ping网关全部都是失联的。。。

路由器综合路由配置

一、实验目标

1.掌握中和路由器的配置方法;

2.掌握查看通过路由重分布学习产生的路由;

3.熟悉广域网线缆的链接方式。

二、实验背景

假设某公司通过一台三层交换机连到公司出口路由器 R1上,路由器 R1再和公司外的另一台路由器 R2 连接。三层交换机与 R1 间运行 RIPV2 路由协议,R1与 R2 间运行 OSPF 路由协议。现要做适当配置,实现公司内部主机与公司外部主机之间的相互通信。

三、技术原理

为了支持本设备能够运行多个路由协议进程,系统软件提供了路由信息从一个路由进程重分布到另一个路由进程的功能。比如你可以将 OSPF 路由域的路由重新分布后通高 RIP 路由域中,也可以将 RIP 路由域的路由重新分布后通告到OSPE 路由域中。路由的相互重分布可以在所有的 IP路由协议之间进行。要把路由从一个路由域分布到另一个路由域,并且进行控制路由重分布。

四、实验设备

S5700交换机一台,AR2220路由器两台,PC两台

五、实验的步骤和结果

image-20230104215057099

交换机LSW1配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
sys
sys LSW1
v b 10 20
int g0/0/2
p l a
p d v 10
int vlan 10
ip add 192.168.1.1 24
int g0/0/1
p l a
p d v 20
int vlan 20
ip add 192.168.2.1 24
rip
version 2
undo summary
network 192.168.1.0
network 192.168.2.0

AR1配置

1
2
3
4
5
6
7
8
9
10
11
12
13
sys
sys AR1
int g0/0/1
ip add 192.168.2.2 24
int g0/0/0
ip add 192.168.3.1 24
rip
version 2
undo summary
network 192.168.2.0
ospf 1 router-id 1.1.1.1
area 0
network 192.168.3.0 0.0.0.255

AR1路由重分布配置

1
2
3
4
5
rip
import-route ospf
q
ospf 1
import-route rip

AR2配置

1
2
3
4
5
6
7
8
9
10
sys
sys AR2
int g0/0/1
ip add 192.168.3.2 24
int g0/0/0
ip add 192.168.4.1 24
ospf 1 router-id 2.2.2.2
area 0
network 192.168.3.0 0.0.0.255
network 192.168.4.0 0.0.0.255

PC配置

image-20230104215454559

image-20230104215509179

单臂路由

一、实验设备

PC1,PC2

一台S5700交换机和一台AR2220交换机

二、实验的步骤和结果

image-20230101193234867

交换机配置

1
2
3
4
5
6
7
8
9
10
11
12
sys
sys LSW1
vlan batch 10 20
int g0/0/1
p l a
p d v 10
int g0/0/2
p l a
p d v 20
int g0/0/3
p l t
p t a v 10 20

路由器配置

1
2
3
4
5
6
7
8
9
10
sys
sys AR1
int g0/0/0.10 #创建子接口
ip add 192.168.10.254 24
dot1q termination vid 10 #配置子接口终结的VLAN ID
arp broadcast enable #开启子接口的arp广播功能
int g0/0/0.20
ip add 192.168.20.254 24
dot1q termination vid 20
arp broadcast enable

PC配置

image-20230101193316730

image-20230101193332409

单臂路由转三层交换

一、实验设备

PC1,PC2

一台S5700交换机

二、实验的步骤和结果

image-20230101203109624

交换机配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sys
sys LSW1
vlan batch 10 20
int g0/0/1
p l a
p d v 10
int g0/0/2
p l a
p d v 20
int g0/0/3
p l t
p t a v 10 20
int vlanif 10
ip add 192.168.10.254 24
int vlanif 20
ip add 192.168.20.254 24

PC配置

image-20230101193316730

image-20230101193332409

[toc]

1.Nginx 安装

一、安装编译工具及库文件

1
2
3
4
5
#安装编译环境:gcc gcc-c++
#安装openssl-devel(使nginx支持ssl)
#安装lib
yum -y install make zlib zlib-devel gcc gcc-c++ libtool openssl openssl-devel

二、首先要安装 PCRE

PCRE 作用是让 Nginx 支持 Rewrite 功能。

1
yum -y install pcre pcre-devel

三、安装 Nginx

1、下载 Nginx,下载地址:https://nginx.org/en/download.html

1
# 找到nginx-1.22.0这个稳定包,下载下来,然后用rz上传到服务器

2、解压安装包

1
tar -xzvf nginx-1.22.0.tar.gz

3、进入安装包目录

1
cd nginx-1.22.0

4、编译

1
./configure --prefix=/usr/local/nginx

5、安装

1
make && make install

6、查看nginx版本

1
/usr/local/nginx/sbin/nginx -v

四、启动Nginx

进入安装好的目录/usr/local/nginx/sbin

1
2
3
4
./nginx           启动
./nginx -s stop 快速关闭
./nginx -s quit 优雅关闭,在退出前完成已经接受的连接请求
./nginx -s reload 重新加载配置

五、关于防火墙和SELINUX

关闭防火墙

1
systemctl stop firewalld.service

禁止防火墙开机自启

1
systemctl stop firewalld.service
1
2
3
4
5
6
7
#关闭SELINUX
sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
#修改完成之后重启服务器,然后getenforce看看
#当然如果不想重启服务器也可以先修改好配置,然后用 setenforce 0来临时关闭SELINUX,下次重启自然会识别配置文件了。
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive

六、添加systemctl管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cat << EOF > /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStartPre=/bin/mkdir /tmp/nginx
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF

七、创建环境变量

1
2
3
4
5
vim /etc/profile.d/nginx.sh

NGINX_HOME=/usr/local/nginx
PATH=$NGINX_HOME/sbin:$PATH
export NGINX_HOME PATH

source /etc/profile.d/nginx.sh

启动nginx

1
2
mkdir -p /tmp/nginx
nginx

八、修改ip为静态地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="ff458f3b-f132-400d-ae06-86277ce43612"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.110.131 # 静态ip地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.110.1 # 网关地址
BROADCAST=192.168.110.255 # 广播地址
BOOTPROTO="static" # 修改静态

2.Nginx的conf学习

nginx.conf的配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
more /usr/local/nginx/conf/nginx.conf

#user nobody;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


http {
include mime.types;
default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

# 虚拟服务器 这里开始
server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.htm;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# 虚拟服务器 这里结束

# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;

# location / {
# root html;
# index index.html index.htm;
# }
#}


# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;

# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

# location / {
# root html;
# index index.html index.htm;
# }
#}

}

虚拟主机

虚拟主机应用场景:一个WEB服务器同时发布多个WEB站点

用ip基于端口访问
1
2
3
4
5
6
7
8
9
10
# 在跟目录下放置www目录,然后内置两个目录,分别是www目录和void目录
# 写入不同的html页面
[root@localhost /]# cd www
[root@localhost www]# ls
void www
[root@localhost www]# cat void/index.html
this is void web site...
[root@localhost www]# cat www/index.html
this is www web site...
[root@localhost www]#

修改nginx.conf配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@localhost www]# vim /usr/local/nginx/conf/nginx.conf

server {
listen 80; #网页访问端口80
server_name localhost;
location / {
root /www/www; #网址指定目录
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 81; #网页访问端口81
server_name localhost;
location / {
root /www/void; #网址指定目录
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
用域名基于端口访问
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@localhost www]# vim /usr/local/nginx/conf/nginx.conf

server {
listen 80; #网页访问端口80
server_name www.julintongxue.top;#域名
location / {
root /www/www; #网址指定目录
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 81; #网页访问端口81
server_name void.julintongxue.top;#域名
location / {
root /www/void; #网址指定目录
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

[toc]

简介

目前,互联网资源的普及,已经可以让每人搭建独立搭一个个人博客了;这边就教大家怎么搭建Hexo并配置。大家可以参考Hexo官方文档配合使用。

前提

Windows端

安装:

  1. Node.js
  2. Git

在我们的日常开发中经常会遇到这种情况:手上有好几个项目,每个项目的需求不同,进而不同项目必须依赖不同版的 NodeJS 运行环境。如果没有一个合适的工具,这个问题将非常棘手。所以nvm应运而生。

而我们传统的安装 NodeJS的方法很容易出现错误,而且配置起来也特别麻烦,所以我们采用nvm这个项目管理工具来配合我们安装博客会更加的丝滑而且几乎没有报错的可能,读者也可以根据自己喜欢的版本无缝切换。

Windows下配置NVM

安装NVM

进入NVM-Windows项目发布地址: https://github.com/coreybutler/nvm-windows/releases ,选择最新发行版本nvm-setup.zip下载:

image-20220710000533630

image-20220710000654131

安装完成后,

在搜索栏查找poweshell,选中x86powershell鼠标右击选择以管理员身份运行

image-20221127134846193

Powershell下,输入NVM,即可发现安装完成:

配置国内源

中国大陆这边连接Node.jsNPM官方服务器有点困难,甚至不单单是下载慢了,有时候直接无法下载使用。所以我们换NVMNode.js成国内源:

到你NVM安装路径,(我的默认安装在:C:\Users\orange\AppData\Roaming\nvm,那么你如果是默认安装的话,里面的orange要改成你自己的用户名)打开setting.txt文件(如果没有,则创建即可),更改:

注意不要照抄文档配置,要根据自己的安装路径写入对应配置

1
2
3
4
5
6
root: C:\Users\orange\AppData\Roaming\nvm
path: C:\Program Files\nodejs
arch: 64
proxy: none
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/

这里解释一下参数:

  • root:NVM的安装地址。即上文的%NVM_HOME%
  • path:激活node.js时的存储路径,即上文的%NVM_SYMLINK%
  • arch:系统架构,如果你的Windwos不是x64,则填32
  • proxy:是否走代理
  • node_mirror:node.js的下载源,这里使用的是淘宝源
  • npm_mirror:npm的下载源,这里使用的是淘宝源

image-20230308210424315

管理与安装Node.js

查看已经版本

1
nvm list

查看已经安装的版本:

这里我已经安装了16.15.1版本的node.js,如果你是刚刚安装好的,那么这里将是空白一片

image-20220710001705412

如图:

Snipaste_2022-11-28_14-01-24

查看可安装版本

如何查看通过NVM安装的Node.js版本呢?
你可以直接使用NVM命令:

1
2
# Windows
nvm list available

image-20220710002047715

安装Node.js

我们安装16.15.1版本node.js:

1
nvm install 16.15.1

image-20220710002225007

激活Node.js版本

我们安装好Node.js以后,需要激活它

1
nvm use 16.15.1

image-20220710002353777

然后我们发现出现这堆乱码,其实是因为我们没有用管理员权限的powershell,用管理员的身份打开powershell再来一次即可生效。

安装Git

很简单,无脑下一步!!!

Git的官网地址 给你们啦!!!

安装和管理Hexo博客

使用Npm安装Hexo

因为Node里自带Npm,所以我们可以直接使用Npm;这一步,总的来说,就是:npm install -g hexo为了方便国内用户,提前加了一步更换npm为腾讯云源,非大陆用户可以跳过,Windows用户打开cmdpowershell输入:

1
npm config set registry http://mirrors.cloud.tencent.com/npm/

然后安装hexo-cli

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PS C:\WINDOWS\system32> node -v
v16.15.1
PS C:\WINDOWS\system32> npm install hexo-cli --location=global
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.

added 59 packages, and audited 60 packages in 58s

14 packages are looking for funding
run `npm fund` for details

found 0 vulnerabilities
npm notice
npm notice New minor version of npm available! 8.11.0 -> 8.13.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.13.2
npm notice Run npm install -g npm@8.13.2 to update!
npm notice

如果出现这个错误

更新一下npm就行了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
npm install -g npm-windows-upgrade


set-ExecutionPolicy RemoteSigned

执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): y


npm-windows-upgrade
npm-windows-upgrade v6.0.1
? Which version do you want to install? 8.13.2
Checked system for npm installation:
According to PowerShell: D:\nodejs
According to npm: D:\nodejs
Decided that npm is installed in D:\nodejs
Upgrading npm... |

Upgrade finished. Your new npm version is 8.13.2. Have a nice day!

更新完成之后就能顺利安装成功hexo了

安装好以后,测试一下:

1
hexo

image-20220710004601578

没有出现未知命令,说明安装成功。可以接下来操作了。

如果出现hexo : 无法加载文件 C:\Program Files\nodejs\hexo.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.micros oft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1。

那是因为你用的是win11系统,你需要在设置->隐私和安全性->开发者选项->允许本地powershell脚本在为签名的情况下运行

如图:

image-20230308210045396

应用之后,重新打开新的powershell,再次输入hexo即可。

image-20230308210149994

或者

1
set-ExecutionPolicy RemoteSigned

image-20230930195227900

创建Hexo

因为我们已经安装好Git,所以我们直接是由鼠标右键的Git Bash Here,然后在你喜欢的一个盘符里面创建一个文件夹并且命名。

image-20220710233249939

这里我在D盘创建了个orange的目录,以后我就在里面书写我的博客了,这个目录的文件非常重要,要记得备份哦。。。。。。

image-20220710233151967

刚刚我们已经切换到orange目录,后续操作均在orange目录内进行。确保:

  • Windows用户确保cmdpowershell运行目录在刚刚创建的的orange文件夹内;
  • 注意⚠️:这个目录,日后就是是博客运行目录了。记得备份该文件夹。

在目录内初始化博客

初始化orange目录:

1
2
# 进目录之后,在Git bash里面输入下面目录初始化
hexo init

image-20220710233936892

输入命令后,它会自动爬取hexo的初始化目录,在国内网络是非常不好的,如果出错需要删除目录内容重新执行命令直到成功。

构建Hexo

初始化Hexo后,其实Hexo就可以使用了;构建Hexo:

1
hexo g

会在当前目录下生成一个叫public的文件夹,这个文件夹就是根据你Hexo的配置,生成的HTML+CSS+JS的静态文件了。

启动Hexo内建服务器

其实,整个public文件就是一个博客了,但是我们还要部署Nginx等网络环境或者使用HBuilderX等根据,启动Web服务器才能用浏览器本地IP(即:127.0.0.1localhost)加端口进行访问;为了减少麻烦,可以使用Hexo内建服务器:

1
hexo s

image-20220710234306097

我们可以去127.0.0.1:4000网址看看初始化页面的样子

image-20220710234335015

部署Hexo到远程平台

上述操作,我们已经把Hexo部署在本地;接下来,我们来看看怎么部署到远程平台,部署到远程平台后,公网用户就可以访问了(也就是可以让你小伙伴通过浏览器访问到你的博客)。

部署Hexo到GitHub

GitHub创建仓库

到Github上创建仓库

注意:为了能通过 <你的 GitHub 用户名>.github.io 域名访问,你的仓库(repository) 应该直接命名为:
<你的 GitHub 用户名>.github.io

比如:你的用户名叫:Demo;
那么,你就创建一个仓库叫:Demo.github.io

image-20220710234923191

image-20220710234953614

GitHub现在新的仓库,分支为main,而Hexo默认用master分支。所以创建好后进入仓库,看看是什么分支:

image-20220710235020234

我的博客已经推送过一次了,现在是master,接下来先安装博客里面的git,让我们的博客拥有推送的能力

本地安装hexo-deployer-git

在博客目录内,使用命令窗口/终端输入:

1
2
3
#注意这些插件是安装在博客目录内的,所以是跟随博客内容一起走的
#这个插件是提供上传git能力
npm install hexo-deployer-git --save

修改博客主配置文件

打开博客目录下的_config.yml文件,编辑(这边的可以用记事本),type后的’ ‘,填’git’,然后补上其他内容:

1
2
3
4
5
# 下面这个网址是我的github的一个链接
deploy:
type: git
repo: git@github.com:julintongxue/julintongxue.github.io.git
branch: master

image-20220710235512404

image-20220710235652501

复制HTTPS或者SSH都可以,除了网址你填自己的之外,其他的要和我的符合一致哦

博客推送

在博客目录下命令窗口/终端输入

1
2
3
4
git config --global user.email "your_email"
git config --global user.name "your_name"
# hexo d就是推送博客到指定的地方(本博客推送的地方是Github)
hexo d

会弹出一个github的登陆框,登录上你自己的github即可

然后你访问

<你的 GitHub 用户名>.github.io这个网址就出现你的hexo网站了,你的博客生涯正式开始。。。

image-20220711001206320

配一下ssh公钥验证,这样每次推送就不用次次登录一次Github账号密码

1
ssh-keygen -t rsa -C "your_email"

一路下一步之后,找到你c盘下的用户,找到一个.ssh的隐藏文件夹,在里面有个id_rsa.pub文件,把里面内容复制到github的账户设置里面的ssh验证

image-20220711000855560

因为github在国外,有些时候推送会出现ssl出错,其实就是网络差,我们在Git Bash里面输入下面这行命令,不验证ssl:

1
git config --global http.sslVerify "false"

博客美化

很显然,刚刚装好的博客,丑的一批,啥都没有,那么怎么把这个丑丑的博客改造成为下图那样干净、整洁还有二次元味道捏( ̄▽ ̄)*

image-20230401005302966

主题

更换主题

在博客根目录下,打开git bash,然后克隆代码

1
git clone https://github.com/theme-next/hexo-theme-next themes/next-reloaded

然后修改博客根目录下的全局配置文件_config.ymltheme后面的字母改为your_theme_name,即next-reloaded

image-20230401130703259

头像

主题菜单

隐藏网页底部

网易云音乐外链

看板娘-初音未来

报错

在安装配置node时,cmd检查node没问题

image-20230413013508753

但是检查npm就出现npm WARN config global –global, –localare deprecated. Use–location=global instead.

image-20230413013542955

我们就要来到nvm的路径找到里面的v16.15.1的node的文件夹C:\Users\orange\AppData\Roaming\nvm\v16.15.1

我们需要修改两个文件npmnpm.cmd

image-20230413013913294

将npm文件的第23行,修改成下图样式,命令如下,可以直接粘贴

1
prefix --location=global

image-20230413014025801

image-20230413014108237

将npm.cmd文件的第12行,修改成下图样式,命令如下,可以直接粘贴,修改完保存。

1
prefix --location=global

image-20230413014223400

image-20230413014302436

那么,我们再次打开cmd,执行一下命令再看看还有没报错

image-20230413014433543