news 2026/9/17 2:35:35

VMware Workstation上部署pfSense:开源防火墙与软路由实验指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VMware Workstation上部署pfSense:开源防火墙与软路由实验指南

如果你和我一样,不想为了做网络实验专门买一台物理机,那在 VMware Workstation 上跑 pfSense 绝对是最省事的玩法。pfSense 是社区里用得最多的开源防火墙发行版之一,社区版(CE)完全免费,官方镜像下载即用;配合 VMware 的虚拟网络,你完全可以在同一台 PC 上模拟出 WAN、LAN 甚至 DMZ 多段网络,做 NAT、防火墙规则、DHCP、端口转发这些实验,逻辑和真实设备几乎没有区别。这篇文章我按自己的实操习惯,从镜像下载、虚拟机创建、系统安装,到 Web 后台的基础配置一步步写下来,适合刚接触软路由和开源防火墙、或者在 home lab 里想折腾一套干净网关环境的人参考。

1. 先想清楚:为什么是“pfSense + VMware Workstation”这套组合

1.1 这套方案解决什么问题

先说 pfSense 本身。它不是一个“简化版玩具”,而是一个基于 FreeBSD 的完整防火墙/路由器发行版,社区版(CE)完全免费,默认提供了静态路由、NAT、防火墙规则、DHCP、DNS Forwarder、流量整形、入侵检测等等一大堆东西。你可以把它理解成一台“软件定义的路由器”,只要给一台 x86 机器装上,它就能当企业边缘网关来用。

而 VMware Workstation 的价值在于“虚拟化实验”。你得知道,做网络实验最烦人的事情不是配规则,而是硬件不够用。一台物理机只能装一个系统,想模拟内外网还得凑两台电脑、若干网线,折腾半天只为了测一条 NAT 规则,实在划不来。VMware 里就不一样了,你可以给 pfSense 虚拟机分配多块虚拟网卡,再虚拟出不同的网段,一台宿主机就能搭出“外网—防火墙—内网”的完整环境。而且 VMware 的快照功能是真香,配置改崩了,一条命令回滚到之前的状态,效率比物理机高一个量级。

所以这套方案的定位很清晰:适合拿来学习、测试、验证网络方案,也适合作为家庭实验环境里的软路由原型。等你在虚拟机里把规则和流程都摸透了,再决定要不要搬到物理机上,踩坑成本会低很多。

1.2 需要准备哪些东西

在动手之前,先把材料和环境理顺。

硬件方面,宿主机建议至少 8GB 内存,我自己的习惯是给 pfSense 分 2GB,CPU 分 2 核,磁盘 20GB 左右。pfSense 本身对配置的要求不高,512MB 内存都能跑,但虚拟机里要留一点余量,不然跑起来卡顿会影响判断。

软件方面,你需要:

  • VMware Workstation Pro 17.x。官方目前对个人用户提供免费许可,到官网注册账号后拿授权即可;如果暂时拿不到正式授权,试用期内也足够完成整套实验。注意别去找来历不明的注册机,一个是没必要,另一个是安全风险不划算。
  • pfSense 社区版安装镜像。重点是选 CE 版本,别下成商业版的 Netgate 设备镜像,后面我会细说。
  • 一台能正常联网的宿主机,操作系统 Windows 或 Linux 都可以,VMware 的用法基本一致。

另外,建议你在开始前搞懂 VMware 的三种虚拟网络模式:

  • 桥接模式(Bridged):虚拟机直接“插”在宿主机所在的物理局域网里,和局域网内其他设备互通,有自己的独立 IP。
  • NAT 模式:虚拟机通过宿主机共享上网,虚拟机之间可以互通,外部网络不能直接访问虚拟机。VMware 默认的 VMnet8 就是这种。
  • 仅主机模式(Host-Only):虚拟机之间可以互通,也能和宿主机互通,但默认不能访问外部网络。VMware 的 VMnet1 就是这种。

pfSense 实验里,我们要模拟的是一台“位于内外网之间的网关”,所以至少需要两块网卡:一块接 WAN(外网),一块接 LAN(内网)。WAN 口我通常用 NAT 模式来模拟,LAN 口就接 VMnet2 或 VMnet1 这类仅主机网络,这样内外网天然隔离,和真实环境很像。

