子网掩 …
子网掩码:用于将 IP 地址分为网络部分和主机部分,例如 255.255.255.0 表示一个 C 类网络。
IPv6:IPv6 地址由 128 位二进制数组成,通常以冒号分隔的八组四位十六进制数表示,如 2001:0db8:85a3:0000:0000:8a2e:0370:7334。IPv6 提供了几乎无限的地址数量,解决了 IPv4 地址耗尽的问题。
前缀长度:用于表示网络部分的长度,例如 /64 表示前 64 位是网络部分。
IPv6 解决了 IPv4 地址耗尽的问题,内置了 IPsec(Internet Protocol Security),提供了更强的安全性。并且 IPv6 的地址结构使得路由更加高效,减少了路由表的大小。
在 Windows 终端中使用 ipconfig 命令可以查看网络状态:
PS C: \Users\sukipai> ipconfig
Windows IP 配置
......
以太网适配器 vEthernet (桥接_无线):
连接特定的 DNS 后缀 . . . . . . . :
IPv6 地址 . . . . . . . . . . . . : 240e:430:c40:59a:6a34:bfeb:b070:f310
临时 IPv6 地址。. . . . . . . . . : 240e:430:c40:59a:507d:5a73:6d22:5b5a
本地链接 IPv6 地址。. . . . . . . : fe80::a862:244b:9dbf:dbf7%16
IPv4 地址 . . . . . . . . . . . . : 192.168.31.109
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关。. . . . . . . . . . . . : fe80::3c86:b1ff:fe5a:21c0%16
192.168.31.102
......
如果你的 IPv6 地址存在且为 240 开头,那么你拥有了公网的 IPv6 地址。本地链接 IPv6 地址是由 fe80+ 网卡计算出的后缀组成,只能在内网中访问。由该命令还能得到 IPv4 地址(私有),默认网关等等信息。
与 IPv4 不同,IPv6 地址由于分配方式与 IPv4 的不同,往往一台设备存在多个 IPv6 地址(图中就有两个)。
DNS
DNS(Domain Name System,域名系统)是互联网中用于将域名转换为 IP 地址的服务。它使得用户可以通过易于记忆的域名(如 www.example.com)访问网站,而不需要记住复杂的 IP 地址。DNS 的主要功能是将域名解析为 IP 地址。当用户在浏览器中输入一个域名时,DNS 服务器会查找该域名对应的 IP 地址,并将请求转发到该 IP 地址对应的服务器。
DNS 解析过程包括以下几个步骤:
- 本地缓存查询:首先检查本地缓存中是否有该域名的解析记录。
- 递归查询:如果本地缓存中没有记录,DNS 客户端会向本地 DNS 服务器发送查询请求。
- 迭代查询:本地 DNS 服务器会向其他 DNS 服务器查询,直到找到该域名的 IP 地址。
- 缓存记录:查询结果会被缓存,以便下次快速响应相同的查询请求。
A/AAAA 记录
-
A 记录:A 记录用于将域名映射到 IPv4 地址。例如,
www.example.com的 A 记录可能是192.0.2.1。当用户访问www.example.com时,DNS 服务器会查找其 A 记录,并将请求转发到对应的 IPv4 地址。 -
AAAA 记录:AAAA 记录用于将域名映射到 IPv6 地址。例如,
www.example.com的 AAAA 记录可能是2001:db8:85a3::8a2e:370:7334。随着 IPv6 的普及,AAAA 记录变得越来越重要。
可以发现,IPv6 虽然地址域很广,相对来说很安全,但一旦你绑定了域名,其他人就可以通过域名来解析 DNS 获取到你的 IPv6 地址,这就显得 IPv6 也没有那么“安全”了,因此,无论是 IPv4 还是 IPv6,进行公网访问时都应该做好安全防护,切忌在公网上裸奔。
CNAME
- CNAME 记录:CNAME 记录用于将一个域名指向另一个域名。这在需要将多个域名指向同一个目标时非常有用。例如,
blog.example.com的 CNAME 记录可能是www.example.com。当用户访问blog.example.com时,DNS 服务器会将其解析为www.example.com的 IP 地址。
我们来实操一下通过 ping 获取某个域名的 IP 地址。
# ping baidu.com,该网站只有IPv4地址
PS C: \Users\> ping baidu.com
正在 Ping baidu.com [39.156.66.10] 具有 32 字节的数据:
来自 39.156.66.10 的回复: 字节=32 时间=29ms TTL=125
# ping 我的音乐服务,走了Cloudflare代理,因此是v4/v6双栈的
PS C: \Users\> ping music.2343455.xxx
正在 Ping music.2343455.xxx [2606:4700:3036::6815:eb0] 具有 32 字节的数据:
来自 2606:4700:3036::6815:eb0 的回复: 时间=17ms
来自 2606:4700:3036::6815:eb0 的回复: 时间=35ms
2606:4700:3036::6815:eb0 的 Ping 统计信息:
数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 17ms,最长 = 35ms,平均 = 26ms
PS C: \Users\> ping -4 music.2343455.xxx
正在 Ping music.2343455.xxx [104.21.14.176] 具有 32 字节的数据:
来自 104.21.14.176 的回复: 字节=32 时间=15ms TTL=125
来自 104.21.14.176 的回复: 字节=32 时间=31ms TTL=125
来自 104.21.14.176 的回复: 字节=32 时间=14ms TTL=125
来自 104.21.14.176 的回复: 字节=32 时间=14ms TTL=125
104.21.14.176 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 14ms,最长 = 31ms,平均 = 18ms
从这里我们也能看出 Windows 对两类 IP 的处理逻辑:优先使用 IPv6 地址访问,除非网站没有开通 IPv6 或用户指定使用 IPv4。
DHCP/DHCPv6/SLAAC
DHCP 协议、DHCPv6 协议和 SLAAC 协议在网络中用于自动分配 IP 地址和其他网络配置参数,确保设备能够顺利连接到网络。
DHCP(Dynamic Host Configuration Protocol) 是一种网络协议,用于自动分配 IP 地址和其他网络配置参数(如子网掩码、默认网关和 DNS 服务器地址)给网络设备。DHCP 通过动态分配 IP 地址,简化了网络管理,减少了手动配置的错误和重复 IP 地址的问题。
DHCP 自动分配 IP 地址和其他网络参数,减少手动配置的错误。这些分配后的 IP 地址可以动态分配和回收,提高 IP 地址的利用率。通过 DHCP 服务器可以更加集中的集中管理网络配置,便于维护和更新。
例如,我们只需要在路由器上配置 IP 的分配规则即可,就不需要在每台设备上单独配置 IP 地址了,在使用网络的设备上,这些配置过程是自动化的。
DHCPv6(Dynamic Host Configuration Protocol for IPv6) 是 DHCP 的 IPv6 版本,用于自动分配 IPv6 地址和其他网络配置参数,它被专门设计用于 IPv6,支持 IPv6 的特性。
使用 DHCPv6 协议分配到的 IPv6 地址往往具有以下模样:
240e:430:3018:ac::3ac/64
240e:430:3018:ac::1/64
240e:430:3018:ac::e2/64
240e:430:3018:ac::8/64
这是由于 DHCPv6 协议本就是为了便于管理而存在,因此为设备分配的后缀往往不会很长,这或许会带来一些安全问题。
SLAAC
SLAAC(Stateless Address Autoconfiguration) 是一种 IPv6 地址自动配置机制,允许设备在没有 DHCPv6 服务器的情况下自动获取 IPv6 地址。SLAAC 使用路由器通告(RA)消息来提供网络前缀和其他配置信息,设备根据这些信息生成自己的 IPv6 地址。
用大白话说,DHCPv6 是由路由器告诉使用设备——我给你这个地址,你只管拿去用。而 SLAAC 则是,你路由器给我一个网络前缀,我自己通过某种方式提供给你一个后缀,两者组合成一个完整的 IPv6 地址,至于后缀怎么得到的,你路由器不需要关心。
但是 SLAAC 的无状态特性也导致设备缺乏集中统一的管理机制,难以对网络中的设备进行统一管理。但又很幸运,DHCPv6 和 SLAAC 协议并不冲突,两者可以同时使用,可以同时获得两种协议的优点,但这会对路由器增加一定的负担。
对于普通家庭用户而言,仅使用 SLAAC 协议即可,因为家庭设备往往最多几十个,使用域名统一管理更加合适(即便是 DHCPv6 的简单后缀,也还是很难记住的)。
SLAAC 与 DHCPv6 的比较
-
SLAAC:
- 无状态,设备自动配置。
- 依赖路由器通告(RA)消息。
- 适合大规模网络,配置简单。
- 无法提供高级配置信息。
-
DHCPv6:
- 有状态,服务器维护客户端状态。
- 通过 DHCPv6 服务器分配地址和配置信息。
- 适合需要集中管理和高级配置的网络。
- 配置复杂,需要维护服务器。
在实际应用中,SLAAC 可以与 DHCPv6 结合使用,以满足不同网络环境的需求。
子网掩码与 IPv6 前缀
这一块之前已经有文章进行了详细但不专业的地解说,这里不再赘述。
防火墙
Windows 防火墙是 Windows 操作系统内置的安全功能,用于保护计算机免受未经授权的访问和网络攻击。它通过监控和控制进出计算机的网络流量,确保只有合法的流量通过,从而提高系统的安全性。
Windows 防火墙的主要功能主要是阻止未经授权的访问:
- 入站规则:控制哪些外部流量可以进入计算机。
- 出站规则:控制哪些本地流量可以发送到外部网络。
一般来说互联网的危险性都来自于外部,也就是入站流量(出站流量则是去黑别人),因此配置防火墙主要也是配置入站规则。
Windows 默认有三种网络配置,他们拥有不同的安全等级,当然,你也可以在设置中禁用防火墙,但不建议这么做。
- 公共网络:适用于公共场合,如咖啡店或机场,提供最高级别的保护。
- 私有网络:适用于家庭或工作网络,提供中等级别的保护。
- 域网络:适用于企业环境,提供最低级别的保护,通常用于内部网络。
但这只是官方的说法,实际上他们只是开放的应用程序不同而已,你也可以自行把公共网络配置为“私有”。
配置 Windows 防火墙
基本配置
在“设置”APP 中,我们可以进行一些防火墙基本配置。
- 打开“设置”。
- 选择“隐私和安全性” > “Windows 安全中心”。
- 在左侧菜单中选择“防火墙与网络保护”以进入防火墙设置。

