news 2026/9/29 5:02:20

华为USG5500防火墙配置实验指南:从登录到安全策略全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为USG5500防火墙配置实验指南:从登录到安全策略全解析

简介:华为USG5500防火墙配置实验一为面向网络工程初学者与防火墙运维人员的实验指导PDF,围绕内网与外网组成的双网段拓扑,演示USG5500在双出口环境下的基础配置流程。文档从拓扑与地址规划入手,完整记录AR1、AR2的接口IP、默认路由及Telnet配置,重点覆盖防火墙区域自定义、安全优先级、接口入区和默认策略查看,每一步附有命令行及输出信息,便于对照练习。资源为单个约113KB的PDF文件,体积小巧,适合在电脑、平板或手机端随时查阅,也便于打印后作为实验手册使用。整份文档按实验顺序组织,无需额外环境即可逐步完成,有助理解安全区域与策略生效机制。该资料发布以来已有4737人学习下载,适合实验课堂、认证备考或日常运维中需要快速上手华为防火墙区域与策略配置的读者参考。

1. 华为USG5500配置实验一:这份实验到底让你学会什么

拿到这份PDF时,你多半已经坐在实验室或工位上,面前是一台USG5500,或者eNSP里一个还在等启动的防火墙图标。USG5500是华为在企业边界很常见的一款防火墙,所谓「配置实验一」,在所有培训机构、网络工程课程里的内容都差不多:登录设备、给接口配IP、划分安全区域、写一条能让数据流通过的策略。听起来简单,但第一次做的人通常会把一半时间花在「登录不上」和「策略配了却不通」这两件事上。这篇笔记就按实验一的标准路径,把每一步命令、每个参数和常见的坑一次性讲清楚。适合正要动手配华为防火墙的从业者,也适合考数通认证前做快速回顾的人。

2. 搭环境与登录:一张拓扑、两种登录方式、一组初始化检查

2.1 最少实验拓扑与设备选型:三台设备够用

实验一不需要复杂的网络。常见做法是拿三台设备组一个最小拓扑:一台USG5500、两台PC,或者一台PC加一台交换机。如果实验条件有限只有一台PC,也可以直接把PC网线插到防火墙的GigabitEthernet接口上,把PC的IP配成与接口同网段,先做管理面验证,再逐步加设备。

拓扑通常长这样:PC1(192.168.1.10/24)接防火墙GE1/0/0,PC2(192.168.2.10/24)接防火墙GE1/0/1,GE1/0/0划入trust区域,GE1/0/1划入untrust区域。实验一的核心目标就两个:一是让两台PC之间的流量在防火墙上按策略放行,二是让PC能ping通防火墙自己的接口IP。为什么单独强调「ping通接口IP」?因为后续做Web登录、远程管理、日志查看都要靠它,而且它涉及local域的策略,和PC之间互访的策略是两套控制逻辑,很多第一次做实验的人在这里卡住。

有一点要提前说明:eNSP新版里没有专门的USG5500虚拟设备,但提供的USG6000V用的是同一套VRP防火墙命令体系,安全区域、安全策略、service-manage这些配置方式完全一致,拿它替代USG5500做实验没有任何障碍。真机实验则以实验手册为准,USG5500与USG6300/6500系列在实验一涉及的操作上没有本质差异。

2.2 用Console口登录USG5500:第一次开机的必经之路

新设备第一次使用,Web界面还没有可信的网络配置,唯一可靠的入口是Console口。用Console线连接电脑的串口(笔记本没有串口就用USB转串口线),打开SecureCRT、Xshell或PuTTY,创建一个串口会话。USG5500的Console口参数是固定的:波特率9600,数据位8,停止位1,无校验,无流控。这个参数不要随意改,改错了直接黑屏无输出。

登录成功后你会看到VRP的命令行提示符,华为防火墙和交换机路由器的命令行习惯一致,system-view进入系统视图,quit逐级退回,display开头的命令用来查看状态。第一次进系统,如果设备是全新的,通常会提示设置管理员密码,或者直接使用默认凭据进入。模拟器和实验手册里常见默认用户名是admin,密码在不同固件版本里不一样,真机设备要留意设备外壳标签或开机时的提示;现在不少新固件会强制你在首次登录时修改默认密码,这是正常的安全机制,不是设备故障。