2. 下载 pfSense 镜像和虚拟机创建,关键点都在这里

2.1 从官网下载 pfSense CE 镜像,注意这三个细节

pfSense 的下载页面在官方站点上,入口比较好找,搜索“pfSense download”就能看到。进入下载页面后,注意以下三点:

第一,版本选 CE(Community Edition),也就是社区版,免费且功能完整。页面里可能还会看到 Netgate 设备相关的商业版本入口,那个不用管。

第二,架构选 amd64,除非你手头有 32 位旧机器,否则 x86_64 是唯一合理选择。

第三,镜像类型选 DVD Image (ISO),也就是.iso文件。这个文件大概几百 MB,可以直接挂载到虚拟机的虚拟光驱里引导安装。如果你之后要在物理 U 盘上装,才需要去下 USB memstick 的镜像。

下载完成后,建议顺手校验一下哈希值,确认文件完整,也避免网上镜像被篡改。Windows PowerShell 里执行:

Get-FileHash .\pfSense-CE-2.7.2-RELEASE-amd64.iso -Algorithm SHA256

然后把输出的哈希值和官网页面上给出的 SHA256 值比对,一致就说明文件没问题。这一步养成习惯,之后下载其他系统镜像也适用。

2.2 用 VMware Workstation 创建 pfSense 虚拟机

打开 VMware Workstation,点击“创建新的虚拟机”,这里我习惯选择“自定义(高级)”,因为可以更精细地控制硬件选项。操作路径如下:

  1. 虚拟机兼容性:保持默认即可,Workstation 17 默认配置对你的实验完全够用。
  2. 安装来源:选择“稍后安装操作系统”。这里不要直接选 ISO,因为 pfSense 是基于 FreeBSD 的,VMware 默认的客户机操作系统列表里需要正确指定,后面再挂载镜像更稳妥。
  3. 客户机操作系统:选“FreeBSD”,版本选“FreeBSD 11/12 或更高版本 64 位”。有些版本列表里写的是 FreeBSD x64,选它就行。
  4. 虚拟机名称和位置:按自己习惯命名,比如pfSense-Lab,位置不要放在 C 盘系统盘,避免空间不足。
  5. 处理器配置:2 核足够,1 核也能跑。
  6. 内存:2048MB 是舒适区,低于 1024MB 会有点紧张。
  7. 网络类型:这里先选“仅主机模式”也没关系,因为后面我们会专门加网卡,先把虚拟机框架建出来。
  8. I/O 控制器和磁盘类型:保持默认(NVMe 或 SATA 都行),不需要追求极致性能。
  9. 磁盘:选“创建新虚拟磁盘”,大小 20GB,选择“将虚拟磁盘拆分成多个文件”。拆分成多个文件的好处是方便拷贝、快照也更灵活。

创建完成后,先别急着开机,我们还要做几件事:挂载 ISO、调整网卡。

2.3 两块网卡怎么配,这步别搞反

在虚拟机设置窗口里,需要做两个关键动作:

第一个动作,把下载好的 pfSense ISO 挂到虚拟光驱。路径是“CD/DVD (SATA) → 使用 ISO 映像文件 → 浏览选择文件”,确认勾选“启动时连接”。

第二个动作,配置网卡。默认虚拟机已经有了一块“网络适配器”,这块就让它当 WAN 口用。我的配置方式是:

  • 网络适配器(WAN)→ 网络连接选“NAT 模式”。这样 pfSense 在后续配置里会自动从 VMware 的虚拟 DHCP 拿到一个 192.168.xxx.xxx 或 172.16.xxx.xxx 的地址,模拟“外网地址”。如果你希望 WAN 和真实局域网互通,可以选“桥接模式”,但要注意桥接模式下你的 pfSense 会直接暴露在局域网里,实验时小心别干扰正常网络。
  • 点击“添加”,再添加一块“网络适配器 2”,这块当 LAN 口。网络连接选“自定义特定虚拟网络”,我建议选 VMnet2。如果列表里没有 VMnet2,可以先打开“编辑 → 虚拟网络编辑器”,添加一个仅主机模式的 VMnet2,子网设成 192.168.10.0/24,并且不启用 NAT 和本地 DHCP 服务,因为内网的 DHCP 要让 pfSense 自己来管,VMware 别插手。

