news 2026/6/26 13:21:24

Nmap NSE脚本引擎深度指南:从端口扫描到渗透测试实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nmap NSE脚本引擎深度指南:从端口扫描到渗透测试实战

1. 项目概述:从端口扫描到深度探测的进化

如果你用过Nmap,那你肯定知道它是个端口扫描的利器,nmap -sS 192.168.1.1一下,目标主机开了哪些端口、跑着什么服务,一目了然。但这只是Nmap的“基本功”,或者说,只是它庞大能力的冰山一角。真正让Nmap从一个优秀的扫描器,蜕变为一个渗透测试和信息收集“瑞士军刀”的,是它的脚本引擎——NSE。我刚开始接触安全测试时,也以为扫出端口就完事了,直到有一次在实战中,面对一个看似只有80端口开放的目标,常规扫描一无所获。后来在老师傅的指点下,用了几个NSE脚本,不仅识别出了Web框架的精确版本,还发现了未公开的API接口和一个存在弱口令的管理后台。那一刻我才明白,不会用NSE的Nmap,就像只装了刺刀的步枪,而熟练运用NSE,则是给这把步枪装上了瞄准镜、榴弹发射器和战术手电,能应对的场景和获取的信息深度,完全不是一个量级。

NSE,全称Nmap Scripting Engine,它允许用户编写(或使用社区已有的)Lua脚本,来扩展Nmap的功能。这些脚本能干的事情非常多:从基础的版本探测增强(version)、到漏洞检测(vuln)、再到后渗透阶段的信息搜集(如枚举SMB共享、SNMP信息等)。在Kali Linux这类渗透测试发行版中,Nmap是预装的核心工具,而其庞大的NSE脚本库(通常位于/usr/share/nmap/scripts/)更是开箱即用的宝藏。本指南的目的,就是带你系统性地解锁这个宝藏,让你不再仅仅满足于“扫端口”,而是能精准、高效地利用NSE脚本进行深度探测,理解每个脚本背后的逻辑、适用场景以及如何组合使用,从而在渗透测试、安全评估乃至日常运维中,获得远超普通扫描的洞察力。

2. NSE脚本引擎核心机制与分类解析

2.1 NSE是如何工作的:规则与执行阶段

很多人把NSE脚本当作一堆独立的“小工具”来用,这没错,但理解其工作机制能让你用得更溜。NSE脚本的执行并非随意的,它遵循一套基于“规则”的触发机制。每个脚本都有一个或多个“规则”函数,最常见的是portrulehostrule。简单来说:

  • portrule:当Nmap发现目标主机上某个特定端口是开放的时候,才会执行该脚本。比如http-title.nse脚本,它的规则就是检测到80或443等HTTP/HTTPS端口开放,然后去获取网页标题。
  • hostrule:无论端口状态如何,只要主机在线(host up),就可能执行。这类脚本通常用于主机级别的探测,比如snmp-sysdescr.nse,它直接向目标的SNMP服务(UDP 161端口)发送查询,不依赖之前的端口扫描结果。

NSE脚本的执行也分“阶段”。默认情况下,当你使用-sC(等价于--script=default)或指定脚本时,它们主要在扫描阶段后执行。但有些脚本被设计在更早或更晚的阶段运行:

  • prerule:在Nmap开始扫描任何主机之前运行。可用于初始化全局数据。
  • postrule:在所有扫描和脚本执行完毕后运行。适合做总结性工作,比如将结果格式化为特定报告。

理解这些,你就能明白为什么有时候指定了脚本却没运行——可能是因为触发条件(规则)不满足。你可以用--script-trace参数来调试,看到底哪些规则被评估了,脚本是否被加载。

2.2 脚本分类与功能地图:找到你的“趁手兵器”