进入命令行后先做一件事:给设备改名并确认版本。

<Huawei> system-view [Huawei] sysname USG5500 [USG5500] quit <USG5500> display version

system-view表示从用户视图切换到系统视图,提示符从尖括号变成方括号;sysname把设备改名,避免后续多台设备之间搞混;display version查看VRP版本号。这个版本号直接决定后面配置安全策略时用新式security-policy还是老式policy interzone,记下来,后面排错会反复用到。

接下来配置管理IP。USG5500不是所有接口出厂就有地址,如果设备无法远程访问,先在Console下给接口配一个地址:

<USG5500> system-view [USG5500] interface GigabitEthernet1/0/0 [USG5500-GigabitEthernet1/0/0] ip address 192.168.1.1 255.255.255.0 [USG5500-GigabitEthernet1/0/0] service-manage ping permit [USG5500-GigabitEthernet1/0/0] service-manage https permit [USG5500-GigabitEthernet1/0/0] quit

interface进入物理接口视图;ip address配置接口地址;两条service-manage分别放行ICMP和HTTPS管理流量,没有这两条,PC连上同网段也ping不通这个接口,Web更打不开。这是华为USG区别于普通路由器的经典差异,很多第一次用华为的人在这里翻车。接口编号不同型号差异很大,请以display interface brief的实际输出为准。

2.3 开启Web管理并登录:图形化界面更适合验证策略

配完上面几步之后,把PC的网卡IP改成192.168.1.10/24,用网线直连防火墙GE1/0/0。浏览器访问https://192.168.1.1:8443,注意是https不是http,端口默认8443。如果打不开,先用ping 192.168.1.1确认链路通不通;链路通了还打不开,检查刚才有没有配置service-manage https permit,以及浏览器是否拦截了自签名证书。防火墙默认使用自签证书,浏览器提示不安全时选择继续访问即可,这不是故障。

USG5500的Web界面登录后默认进入仪表盘首页,能看到CPU、内存、会话数、接口状态。实验一阶段,Web界面主要用来做两件事:一是直观地看接口属于哪个安全区域,二是可视化地创建安全策略。命令行能做的Web全都能做,但对新手来说,Web的错误提示更友好,策略配置错了会在界面上直接标红或者保存时给出明确报错,比命令行里盲敲更容易定位问题。

eNSP里做这个实验时,Web登录之前要先确认防火墙接口和PC的连通性。eNSP的USG6000V启动后,PC网卡要设置成和防火墙接口同网段的地址,否则Web页面一样打不开。这一步在模拟器里被很多人忽略,以为启动完成就能直接访问,实际还得等设备完全进入命令行状态,并且接口状态变成UP。

2.4 初始化必查项:版本、时间、区域与配置文件

登录成功后先别急着配策略,花两分钟过一遍初始化必查项,这些信息在后续排错时全部会用上。可以做一张速查表对照检查:

检查项命令关注结果
软件版本display versionVRP版本号决定策略命令写法
系统时间display clock时间错乱会导致日志无从查起
接口状态display interface brief物理状态和协议状态是否UP
当前配置display current-configuration作为排错时的配置基线

第一项是版本,display version的输出里找到VRP版本号,这决定后面策略命令走新式还是老式。第二项是系统时间,防火墙的日志和时间戳强相关,时间错乱会导致后面查日志时一头雾水,实验一开始就把时间校正。第三项是接口列表,display interface brief能看到所有接口的物理状态、协议状态和IP地址,状态是DOWN就先把物理链路问题解决,免得后面策略排查白费功夫。第四项是当前配置,display current-configuration会输出设备当前全部配置,建议保存一份文本到本地,作为排错时的对照基线。

到这里,环境已经就绪,设备能登录、能管理,接下来开始真正配置接口和安全区域。

3. 给USG5500配接口和安全区域:先让报文有路可走

3.1 安全区域是什么:为什么接口不能直接ping通

华为防火墙把物理接口划分到不同的安全区域,区域之间的流量默认被拒绝。不像交换机,接口只要配了IP就能转发;防火墙接口即便配了IP,只要没有把接口加入某个区域,数据进来之后根本不知道该交给谁。这就是很多人第一次配完IP之后发现PC连网关都ping不通的原因——接口不在任何区域里,或者设备自身的local域策略没放行。