网卡类型方面,在 Workstation 里给 FreeBSD 客户机创建的默认虚拟网卡通常兼容性没问题,但如果后面遇到 pfSense 识别不到网卡,可以把网卡类型改成 “E1000”,兼容性更好。vmxnet3 性能好但 FreeBSD 驱动不一定齐全,实验环境我优先求稳。

另外,建议把不需要的虚拟机硬件删掉,比如声卡、打印机、USB 控制器。这些设备对 pfSense 没有任何用处,留着反而可能在控制台里产生奇怪的输出。

3. 安装 pfSense:从引导到控制台配置的完整流程

3.1 安装向导一步步来

完成上面的准备后,启动虚拟机。虚拟机从光盘引导后会出现 FreeBSD 的启动菜单,直接回车选择默认的“1. Boot Multi User”即可。启动过程会有大量系统模块加载信息,不用慌,等它到安装菜单界面。

在安装菜单里,选择Install pfSense,然后会进入类似 FreeBSD bsdinstall 的流程。这里我按常见选项说明,不同小版本可能略有差异,但大方向一致:

  1. 键盘布局:选择Continue with default keymap,默认是 US 键盘,国内用户基本不用改。
  2. 主机名(Hostname):保持默认pfSense.localdomain就行,这个之后可以在 Web 后台改。
  3. 分区方式:这一步是新手最容易懵的地方。菜单里通常有Auto (UFS)Auto (ZFS)Manual等选项。我推荐选Auto (ZFS),因为 ZFS 文件系统自带校验和、快照、压缩等功能,对实验环境更友好。如果你确实有特殊需求,选Auto (UFS)也完全没问题,UFS 更传统、更简单。
  4. 选择 ZFS 配置时,会问你要用什么类型的磁盘布局。选stripemirror都可以,单块虚拟磁盘选stripe即可,因为虚拟机里不需要做硬 RAID。
  5. 然后会要求选择安装磁盘,勾选你刚才创建的虚拟磁盘,确认后继续。这一步会格式化整个虚拟磁盘,虚拟机里做实验无所谓,但如果在物理机上操作,务必确认磁盘没有重要数据。
  6. 安装开始后,系统会释放文件并写入引导。耐心等待几分钟,看到安装完成提示后,选择Reboot重启系统。重启时记得把 ISO 从虚拟光驱中断开,或者直接关闭虚拟机后在 CD/DVD 设置里把“启动时连接”取消掉,避免再次进入安装程序。

3.2 第一次启动后的控制台配置

重启完成后,你会看到 pfSense 的控制台界面,这是一个字符界面,里面列出了常用管理选项,类似这样:

0) Logout (SSH only) 1) Assign Interfaces 2) Set Interface(s) IP address 3) Reset webConfigurator password 4) Reset to factory defaults 5) Reboot system 6) Halt system 7) Ping host 8) Shell

这里最关键的是确认两个接口的分配情况和默认地址。在默认情况下,pfSense 会把第一块识别到的网卡当作 WAN,用 DHCP 自动获取地址;第二块当作 LAN,默认 IP 是192.168.1.1/24

你可以先输入1回车,它会提示你是否要重新分配接口,大多数情况下不用改,直接选n保持现状即可。再输入2回车,可以查看和修改接口 IP。

这里有一个非常常见的坑:如果你的宿主机本身就在192.168.1.0/24网段(很多家庭路由器都默认用这个网段),那 pfSense 的 LAN 默认 IP 会和你现有的局域网冲突,导致访问混乱。遇到这种情况,建议在控制台里把 LAN IP 改成别的网段,比如10.10.10.1/24。改的方法就是在菜单2里选择2(即 LAN 接口),输入新 IP 和子网掩码,后面提示是否启用 DHCP 服务时,如果你想让 pfSense 管理内网 IP 分配,就选y

改好 IP 后,在宿主机上用命令 ping 一下10.10.10.1(或者你设置的 LAN IP),能通就说明虚拟网络链路已经打通,可以进入下一环节了。

3.3 浏览器进入后台管理界面

pfSense 的管理界面是 Web 方式的,默认走 HTTPS 协议,地址就是 LAN 口的 IP。比如我改成10.10.10.1,就在浏览器里输入:

https://10.10.10.1

注意是https而不是http,因为 pfSense 默认强制 HTTPS。首次访问会出现“您的连接不是私密连接”的证书警告,这是正常的,因为 pfSense 用的是自签名证书。在浏览器里选择“继续前往”或“高级 → 继续访问”即可。

登录界面默认用户名是admin,密码是pfsense。第一次登录进去,系统会强制要求修改 Web 管理密码。这一步别偷懒,设置一个自己记得住的强密码,之后所有配置都靠这个账号。

登录成功后,你会看到 pfSense 的仪表盘(Dashboard),上面有系统信息、接口状态、流量图表等。到这里,安装部分就算完成了。接下来要做的才是重点:让 pfSense 真正干路由和防火墙的活。

4. 简单配置:让 pfSense 真正能干活

4.1 用 Setup Wizard 完成基础设置

第一次登录进入后台后,系统会自动弹出“Setup Wizard”(设置向导),如果你不小心关掉了,也可以在右上角菜单里手动打开。这个向导很适合新手,它会把你最常需要配置的项目一次性问完。

向导里需要关注的内容有:

  • General Information:设置 Hostname(主机名)和 Domain(域名)。主机名保持pfSense就行,域名可以填local.lab这种内部测试域名,不需要是真实注册域名。
  • DNS Server Settings:这里填 DNS 服务器地址。如果你不知道填什么,可以用公共 DNS,比如223.5.5.5119.29.29.29,或者用你本地路由器下发的 DNS。如果 WAN 是从 DHCP 获取地址的,通常会自动拿到 DNS,但 pfSense 里手动指定更稳。
  • Time Server:默认会指向系统自带的时间服务器列表,保持默认即可。时区选择Asia/Shanghai
  • WAN Interface:如果 WAN 用的是 VMware NAT 模式,这里选DHCP即可,其他默认选项保持原样。
  • LAN Interface:LAN IP 默认是192.168.1.1,如果你之前在控制台已经改过,这里会显示你改后的地址。建议在这里就把 LAN 的 IP、子网掩码确认好。
  • 修改密码:向导最后一步会要求重新设置 Web 管理密码,和首次登录的强制要求是一样的。

完成向导后,回到 Dashboard,你会发现 WAN 口已经获取到了一个类似192.168.xxx.xxx172.16.xxx.xxx的地址,这就是 VMware NAT 分配给你的“外网地址”。此时如果你在 LAN 里接一台测试虚拟机,它应该已经能通过 pfSense 上网了。

4.2 WAN 和 LAN 具体怎么填

向导虽然省事,但如果你需要手动调整网络参数,路径在“Interfaces → Interface Assignments”和“Interfaces → WAN / LAN”。

WAN 口的常见配置:

  • IPv4 Configuration Type:选DHCP适合 VMware NAT 模式;如果你用的是桥接模式并且局域网里有 DHCP 服务器,也可以选 DHCP;如果要手动指定公网或静态地址,就选Static IPv4,然后填 IP、子网、网关。
  • 有一项叫“Block private networks and loopback addresses”,默认是开启的。这个选项的作用是防止 WAN 口收到来自私网地址的数据包,是一种安全防护。但如果你的 WAN 口本身就是 VMware NAT 模式(拿到的地址属于私网网段),这个选项会把你自己的外网流量也拦掉,导致网络不通。这时候需要到System → Advanced → Firewall & NAT里,把Block private networks取消勾选。

LAN 口的配置相对简单,一般就是静态 IP 加子网掩码。比如10.10.10.1/24或者192.168.10.1/24,注意别和 WAN 网段重复,也别和宿主机所在网段重复。

这里分享一个排查网络的好习惯:每次改完接口配置,系统右上角会出现Apply Changes(应用更改)按钮,必须点一下配置才会生效。如果你改了 IP,页面可能会断线,重新用新 IP 访问即可。我一向是先把所有参数都填好,再统一 Apply,避免反复断连。

4.3 防火墙规则与 NAT 转发说明

pfSense 默认的防火墙行为有两个非常关键的点:

  • LAN 到任意地址是允许的。也就是说,从 LAN 口进来的设备可以访问 WAN、访问互联网,这是默认放行规则。
  • WAN 到 LAN 默认是全部丢弃的。外网设备想主动访问你的内网,会被拦截,这是防火墙的基本盘。