Nmap自带的脚本库非常庞大,为了管理,它们被分成了若干类别。掌握这些类别,你就能按图索骥:

  1. auth(认证类):专门处理各种服务的认证绕过或弱口令检测。例如http-brute(HTTP表单爆破)、ftp-bruteoracle-brute等。注意:这类脚本攻击性较强,在未经授权的测试中使用可能违法或造成服务瘫痪,务必在授权范围内谨慎使用。

    提示:使用爆破类脚本时,务必使用-p指定端口,并考虑使用--script-args设置延迟(如unpwdb.timelimit)以避免触发账户锁定或DoS。

  2. default(默认类):使用-sC--script=default时会运行的脚本集合。它们是经过精挑细选、相对安全且信息价值高的脚本,包括http-titlessl-certsmb-os-discovery等。这是最常用的一组脚本。

  3. vuln(漏洞类):用于检测已知的特定漏洞。例如http-vuln-cve2017-5638(检测Apache Struts2 S2-045漏洞)、smb-vuln-ms17-010(检测永恒之蓝漏洞)。这是渗透测试中的“尖刀”。

    注意:漏洞检测脚本可能会发送恶意载荷,可能对目标服务稳定性造成影响。在生产环境或敏感目标上使用前,务必评估风险。

  4. safe(安全类):被认为特别“温和”的脚本,不太可能引起目标崩溃或记录。通常用于初步的、隐蔽的信息搜集。

  5. intrusive(入侵类):与safe相对,这些脚本可能噪音大、攻击性强,容易触发IDS/IPS报警或导致服务问题。authvuln类中的很多脚本也属于此类别。

  6. discovery(发现类):用于探索网络信息,如snmp-brute(发现SNMP社区字符串)、broadcast-dhcp-discover(监听DHCP请求)等。

  7. version(版本增强):作为-sV版本探测的补充,能更精确地识别服务。version类脚本其实被集成在了-sV的流程中。

  8. 其他实用类别external(依赖外部资源如WHOIS查询)、malware(检测后门)、dos(拒绝服务测试,慎用!)等。

在Kali Linux中,你可以通过ls /usr/share/nmap/scripts/查看所有脚本,或使用nmap --script-help <脚本名>查看某个脚本的详细说明。例如,想了解所有与HTTP相关的漏洞脚本,可以:ls /usr/share/nmap/scripts/ | grep http-vuln

3. NSE脚本的调用、参数与高级用法

3.1 基础调用与多脚本组合

调用NSE脚本的核心参数是--script。最简单的用法是指定一个脚本或一类脚本:

# 使用单个脚本 nmap -sV --script http-title 192.168.1.105 # 使用一类脚本(注意:vuln类可能具有攻击性) nmap -sV --script vuln 192.168.1.105 # 使用多个脚本或类别,用逗号分隔 nmap -sV --script http-title,ssl-cert,ssh-hostkey 192.168.1.105 # 使用通配符 nmap -sV --script "http-*" 192.168.1.105 # 运行所有以http-开头的脚本

实操心得:不要一上来就对目标运行--script all--script vuln。这就像用大炮打蚊子,不仅速度慢、噪音大,而且可能“误伤”目标,甚至导致扫描被中断。正确的做法是“由浅入深”:先-sS -sV做端口和版本扫描,然后根据开放的服务,有针对性地调用相关脚本。例如,发现开了445端口,再考虑使用smb-os-discoverysmb-enum-shares等脚本。

3.2 脚本参数详解:精准控制脚本行为

脚本参数通过--script-args传递,这是发挥脚本威力的关键。参数格式通常是key=value,多个参数用逗号分隔。

# 1. 为特定脚本传递参数 nmap --script http-brute --script-args http-brute.path=/admin/login.php,userdb=users.txt,passdb=passwords.txt 192.168.1.105 # 2. 使用内置的用户名/密码字典(Kali自带) nmap --script http-brute --script-args http-brute.path=/login,brute.credfile=/usr/share/wordlists/nmap.lst 192.168.1.105 # 3. 传递通用参数给多个脚本 # 例如,许多http脚本都接受 `http.useragent` 参数来自定义User-Agent nmap --script http-headers,http-title --script-args http.useragent="Mozilla/5.0 (Custom Scanner)" 192.168.1.105

常见且重要的脚本参数:

  • brute.credfile:为爆破类脚本指定统一的用户名密码字典文件(格式为用户名:密码)。
  • http.host:设置HTTP请求头中的Host字段,在虚拟主机扫描时非常有用。
  • http.useragent:伪装浏览器User-Agent,避免被简单的WAF或日志分析规则屏蔽。
  • smbdomain,smbusername,smbpassword:为SMB相关脚本提供域、用户名和密码,用于认证后的信息枚举(如果你有凭证的话)。
  • timelimit:设置脚本运行的最长时间,防止某些脚本(如爆破)无限制运行。
  • unsafe:有些脚本默认不运行,因为可能危险或不稳定,加上这个参数强制运行。