点击“允许应用通过防火墙”,可以针对每个应用程序进行单独配置

点击“允许其他应用”,可以给不在列表中的应用添加防火墙规则。
可以看到,此处对防火墙的设置非常简便,它针对的是某个“应用程序”,而不是 linux 系统中常见的端口号。这对于普通用户来说非常友好,但控制的粒度还是不够细。
高级配置
点击“高级设置”,进入高级配置页面,可以看到界面相较之前复杂许多。

配置入站规则
- 在“高级安全 Windows 防火墙”窗口中,选择“入站规则”。
- 点击“新建规则”以创建新的入站规则。
- 选择规则类型(如程序、端口、自定义等),并根据提示完成配置。
- 程序:允许或阻止特定程序的流量。
- 端口:允许或阻止特定端口的流量。
- 自定义:允许或阻止特定 IP 地址或子网的流量。

这种配置方式就与 Linux 下的端口号放行比较类似了。
配置出站规则
- 在“高级安全 Windows 防火墙”窗口中,选择“出站规则”。
- 点击“新建规则”以创建新的出站规则。
- 选择规则类型(如程序、端口、自定义等),并根据提示完成配置。
一般来说无需手动配置出站规则,因为……嘿嘿
配置连接安全规则
- 在“高级安全 Windows 防火墙”窗口中,选择“连接安全规则”。
- 点击“新建规则”以创建新的连接安全规则。
- 选择规则类型(如隔离、身份验证方法、IPsec 等),并根据提示完成配置。
收起