USG5500默认内置了几个安全区域:trust、untrust、dmz,外加一个特殊的local区域。local不是一个物理接口区域,而是防火墙自身。所有发往设备本身,或由设备本身发出的流量,都算local域。后续配置策略时经常见到source-zone local或destination-zone local,就是针对设备自身的访问控制。

所以配接口的标准顺序不是「配IP就完事」,而是:配IP、加入区域、验证状态。少一步都会留下隐患。很多实验手册会把接口IP和安全区域放在同一个章节里,就是这个原因——它们本来就是一体的,不能拆开理解。内网接口划到trust,外网接口划到untrust,这是最常见的区域规划,也是实验一的默认方案。

3.2 用命令行为接口配IP并加入trust区域

现在把两台PC连接的接口都配置出来。假设GE1/0/0接内网PC,划到trust;GE1/0/1接外网PC,划到untrust:

<USG5500> system-view [USG5500] interface GigabitEthernet1/0/0 [USG5500-GigabitEthernet1/0/0] ip address 192.168.1.1 255.255.255.0 [USG5500-GigabitEthernet1/0/0] quit [USG5500] interface GigabitEthernet1/0/1 [USG5500-GigabitEthernet1/0/1] ip address 192.168.2.1 255.255.255.0 [USG5500-GigabitEthernet1/0/1] quit [USG5500] firewall zone trust [USG5500-zone-trust] add interface GigabitEthernet1/0/0 [USG5500-zone-trust] quit [USG5500] firewall zone untrust [USG5500-zone-untrust] add interface GigabitEthernet1/0/1 [USG5500-zone-untrust] quit

前四段把两个接口配上IP地址,这时候接口还没有区域归属;firewall zone trust进入trust区域视图,add interface把GE1/0/0加进trust;同理把GE1/0/1加进untrust。顺序不能反,先确认接口存在,再配IP,最后加区域。

参数说明:IP网段按实验手册的地址规划来,建议内网用192.168.1.0/24、外网用192.168.2.0/24,一目了然。接口编号务必以display interface brief的输出为准,USG5500不同板卡的接口编号差异很大,有的是GigabitEthernet1/0/0,有的是0/0/0,写错就直接提示错误。老版本USG5500的区域视图命令可能有差异,如果firewall zone提示未知命令,先确认设备版本,再对照实验手册找对应的区域配置方式。

3.3 用Web界面完成同样的区域划分

命令行配置适合照着抄,但用Web界面做区域划分会更直观。登录Web界面后,左侧导航栏找到「网络 > 接口」,选中GE1/0/0,在编辑页面里能看到「安全区域」下拉框,把trust选上保存。GE1/0/1同理选择untrust。Web界面里配置区域,底层和命令行走的是同一套配置,不存在「Web配置不生效」的问题。如果Web改了之后命令行查看没有变化,多半是没点保存按钮,或者浏览器页面缓存了旧数据,刷新一下再看。

Web界面最大的价值在概览类页面。配置完成后回到仪表盘,可以看到两个接口分别挂在trust和untrust下,接口状态是UP。如果某个接口显示DOWN,检查网线连接和PC网卡是否启用,不要急着去改策略。这个直观的「接口-区域」对应关系,是后续理解安全策略的基础,建议在Web界面里多看几遍,把trust、untrust和物理接口的映射关系记熟。

3.4 配完先查这三条命令

配置完成后的第一件事不是立刻去ping,而是用三条命令检查配置是否正确落库:

<USG5500> display interface brief <USG5500> display zone <USG5500> display current-configuration | include firewall zone

display interface brief看接口IP和物理状态;display zone看所有安全区域以及区域下挂的接口,这是验证区域划分是否正确的核心命令;第三条命令通过过滤器只查看和区域相关的配置行,快速确认接口归属。如果发现接口没有加入区域,回3.2的步骤重来;如果接口是DOWN,排查物理层。

这里有个容易被忽视的细节:display zone输出的区域接口列表里,每个接口会显示区域名称和接口编号。如果你看到接口同时出现在两个区域下,那一定是配置错了,一个物理接口只能属于一个安全区域。出现这种情况时,先undo add interface把它从错误的区域里摘掉,再加到正确的区域。反复配区域配出重复条目,是命令行操作里最常见的手误之一。