你可以通过nmap --script-help <脚本名>查看该脚本支持的所有参数。例如nmap --script-help http-brute

3.3 实战进阶:条件执行与结果处理

  1. 根据端口或服务执行脚本:使用--script-p参数结合,可以精确定位。

    # 只对80端口运行http相关脚本 nmap -sV -p 80 --script "http-* and not (brute or dos)" 192.168.1.105

    这里还用到了脚本逻辑表达式and,or,not,非常强大。not (brute or dos)排除了爆破和DoS类脚本。

  2. 使用脚本进行深度漏洞扫描:以检测MS17-010(永恒之蓝)为例。

    nmap -p 445 --script smb-vuln-ms17-010 192.168.1.0/24

    如果发现漏洞,脚本会明确输出VULNERABLE请注意,这类扫描会产生大量SMB流量,在企业内网中可能触发安全告警。

  3. 结果输出与格式化:Nmap的-oA,-oX,-oN,-oG参数同样适用于脚本输出。XML格式(-oX)尤其适合用工具(如Metasploit的db_import)进一步解析。

    nmap -sV --script default -oA full_scan_with_scripts 192.168.1.105

    生成full_scan_with_scripts.xml.nmap.gnmap三个文件。

踩坑记录:有一次我对一个Web服务器运行--script http-slowloris-check(一种DoS攻击检测脚本),尽管目标可能确实存在该漏洞,但脚本的检测行为本身发送了大量异常连接,直接导致对方的Web服务在短时间内响应变慢,触发了运维监控报警。所以,在非授权测试或生产环境中,运行任何脚本(尤其是intrusivedosvuln类)前,一定要在测试环境验证其行为,并明确获得授权。

4. 核心脚本场景化实战与避坑指南

光说不练假把式,下面我们针对几个最常见的场景,进行组合拳式的实战演示。

4.1 场景一:全面的Web应用信息搜集

假设目标192.168.1.105开放了80和443端口。

# 第一步:基础信息抓取(快速、安静) nmap -sV -p 80,443 --script http-title,http-headers,http-robots.txt,ssl-cert,ssl-enum-ciphers 192.168.1.105 # 第二步:技术栈识别(稍微深入) nmap -sV -p 80,443 --script http-generator,http-methods,http-php-version,http-waf-detect 192.168.1.105 # 第三步:敏感路径与文件探测(需谨慎,可能触发告警) # 使用内置字典探测常见备份文件、管理后台等 nmap -p 80,443 --script http-enum 192.168.1.105 # http-enum脚本自带一个字典,你也可以用 --script-args http-enum.fingerprintfile=自定义字典路径 来指定

执行结果解读与技巧

  • http-title:直接告诉你网页标题,有时能泄露系统类型(如“某公司OA系统登录”)。
  • ssl-cert:能提取SSL证书里的所有信息,包括证书持有者(可能是真实公司名)、有效期、甚至证书中的备用名称(SAN),里面可能有其他域名(如admin.company.com,test.company.com),这是重要的子域名枚举来源。
  • http-enum:这个脚本非常实用,但也是“噪音”源。它的原理是请求一系列字典里的路径(如/admin/,/backup.zip,/phpinfo.php),根据HTTP状态码和返回长度来判断是否存在。务必在授权测试中使用,并且可以考虑自定义一个更精准、更小的字典文件,减少无效请求。
  • http-waf-detect:可以帮助你判断目标前面是否有WAF(Web应用防火墙),比如Cloudflare, ModSecurity等。知道有WAF存在,后续的测试策略就需要调整(例如,避免直接进行SQL注入测试,转而寻找逻辑漏洞)。

4.2 场景二:SMB服务深度枚举与漏洞检测

SMB(445端口)是内网渗透的黄金入口。

# 第一步:基础信息与漏洞快速筛查 nmap -sV -p 445 --script smb-os-discovery,smb-protocols,smb-vuln-ms17-010,smb-vuln-ms08-067 192.168.1.105 # 第二步:匿名访问枚举(如果允许的话) nmap -p 445 --script smb-enum-shares,smb-enum-users,smb-enum-processes,smb-enum-sessions 192.168.1.105 # 如果目标系统版本较新或配置严格,匿名访问可能无法枚举到信息。 # 第三步:凭据下的深度枚举(如果你有用户名和密码,甚至是哈希) nmap -p 445 --script smb-enum-shares,smb-ls --script-args smbusername=user,smbpassword=pass,smbdomain=WORKGROUP 192.168.1.105 # 使用 smb-ls 可以列出共享目录下的文件。