这样的默认规则对大多数场景都是安全的。我们通常需要补充的规则主要是两类:

第一类是允许从 LAN 访问 pfSense 自身某些服务。比如你以后想在内网通过 Web 管理 pfSense,默认已经是允许的,不需要额外加。

第二类是端口转发(Port Forward)。假设你的 LAN 里有一台 Web 服务器10.10.10.50,想让人从 WAN 侧访问它的 80 端口,就需要添加一条端口转发规则。路径是Firewall → NAT → Port Forward,点击 Add:

  • Interface:WAN
  • Protocol:TCP
  • Destination:WAN address
  • Destination Port:80
  • Redirect Target IP:10.10.10.50
  • Redirect Target Port:80

保存并应用后,访问者访问你 WAN 口的 80 端口,就会被转发到内网服务器的 80 端口。这个逻辑就是企业里最常见的端口映射。

至于防火墙规则本身,路径在Firewall → Rules,你可以针对每个接口(WAN、LAN)分别维护规则列表。规则是从上到下依次匹配的,一旦匹配就不再往下看。所以“允许”规则要放在“拒绝”规则前面,这个顺序问题我踩过不止一次。

4.4 顺手把 DHCP 和日常杂项也配好

pfSense 既然充当网关角色,内网的 DHCP 服务最好也交给它来管。路径是Services → DHCP Server,选择 LAN 接口,启用 DHCP Server,设置地址池范围。

我常用的设置是这样的:

  • 子网:10.10.10.0/24
  • 地址池范围:10.10.10.10010.10.10.200
  • DNS Servers:填写10.10.10.1让内网设备把 pfSense 当作 DNS,或者直接填外部 DNS
  • 默认网关:10.10.10.1(也就是 pfSense 的 LAN 地址)

保存后,内网设备只要设为自动获取 IP,就能拿到一个由 pfSense 分配的地址,并通过 pfSense 上网。

除此之外,有两件小事我建议每个搞实验的人都要做:

一是配置备份。路径是Diagnostics → Backup & Restore,点击下载配置文件,存好一份。pfSense 虽然稳定,但配置改崩是家常便饭,有备份心里不慌。

二是做虚拟机快照。在 VMware 里,“虚拟机 → 快照 → 拍摄快照”。我习惯在安装完成、基础配置完成这两个时间点各拍一个快照。之后不管怎么折腾,都能一键还原。这个习惯能帮你省下大量重装的时间。

5. 常见问题排查与避坑记录

5.1 网页管理界面打不开怎么办

这是新手遇到最多的问题。我的排查顺序是:

先确认 pfSense 的 LAN IP 是什么,可以在控制台菜单里输入2查看接口地址。然后确认宿主机的虚拟网卡是否处于同一网段。比如 pfSense LAN 是10.10.10.1/24,宿主机里的 VMnet2 网卡就应该设置成10.10.10.x,否则网络不通。

再检查浏览器访问的协议,必须是https://而不是http://。很多人输入 IP 后看到无法访问,其实是少了s

如果这些都正常,就在控制台菜单里选7Ping 一下宿主机的 IP,看看二层链路通不通。pfSense 有一个特性:如果 WAN 口没插好或者没有获取到地址,某些情况下 LAN 访问也会有异常,所以也要确认 WAN 状态不是down

还有一个容易忽略的点:VMware 虚拟网络服务没有启动。在 Windows 服务管理器里,确认VMware NAT ServiceVMware DHCP Service是否在运行,如果没运行,右键启动,再回到 pfSense 里重新获取 WAN 地址。

5.2 忘记密码、进不去系统怎么处理

pfSense 的密码通常分两层,一层是 Web 管理密码,一层是系统 root 密码。如果你只是忘掉了 Web 管理密码,最简单的办法是:在 pfSense 控制台菜单里输入3(Reset webConfigurator password),确认后系统会把 Web 管理登录凭据重置为默认的admin / pfsense,然后你再用默认密码登录并及时修改。

如果连 root 密码也忘了,那就需要重启并进入单用户模式。这条操作要谨慎,但虚拟机里做实验可以随便折腾。重启 pfSense,在引导菜单出现时选择“Boot Single User”,然后挂载根文件系统并修改密码:

mount -ur / passwd

输入新密码后重启,再用新 root 密码进入系统。

5.3 网络通断不稳、丢包或延迟大

WAN 一直拿不到 IP,先看看是不是 VMware NAT 服务的问题,然后检查前面提到的Block private networks是否误开了。如果用的是 NAT 模式却把该选项保持开启,WAN 口即使拿到地址,流量也可能出不去,具体表现就是能 ping 通但网页打不开。

内网设备能拿到 IP 但上不了网,优先排查 pfSense 的 WAN 网关是否正常,路径是Status → Gateways,看在线状态。另外检查防火墙规则,有没有误删了默认的 LAN 放行规则,或者加了多余的阻断规则。

还有一个隐藏很深的坑:VMware 虚拟网络的 DHCP 和 pfSense 的 DHCP 打架。如果你在虚拟网络编辑器里给 VMnet2 开了 VMware 自带的 DHCP,而 pfSense 里也开了 DHCP Server,内网设备可能拿到错误的网关和 DNS。解决办法是只保留 pfSense 的 DHCP,关闭 VMware 的虚拟 DHCP 服务。

5.4 磁盘、日志和一些提速建议

pfSense 默认会把防火墙日志、系统日志写到本地磁盘,时间长了会占空间。实验环境里日志量不算大,但如果跑了几周后发现磁盘满了,可以到Status → System Logs → Settings里调整日志保留大小,或者直接把日志转发到远程日志服务器。

虚拟磁盘扩容也是一个常见需求。如果你一开始只给了 10GB,之后不够用,可以在 VMware 里把磁盘大小扩到 20GB。如果用的是 ZFS 文件系统,重启后 pfSense 会自动识别扩容后的空间并用上;如果用的是 UFS,可能需要手动执行growfs来扩展分区,这一步对新手稍微有点门槛,所以一开始就把磁盘留足 20GB 更省事。

性能方面,如果你觉得 pfSense 界面响应慢,可以先看看内存占用,2GB 内存基本够用;如果长时间运行后内存告急,可以在System → Advanced → System Tunables里调整一些 FreeBSD 内核参数,但实验环境通常没必要动。最立竿见影的做法是保证虚拟机的 CPU 和内存不被其他虚拟机抢占,该关的实验机器就关掉。

最后再说一个小技巧:在安装完系统、还没做任何配置的时候,先拍一个干净快照。之后每完成一个阶段配置,再拍一个快照。这样一旦后面把规则改坏了,十几秒就能回到上一个可用状态,比重新看日志找原因快太多了。我自己做网络实验这些年,最大的体会就是:快照和备份永远是最值得投入的那两分钟。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 2:34:34

基于Hugo的极简博客colibri:从技术选型到性能优化实践

做个人博客最让人上头的不是写了几篇文章,而是每次打开首屏,白屏时间从两秒多被压到零点几秒的那种爽感。我前前后后折腾过不少博客方案:WordPress 功能全面但身子太重,Hexo 插件丰富但依赖链太长,换台电脑就要重新折腾…

作者头像 李华
网站建设 2026/9/17 2:33:25

DeepSeek 4.1 Flash:轻量模型的正确打开方式

先别急着骂,我一开始看到这个标题也以为是又一轮“翻车现场”,毕竟这些年被各种宣传话术教育下来,谁还没下载过几个“智商税”模型呢?但实际把 DeepSeek 4.1 Flash 从API到开源权重、从对话测试到批量任务都摸了一遍之后&#xff…

作者头像 李华
网站建设 2026/9/17 2:31:34

SSD主控启动时DDR数据结构初始化全解析:从映射表到日志区

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/17 2:31:11

dotnet/skills写标准ASP.NET Core API:dotnet-aspnetcore插件使用指南

dotnet/skills写标准ASP.NET Core API:dotnet-aspnetcore插件使用指南 【免费下载链接】skills Repository for skills to assist AI coding agents with .NET and C# 项目地址: https://gitcode.com/GitHub_Trending/skills17/skills 想让 AI 编程助手写出标…

作者头像 李华
网站建设 2026/9/17 2:28:20

电容位置比容值更重要:EMC整改中的物理坐标陷阱

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华