4. 配置域间安全策略:从「默认全拒」到「按需放行」

4.1 默认策略行为:跨区域流量为什么被静默丢弃

这时候两台PC应该都配好IP了。PC1去ping PC2,大概率不通。这不是配置错了,而是防火墙的默认行为:不同安全区域之间的流量,如果没有匹配到任何策略,默认被丢弃,而且通常不回复ICMP错误消息,表现就是「静默丢包」。这也是防火墙区别于普通路由器的核心点——路由器只要有路由就转发,防火墙必须「有路由加有策略」才放行。

所以做实验一的时候,判断标准不是「一开始就通」,而是「配置策略前不通、配置策略后通了」。如果一上来就全通,反而要回头检查是不是接口被划进了同一个区域,或者设备里有宽松的默认策略。华为防火墙的安全策略本质上是白名单思路:默认拒绝,显式放行,最小权限。这一点从实验一开始就要建立,后续做生产环境配置时,这种「默认全拒、按需放行」的思维能避免大量安全问题。

华为防火墙的域间策略,在较新固件里用security-policy统一管理,称为安全策略;老版本USG5500则沿用policy interzone的域间策略写法。两者解决的问题相同:在源区域和目的区域之间建立一条显式规则,指定动作是permit还是deny。在Web界面上,这两类命令对应同一个「安全策略」菜单,界面操作不区分新旧版本。

4.2 命令行配置trust到untrust的放行策略

新式安全策略的命令写法如下,假设我们允许trust访问untrust的所有流量:

<USG5500> system-view [USG5500] security-policy [USG5500-policy-security] rule name permit_trust_to_untrust [USG5500-policy-security-rule-permit_trust_to_untrust] source-zone trust [USG5500-policy-security-rule-permit_trust_to_untrust] destination-zone untrust [USG5500-policy-security-rule-permit_trust_to_untrust] action permit [USG5500-policy-security-rule-permit_trust_to_untrust] quit [USG5500-policy-security] quit

security-policy进入安全策略视图;rule name创建一条规则并命名,名字建议用能看懂的名称;source-zone指定源区域,destination-zone指定目的区域;action permit放行。这条规则的意思是:所有从trust区域进入untrust区域的流量,一律放行。

如果只是实验一,放行所有流量是可以的,但生产环境千万别这么干。后续做实验二、实验三时,你会在这条规则里加上source-address和destination-address,把流量限制到具体网段甚至具体IP,这才是防火墙的常态用法。Web界面里配置时,对应字段就是「源安全区域」「目的安全区域」「动作」,和命令行完全一一对应,理解命令行就等于理解Web界面。

如果你的USG5500跑的是老版本VRP,输入security-policy会提示命令不存在。改用老式域间策略:

[USG5500] policy interzone trust untrust [USG5500-policy-interzone-trust-untrust] action permit

policy interzone trust untrust直接进入trust到untrust方向的域间策略视图,action permit放行。这是USG5500早期固件里的经典写法,和security-policy在效果上等价。注意来源区域和目的区域的顺序不要写反,方向反了策略会挂在一个不匹配的方向上,流量一样不通。

4.3 放行设备自身的管理流量:service-manage的作用

很多人把上面的策略配完,去ping防火墙自己的接口IP,发现还是不通。这是正常现象,因为上面的策略放行的是trust到untrust,「PC去ping防火墙自身的接口」走的是trust到local方向,跟刚才那条策略没有关系。如果实验手册要求你用安全策略放行local域,可以在security-policy里加规则指向local区域;但更常见也更直接的做法是使用service-manage命令。

把完整的管理面放行配置贴一遍,后面做远程管理时可以直接对照:

[USG5500] interface GigabitEthernet1/0/0 [USG5500-GigabitEthernet1/0/0] service-manage ping permit [USG5500-GigabitEthernet1/0/0] service-manage https permit [USG5500-GigabitEthernet1/0/0] service-manage ssh permit [USG5500-GigabitEthernet1/0/0] quit