避坑指南

  • 版本兼容性:较新的Windows系统(如Win10 1709之后, Server 2016之后)默认关闭了SMBv1,且加强了匿名访问限制。因此,针对新系统,smb-os-discovery可能无法获取详细信息,smb-enum-*脚本在无有效凭据时也可能失效。
  • 签名要求:从SMBv2开始,服务器可能要求签名。Nmap的SMB脚本在某些情况下可能无法与要求签名的服务器正常交互。
  • 永恒之蓝(MS17-010)smb-vuln-ms17-010脚本的检测相对可靠。如果显示VULNERABLE,则目标极有可能未打补丁。再次强调,利用此漏洞是高度攻击性行为,仅限授权测试

4.3 场景三:数据库服务的探查与弱口令检测

针对常见的MySQL(3306)、MSSQL(1433)、Oracle(1521)、Redis(6379)等服务。

# MySQL nmap -sV -p 3306 --script mysql-info,mysql-empty-password,mysql-users,mysql-databases 192.168.1.105 # mysql-empty-password 检查是否允许空密码登录,这是一个常见的高危配置。 # Microsoft SQL Server nmap -sV -p 1433 --script ms-sql-info,ms-sql-empty-password,ms-sql-xp-cmdshell --script-args mssql.username=sa 192.168.1.105 # 如果发现空密码或弱口令,可以进一步使用 ms-sql-xp-cmdshell 尝试执行命令(需开启xp_cmdshell)。 # Redis (未授权访问是重大风险) nmap -sV -p 6379 --script redis-info 192.168.1.105 # 如果Redis配置不当(未设置密码,绑定在0.0.0.0),可以直接连接并操作数据。Nmap脚本主要进行信息收集,更深入的利用需要其他工具。 # 爆破脚本使用示例(务必谨慎!) nmap -p 3306 --script mysql-brute --script-args userdb=users.txt,passdb=passwords.txt,brute.credfile=creds.txt 192.168.1.105

重要安全提醒:数据库爆破脚本(mysql-brute,ms-sql-brute,oracle-brute等)会产生大量认证尝试日志,极易触发数据库系统的登录失败锁定机制或安全告警。在渗透测试中,通常建议先使用其他方式(如信息泄露、默认口令)获取凭证,或仅在测试的最后阶段、获得明确授权后,使用低频率、定制字典的方式进行。

4.4 场景四:利用NSE进行简单的后渗透信息收集

NSE脚本在获取了某个立足点(如一个Shell)后,也能用于内网横向移动的信息搜集。

# 1. 发现内网存活主机(ARP扫描,在同一网段内有效) nmap -sn --script broadcast-dhcp-discover,broadcast-ping 192.168.1.0/24 # 注意:`-sn` 是Ping扫描,不扫端口。这些广播脚本依赖于本地网络环境。 # 2. SNMP信息收集(如果社区字符串是默认的 public/private) nmap -sU -p 161 --script snmp-sysdescr,snmp-interfaces,snmp-netstat 192.168.1.1 # -sU 表示UDP扫描。SNMP(UDP 161)可能返回系统描述、网络接口、连接表等宝贵信息。 # 3. DNS信息枚举(尝试区域传输) nmap -p 53 --script dns-zone-transfer --script-args dns-zone-transfer.domain=example.com 192.168.1.53 # 如果目标DNS服务器配置不当,允许区域传输(AXFR),则可以获取该域的所有DNS记录。

5. 脚本管理、调试与自定义开发入门

5.1 查找、更新与调试脚本

  • 查找脚本:除了用lsgrep,Nmap自带查找功能:

    # 根据类别查找 nmap --script-help discovery # 根据关键词查找脚本描述 nmap --script-help "*ftp*"
  • 更新脚本库:Kali Linux通过apt更新Nmap即可更新脚本。

    sudo apt update && sudo apt upgrade nmap

    社区脚本有时会单独发布在 Nmap官方脚本仓库 。你可以手动下载.nse文件放到/usr/share/nmap/scripts/,然后执行nmap --script-updatedb更新脚本数据库。

  • 调试脚本

    • -d:设置调试级别(1-9),数字越大信息越详细。-d3对查看脚本执行流程很有帮助。
    • --script-trace:显示脚本发送和接收的数据。这是分析脚本行为、排查为什么脚本没按预期工作的最强利器。
    • --packet-trace:显示Nmap发送和接收的每个原始数据包。
    nmap --script http-title --script-trace 192.168.1.105