service-manage按服务类型分别放行,ping、https、ssh是三个独立开关。只开了https没开ping,浏览器能登录Web,命令行ping不通;只开了ping没开https,能ping通但Web打不开。做实验时可以全开,生产环境按需开。注意这条命令是挂在物理接口下的,如果你用的是GE1/0/1做管理,记得在GE1/0/1下也配一遍,只配一个接口的话,换接口管理就会失效。

4.4 验证策略生效的三种手段

配置完成后,验证手段有三层,按顺序做。第一层是ping。在PC1上ping 192.168.2.10,通说明trust到untrust策略生效;在PC1上ping 192.168.1.1,通说明设备自身管理面放行生效。第二层是查看会话表。display firewall session table能看到正在经过防火墙的流量会话,含源IP、目的IP、端口和状态。如果PC1和PC2已经在互ping,这里就能看到方向和状态都正常的会话记录。第三层是抓包。在eNSP中可以给防火墙接口挂抓包器,真机上则用日志观察报文是被permit还是deny。

如果第一层通了,后面两层不用太较真;如果第一层不通,按顺序排查:接口状态、区域归属、策略匹配顺序、会话表里有没有deny记录。华为防火墙的会话表是排查「策略配了但业务不通」最快的入口,比反复猜配置靠谱得多。实验一阶段养成查会话表的习惯,后面所有防火墙排错都受益。这里多说一句:操作防火墙的每一步配置,都应该有对应的验证动作,配完策略就ping,ping不通就查会话表和策略匹配,这是最不浪费时间的排错路径。

5. USG5500实验一避坑手册:五个高频翻车点与排查顺序

5.1 现象:Console串口输出乱码

表现:用SecureCRT登录Console,敲命令回显全是乱码,或者按键没反应。原因:串口连接参数不对,最常见的是波特率不是9600,或者USB转串口线驱动异常。解决:断开会话,把波特率改为9600,数据位8、停止位1、无校验、无流控重新连接;换一根USB转串口线也是常见解法。还有一个少见但真实的原因:设备开机自检时就开始敲键盘,导致命令行输入缓冲错乱,等启动完成提示符出现后再输入就正常了。

5.2 现象:配置安全策略时报错unknown command

表现:输入security-policy提示命令不存在,或者进入安全策略视图后rule name报错。原因:USG5500跑的是老版本VRP固件,新式安全策略命令在旧版本上不支持。解决:先display version确认版本,老版本改用policy interzone域间策略,写法见4.2。如果你的实验手册写的是老式命令,在新版本设备上反而会报错,这时候有两种处理:一是升级固件到支持security-policy的版本,二是按老命令继续做实验。模拟器里推荐直接换用支持新命令的设备型号,省得来回折腾。

5.3 现象:Web登录页面打不开

表现:浏览器访问https://192.168.1.1:8443一直转圈,或者提示无法访问。原因:最常见的是接口没放行HTTPS管理流量,也就是没有配service-manage https permit;其次是浏览器走了HTTP而不是HTTPS,或者访问了443而不是8443。解决:先在PC上ping通设备接口IP,再检查接口下的三条service-manage配置,最后确认访问协议和端口。浏览器提示证书不安全时,选择继续访问即可,这是防火墙使用自签名证书的正常表现。如果还打不开,检查PC操作系统防火墙有没有拦截浏览器出站流量,把PC防火墙临时关闭再试一次——注意这里说的是PC操作系统防火墙,不是USG5500。

5.4 现象:配完策略PC之间还是ping不通

表现:trust到untrust策略已经配成permit,PC1仍然ping不通PC2。原因:优先级最高的问题是策略顺序,如果在permit规则之前有一条deny规则匹配了相同流量,后面再配permit也没用;其次是接口没加入正确的区域,或者PC的网关没指向防火墙接口。解决:先用display zone确认接口区域,再用display current-configuration | include policy检查策略顺序。华为防火墙策略按配置顺序从上到下匹配,把放行规则放在前面。另注意PC自己要配网关为防火墙接口地址,PC之间互访如果网关不对,报文根本不会到防火墙,策略配得再对也没用。

5.5 现象:eNSP里防火墙设备启动失败或特别慢