5.2 编写一个简单的自定义NSE脚本

当你发现现有脚本不能满足需求时,可以自己写。NSE脚本用Lua语言编写。下面是一个极简的例子,演示如何创建一个检测特定HTTP响应头的脚本。

  1. 创建脚本文件/usr/share/nmap/scripts/http-custom-header.nse

    local http = require "http" local nmap = require "nmap" local stdnse = require "stdnse" local string = require "string" description = [[ 检测目标HTTP响应中是否包含特定的自定义头(例如 `X-Powered-By: MyFramework`)。 该脚本通过检查 `X-Powered-By` 头来识别潜在的技术栈。 ]] author = "Your Name" license = "Same as Nmap--See https://nmap.org/book/man-legal.html" categories = {"default", "safe", "discovery"} -- 脚本规则:当80或443端口开放时运行 portrule = function(host, port) return port.number == 80 or port.number == 443 end -- 脚本执行动作 action = function(host, port) local response = http.get(host, port, "/") if response.status then local header_value = response.header["x-powered-by"] if header_value then return string.format("Found X-Powered-By header: %s", header_value) else return "X-Powered-By header not found." end else return "HTTP request failed." end end
  2. 更新脚本数据库并测试

    sudo nmap --script-updatedb nmap -p 80 --script http-custom-header 192.168.1.105

编写心得:从模仿开始是最好的方式。多看看/usr/share/nmap/scripts/目录下现有脚本的源码,特别是那些功能简单的(如http-title.nse)。理解portrule/hostruleaction函数的结构,以及如何使用httpsmbstdnse这些内置库。Nmap官方文档的NSE部分提供了完整的API参考。

6. 性能优化、常见问题与排查实录

6.1 性能优化:让扫描更快更隐蔽

NSE脚本虽然强大,但滥用或不当使用会导致扫描速度极慢或被目标封禁。

  1. 最小化扫描范围:永远使用-p指定端口,不要扫描全端口的同时运行复杂脚本。

    # 差实践:慢且嘈杂 nmap -sV --script default 192.168.1.105 # 好实践:先快速端口扫描,再针对性地运行脚本 nmap -sS --top-ports 100 192.168.1.105 -oG quick_scan.gnmap grep “open” quick_scan.gnmap | awk ‘{print $2, $5}’ # 提取开放端口 nmap -sV --script “default and safe” -p [上面提取的端口] 192.168.1.105
  2. 控制超时和重试--max-rtt-timeout,--min-rtt-timeout,--initial-rtt-timeout以及--max-retries参数可以显著影响扫描速度。在网络稳定的内网,可以适当降低超时时间和重试次数。

    nmap -T4 --min-rtt-timeout 100ms --max-rtt-timeout 500ms --max-retries 1 --script http-title -p 80 192.168.1.105

    -T模板(0-5)是预设的时序策略,-T4是“激进”模式,-T3是默认模式,-T2-T1更隐蔽但更慢。

  3. 限制并行扫描--min-hostgroup,--min-parallelism等参数可以控制主机组和探针的并行度。对于脚本扫描,尤其是可能建立连接的脚本(如HTTP),过高的并行度可能导致目标压力过大或自身网络资源耗尽。

  4. 使用快速扫描模板-F(扫描100个常见端口)比默认的-p 1-65535快得多。结合脚本时,先-F快速定位关键服务端口。

6.2 常见问题与解决方案速查表

问题现象可能原因排查与解决方案
脚本未执行,无相关输出1. 端口规则不满足(portrule)。
2. 主机规则不满足(hostrule)。
3. 脚本被归类为intrusive且未使用--script-args=unsafe=1
1. 使用--script-trace查看规则评估过程。
2. 确认目标端口状态(open/filtered?)。
3. 使用nmap --script-help <脚本名>查看脚本类别和规则。
脚本执行报错或中途停止1. 网络超时或连接被重置。
2. 脚本内部逻辑错误(如处理异常响应)。
3. 目标服务异常关闭连接。
1. 增加超时时间(--script-timeout 10s)。
2. 使用-d增加调试信息级别。
3. 检查--packet-trace看网络交互是否正常。
爆破类脚本运行极慢1. 字典文件过大。
2. 网络延迟高,且脚本未设置延迟。
3. 目标有登录失败锁定策略。
1. 使用精简、有针对性的字典。
2. 通过--script-args设置brute.delaytimelimit
3. 在授权测试中,先尝试常用弱口令,而非大规模爆破。
扫描结果与实际情况不符(如误报漏洞)1. 脚本的检测逻辑存在缺陷或过于宽松。
2. 目标服务返回了诱导性响应。
3. 网络中间设备(如WAF、负载均衡)干扰。
1.任何自动化工具的漏洞报告都必须手动验证!
2. 使用--script-trace分析脚本发送的载荷和收到的响应。
3. 尝试用其他独立工具或手动测试进行确认。
运行大量脚本时Nmap崩溃或内存占用高1. 同时运行太多资源密集型脚本。
2. 单个脚本存在内存泄漏(罕见)。
3. 扫描目标过多。
1. 分批次运行脚本,不要一次性使用--script all
2. 限制并行主机数量(--max-hostgroup)。
3. 升级到最新版Nmap。

6.3 我的个人经验与最后建议

用了这么多年Nmap和NSE,我最大的体会就是“工具越强大,责任越重大”。NSE脚本极大地扩展了我们的能力边界,但同时也带来了更高的风险。以下是我总结的几条铁律:

  1. 授权第一:这是红线,任何时候没有明确授权,都不要对目标运行任何攻击性脚本(vuln,auth,dos,intrusive)。
  2. 由浅入深:侦察阶段先用-sS -sV加少量safe/default脚本。根据结果,像剥洋葱一样,一层层使用更具体的脚本。永远不要第一轮就上--script vuln
  3. 理解原理:不要只满足于运行脚本和看结果。用--script-help--script-trace去理解脚本在干什么。这不仅能帮你排查问题,更能让你在遇到新场景时,知道如何组合或修改脚本来达到目的。
  4. 结果验证:自动化工具的所有发现,尤其是漏洞报告,都必须经过手动验证。误报和漏报是常态,专业的渗透测试报告不能建立在未经验证的自动化结果之上。
  5. 维护个人脚本库:将常用的、修改过的、或者自己编写的小脚本整理好。渗透测试很多时候是重复性工作,一个高效的脚本工具箱能节省大量时间。

最后,Nmap的官方文档和社区是宝库。遇到问题,多查man nmap,多看看 Nmap官方文档 和 NSE脚本文档 。随着你对网络协议和服务理解的加深,你会发现NSE脚本能做的事情远比你想象的要多。它不仅仅是一个扫描器的插件,更是一个强大的网络探测与交互框架。

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

本地Cookie导出:Get cookies.txt LOCALLY隐私安全实践

本地Cookie导出&#xff1a;Get cookies.txt LOCALLY隐私安全实践 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 在数字时代&#xff0c;你是否曾…

作者头像 李华
网站建设 2026/6/26 13:19:50

如何在Windows上安装Btrfs文件系统:终极完整指南

如何在Windows上安装Btrfs文件系统&#xff1a;终极完整指南 【免费下载链接】btrfs WinBtrfs - an open-source btrfs driver for Windows 项目地址: https://gitcode.com/gh_mirrors/bt/btrfs 想要在Windows系统上体验Linux下一代文件系统Btrfs的强大功能吗&#xff1…

作者头像 李华
网站建设 2026/6/26 13:15:09

2026年小白程序员必备:轻松掌握大模型,从入门到实战,附收藏攻略!

本文针对2026年AI智能体的发展趋势&#xff0c;为初学者提供了实用指南。强调以终为始、理解AI局限、实用主义等学习原则&#xff0c;并介绍了智能体、Token机制、RAG、Function Calling等核心概念。文章还推荐了扣子、Gemini等工具&#xff0c;并通过自媒体运营、职场提效、内…

作者头像 李华
网站建设 2026/6/26 13:09:58

如何判断实习转正是否靠谱

一、 怎么看风声对不对&#xff1f;&#xff08;内部人的风向标&#xff09; 你进公司提前实习后&#xff0c;不需要变成“预言家”&#xff0c;只要留意以下 4 个最直观的信号&#xff0c;就能判断这家公司或这个部门稳不稳&#xff1a; 1. 看 hc&#xff08;招聘名额&#xf…

作者头像 李华