表现:在eNSP中启动USG系列防火墙,设备状态一直停在启动中,或者提示启动失败、设备异常。原因:eNSP的防火墙设备强依赖VirtualBox,VirtualBox版本不匹配、宿主机内存不足、启动时被安全软件拦截虚拟机进程,都会导致启动失败。解决:确认eNSP配套的VirtualBox版本正确并重新安装,关闭杀毒软件对VirtualBox的实时监控,启动设备前关闭其他占用内存的应用。USG6000V启动本身就需要一两分钟,不要频繁重启设备,强制重启反而会触发设备文件系统错误。如果设备列表里没有USG5500,就用USG6000V做替代实验,命令和实验一要求完全一致。

这五个坑基本覆盖了实验一从开机到策略验证的完整路径。遇到问题别急着怀疑配置本身,先按「物理链路、接口状态、区域归属、策略顺序、会话表」这个顺序排查,大部分问题都能在五分钟内定位。

6. 把实验一连起来跑通:完整验证、配置保存与NAT预告

6.1 完整验证顺序:从网关到会话表

实验一收尾时,按固定顺序完整走一遍验证,确认前面的配置不是碰巧通的。第一步,PC1 ping网关192.168.1.1,确认设备管理面正常;第二步,PC1 ping PC2的地址192.168.2.10,确认跨区域策略生效;第三步,在防火墙上执行display firewall session table,确认会话表里有PC1到PC2的会话记录,且状态正常。三步都通过,实验一的核心目标就完整达成了。

6.2 保存配置与导出备档

很多人在eNSP里做完实验直接关掉,下次打开发现配置全没了,还以为是设备坏了。防火墙不像PC,配置默认只存在运行内存里,不保存断电即失。实验做完第一件事就是执行save:

<USG5500> save

系统会提示确认保存,输入y回车即可。保存完成后,再执行display saved-configuration确认配置已经落盘。我的习惯是每完成一个阶段的配置就save一次,避免中途断电或者误操作导致前功尽弃。实验全部做完后,再用display current-configuration导出完整配置文本,按日期命名存到本地,方便以后对照。

6.3 下一份实验的预告:从放行到NAT

实验一到这里就完成了,但真实场景里,光有策略放行还不够。内网PC访问外网时,源地址是私有网段,出去的流量通常需要做源NAT;外网用户访问内网服务器时,还需要做目的NAT。这是实验二最常出现的内容。给你一个源NAT的最简配置做预告:

[USG5500] nat-policy [USG5500-policy-nat] rule name snat_easy_ip [USG5500-policy-nat-rule-snat_easy_ip] source-zone trust [USG5500-policy-nat-rule-snat_easy_ip] destination-zone untrust [USG5500-policy-nat-rule-snat_easy_ip] action source-nat easy-ip

source-nat easy-ip表示用出接口IP做源NAT,实验环境里最省事;后续做真实项目时再换成address-group方式。老版本设备对应的是nat-policy interzone trust untrust加action source-nat easy-ip,和策略命令一样分新旧两套。

从第一次配USG5500到现在,我养成的习惯是:任何一步配置生效后立刻save,实验做完导出一份配置备份,标注日期。防火墙这设备玄学问题多,但绝大多数「重启后配置消失」「策略不生效」都能靠保存配置加查会话表解决。实验一只是起点,把登录、区域、策略这三件事吃透,后面的NAT、双机热备、攻击防护都是在这套基础上做加法。希望帮到你。

本文还有配套的精品资源,点击获取

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

用MCP轻松构建认知型智能体:TaoToken极简配置实战

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

作者头像 李华
网站建设 2026/9/29 4:58:20

Claude Code 配 TaoToken:CLAUDE.md 与 MCP 的 settings.json 骨架

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

作者头像 李华
网站建设 2026/9/29 4:58:15

程序员软技能精进指南:从沟通协作到晋升突破

在这行做久了你会发现&#xff0c;程序员这职业越往后走&#xff0c;决定差距的往往不再是代码写得有多花哨、框架用得有多新&#xff0c;而是那些看起来"看不见摸不着"的软技能。我见过不少同期入职、技术水平差不多的人&#xff0c;两三年后一个已经在带小组、推动…

作者头像 李华
网站建设 2026/9/29 4:54:07

Arduino感光灯:光敏电阻模拟输入与PWM调光实战

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

作者头像 李华