news 2026/10/22 19:21:56

麒麟ARM离线服务器安装nmap:依赖分析与本地yum源实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
麒麟ARM离线服务器安装nmap:依赖分析与本地yum源实战

1. 为什么要在离线麒麟ARM环境中装nmap

最近在给一台跑着银河麒麟KylinOSV10SP2的鲲鹏920 ARM服务器部署运维工具,第一步就卡住了:这台机器是严格的内网隔离环境,没有外网,yum源空空如也,想装一个最基础的网络安全扫描工具nmap都费了不少周折。折腾完这一趟,我梳理了一整套在离线环境下给麒麟ARM版安装nmap的可行路径,包括依赖分析、安装包准备、本地源配置、常见坑点,分享出来给同样在搞信创环境运维的朋友参考。

先说结论:nmap在ARM架构下的安装并不复杂,但离线环境最大的麻烦是依赖闭环。麒麟系统基于Linux生态,nmap本体其实只有一个主包,但它运行时依赖libpcap、liblua、openssl、libssh2等一堆底层库。如果这些库的系统版本刚好满足nmap编译时的要求,那拿一个nmap的rpm包直接装上就能用;如果不满足,就得从源码编译或者补装依赖包。我这次碰到的就是依赖版本缺失,最后通过准备完整的rpm依赖集合并配置本地yum源解决,前后花了不到一个小时。

这篇内容适合谁看:需要在内网或隔离环境部署安全工具的运维工程师、信创项目交付实施人员、以及刚接触麒麟系统的开发同学。我会把从环境检查、安装包准备到实际安装验证的每个步骤都写清楚,包括我实际踩过的坑和绕过的弯路,照着做基本能一次成功。

2. 动手前先搞清楚系统底细和依赖情况

2.1 确认架构、版本和现有环境

拿到一台麒麟机器,你第一步要做的不是急着找安装包,而是先把系统的家底摸清楚。因为同一个KylinOS版本,x86和ARM的软件包是完全不同的两套;同为ARM,也可能分为aarch64和armhf,鲲鹏920是标准的aarch64架构,但保险起见一定要用命令确认。

在终端里执行以下三条命令:

# 查看系统版本信息 cat /etc/os-release # 查看内核和CPU架构 uname -m # 查看CPU详细信息 lscpu | grep Architecture

我在实际环境中,/etc/os-release输出的是Kylin Linux Advanced Server release V10 (SP2),uname -m返回aarch64,lscpu也能看到Architecture: aarch64。这就是标准的ARM64环境。

这里有个容易搞混的概念:很多人看到麒麟系统就以为是某个固定发行版,其实麒麟V10系列有用友和欧拉两条内核路线。SP2版本基于Linux 4.19内核,在包管理上兼容CentOS/RHEL的rpm体系,这决定了我们后续可以用rpm包和dnf/yum工具来安装。如果你的环境是其他SP版本,操作思路一样,但具体依赖版本可能略有差异。

2.2 检查系统是否已有nmap或残留组件

麒麟系统作为服务器操作系统,默认不一定装了nmap,但如果你的镜像比较全,可能已经有nmap-ncat这个子包。检查一下:

# 查看是否已安装nmap相关组件 rpm -qa | grep nmap # 检查命令是否存在 which nmap

如果输出为空,说明确实没装。如果之前装过但没装全,可能出现nmap命令找不到、但/usr/bin/nmap文件还在的情况,这种残留会干扰后续安装,最好先卸载干净再装新的。另外有些运维人员可能通过自编译的方式装过,那rpm -qa是查不到的,要用ls /usr/local/bin/nmap这类方式确认。

2.3 摸清依赖库的当前版本是核心功课

nmap的二进制包在运行时会动态链接一堆.so库,这些库大多数系统镜像里已经预装了,但版本高低直接决定能不能跑起来。我这次就栽在libpcap上。系统里的libpcap是1.7.x,而麒麟软件源里的nmap包是编译时链的libpcap 1.9.x,所以直接rpm安装的时候报“需要libpcap.so.1()(64bit)”缺依赖。

所以你在准备安装包之前,最好先记录环境里这些关键库的版本:

# 查看关键依赖库当前情况 ldconfig -p | grep -E "libpcap|liblua|libssl|libssh2|libz"

正常麒麟系统里openssl、zlib这些基础库肯定有,但libpcap和liblua不一定有,或者版本不对。记住这个查询结果,后面准备安装包时可以直接对照。

3. 离线安装的方案选择:rpm集合包还是源码编译

3.1 方案对比与适用场景

离线环境下安装nmap,我总结出三条路线:

方案前置条件优点缺点
rpm包直接安装系统内已有全部依赖库速度快,命令简单依赖不全时容易失败
rpm依赖集合包 + 本地yum源需要在一台联网的同架构机器上准备rpm包可离线解析依赖,安装完整,便于后续装其他软件准备阶段稍微繁琐
源码编译系统有gcc/make和开发库头文件可定制功能,避开rpm依赖关系离线环境头文件难以凑齐,编译耗时长

我强烈建议优先选择第二种。原因很直接:rpm方式最贴合麒麟系统的包管理体系,安装、卸载、升级都容易打理,而且后续补装其他工具时,同样的离线yum源可以反复用。源码编译只是最后的兜底方案,如果你连编译工具链都没有,那还得准备gcc、make、kernel-headers等一堆开发包,成本反而更高。

3.2 为什么离线yum源比手动rpm逐个安装更省心

手动rpm安装最大的坑在于依赖顺序。nmap主包依赖libpcap,libpcap又依赖libnl、libpcap-devel等,一旦链条上有一个包没装对,就得反复试错。使用本地yum/createrepo构建离线源之后,dnf install nmap会像在线环境一样自动从本地源里解析依赖,缺什么装什么,顺序完全不用你操心。

这也是我踩过几次手动rpm的坑之后总结出来的。手动rpm适合依赖简单的小软件,但nmap这类涉及网络库的工具,老老实实用本地源最稳。

4. 制作离线rpm安装包:从联网机器上收集依赖

4.1 准备一台同架构的网络环境机器

你需要在有外网的环境找一台同样架构的机器,比如云服务器选aarch64,或者一台同为鲲鹏/飞腾的机器,操作系统最好也是麒麟V10SP2。如果操作系统版本不完全一致,尽量选择相近的,并且软件源是同一个大版本。这样做出的rpm包才能在目标机器上无缝安装。

如果没有同款麒麟系统,用CentOS 8或RHEL 8的aarch64系统也可以,但最好用麒麟官方源,因为麒麟会在上游包上做少量补丁和版本调整。

4.2 使用yumdownloader和dnf download收集rpm包

在联网机器上,先确保已经配置好麒麟的在线软件源。最常见的操作配置是使用dnf工具系列。麒麟V10SP2自带dnf。

首先安装dnf-utils或yum-utils软件包以提供yumdownloader命令:

# 安装工具(在线环境一条命令搞定) dnf install -y dnf-utils createrepo

然后下载nmap及其所有依赖。这里有两种思路:

思路一:直接让dnf帮我们把依赖包全部拉下来。

# 创建一个目录用于存放rpm包 mkdir -p /root/nmap-rpms cd /root/nmap-rpms # 只下载不安装,包括所有依赖 dnf download nmap --resolve --alldeps

--resolve会自动分析依赖树,--alldeps表示把所有依赖也一起下载。执行完之后,目录里会出现nmap主包、nmap-ncat、libpcap、lua等一堆rpm文件。

思路二:如果你能联网安装一台临时环境,更简单的方法是用yum install --downloadonly。

# 模拟安装同时仅下载,不实际安装 dnf install -y nmap --downloadonly --downloaddir=/root/nmap-rpms

方法二会自动把依赖和主包一起拉进指定目录。我实际更推荐方法二,因为--downloaddir的输出结果更干净,而且不会漏包。不过它依赖一个前提:联网机器本身有可用的dnf源。

下载完成后检查目录内容,确认已经得到类似这些文件:

nmap-7.80-3.aarch64.rpm nmap-ncat-7.80-3.aarch64.rpm libpcap-1.9.1-8.aarch64.rpm lua-5.3.4-12.aarch64.rpm nmap-scripts-7.80-3.aarch64.rpm ...

注意看每个rpm包的aarch64标识。如果同时出现x86_64,说明你的下载配置有误,要把架构限定住:

# 限定下载aarch64架构的包 dnf download nmap --resolve --alldeps --arch=aarch64

4.3 依赖包核对:一个都不能少

下载完后不要急着拷走,先核对一遍。nmap在aarch64上常见的依赖大概包括:

  • libpcap(数据包捕获核心库)
  • lua(脚本引擎)
  • openssl-libs(TLS支持)
  • libssh2(SSH服务探测)
  • zlib(压缩库)
  • nmap-ncat(nc工具,通常作为子包一起装)
  • nmap-scripts(NSE脚本,一般被nmap主包依赖)

把这些rpm包统一放到一个目录,然后在联网机器上用dnf做一次离线安装验证,是最稳的:

# 在联网机器上验证rpm包集合完整性(不实际安装到系统) dnf install --downloadonly --disablerepo=* --repo=local /root/nmap-rpms/*.rpm

如果dnf提示缺依赖,就需要回到在线源补充下载;如果提示没有可用软件包,说明源有问题。

4.4 把包传到目标机器的几种方式

离线内网机器通常有好几种文件传输方式,根据你的环境选择:

  • U盘/移动硬盘拷贝:物理隔离时最常用,注意检查U盘文件系统能支持大文件(rpm包一般没问题)。
  • 内网共享目录:如果目标机器能挂载某台服务器的NFS或SMB共享,直接mount后拷贝。
  • 在目标机器上直接用U盘挂载:
mkdir /mnt/usb mount /dev/sdb1 /mnt/usb cp -r /mnt/usb/nmap-rpms /root/ umount /mnt/usb
  • 串口/管理口传输:很多服务器有带外管理口,可以挂载虚拟光驱,不过这种效率低,不适合几十个rpm,适合少量包。

无论哪种方式,拷到目标机器后先校验MD5或SHA256。我在实际项目中吃过亏:U盘在中途被病毒感染导致文件损坏,安装时解压报错,排查半天。校验命令如下:

cd /root/nmap-rpms sha256sum *.rpm > checksums.txt sha256sum -c checksums.txt # 一致性检查

5. 在麒麟ARM目标机上构建本地yum源并安装nmap

5.1 用createrepo构建本地仓库

把rpm包拷贝到目标机器后,我们建一个本地软件仓库目录。选择思路清晰的目录结构方便以后增加其他软件包:

# 建目录,比如 /opt/offline-repo/ mkdir -p /opt/offline-repo/Packages # 把rpm包全部移动到Packages子目录 cd /root/nmap-rpms mv *.rpm /opt/offline-repo/Packages/

由于麒麟系统大概率已经安装了createrepo(如果没装,可以从你的rpm包集合里找到createrepo的aarch64包,或者在在线机器上提前下载),执行:

# 创建仓库元数据 cd /opt/offline-repo createrepo -v .

输出会显示正在扫描rpm包、生成依赖关系信息。完成后会在/opt/offline-repo/repodata/目录生成一系列xml文件。这就是本地仓库的索引。

如果你的环境里createrepo没有,需要单独下载createrepo和libcomps、python3-libcomps等依赖包,或者可以选择跳过createrepo,直接用rpm -ivh *.rpm手动安装。但前面说过,yum源方案更健壮,所以尽量把createrepo也准备好。

5.2 配置离线yum源文件

在/etc/yum.repos.d/下新建一个repo文件,比如offline.repo:

cat > /etc/yum.repos.d/offline.repo <<'EOF' [offline] name=Offline RPM Repository baseurl=file:///opt/offline-repo enabled=1 gpgcheck=0 EOF

这里gpgcheck=0是因为rpm包没有有效的GPG签名,跳过签名验证。内网可信环境下这个操作是常见的,但如果有安全审计要求,建议还是在前期把麒麟官方公钥拷到机器上,维持gpgcheck=1更规范。

写完后检查仓库是否被识别:

dnf repolist

正常情况下会列出offline仓库。如果提示“仓库未找到”,检查路径、文件和权限。

5.3 正式安装nmap

现在用dnf像在线环境一样安装:

# 清理缓存 dnf clean all # 生成缓存 dnf makecache # 安装nmap,包含必要子包 dnf install -y nmap nmap-ncat

dnf会从本地源分析依赖,自动安装缺失的libpcap、lua等。整个安装过程会看到类似“安装 1 个软件包 + 3 个依赖”的信息。我这次装的时候,dnf提示需要libpcap,自动从离线源里装上,一次成功。

安装完成后,验证一下:

# 查看版本 nmap --version # 查看安装的包列表 rpm -qa | grep nmap

如果nmap --version输出了类似“Nmap 7.80 ( https://nmap.org )”的内容,说明安装成功。

5.4 快速验证扫描功能

离线环境内网通常有不少主机,可以用nmap做一个简单的局域网扫描测试,确认数据包收发和端口探测功能正常。注意nmap扫描需要root权限,否则会报“You requested a scan type which requires root privileges”:

# 先ping扫描 sudo nmap -sn 172.16.10.0/24 # 再对指定主机做常规端口扫描 sudo nmap -sS -T4 -p 1-1024 172.16.10.22

如果能看到主机在线状态和端口信息,说明nmap的核心功能都OK了。我这里实测-sS扫描能正确识别内网设备的22、80、443等常用端口,速度也比预想快,说明ARM架构下性能没拖后腿。

6. 备用方案:没有合适的rpm包时源码编译

6.1 什么时候必须走源码编译

如果你的目标机是特别老的SP版本、或者联网机器上找不到匹配的aarch64 rpm包,源码编译就是救急路线。源码编译需要:

  • 系统里有gcc、make等编译工具
  • 系统里有libpcap开发库和openssl开发库头文件(通常libpcap-devel、openssl-devel)
  • 源码包能从外部介质带进来

如果这些条件都不满足,那源码编译会更痛苦,因为编译依赖比运行依赖多得多。所以我把这条路线放到后面,只作为备选。

6.2 编译安装nmap的具体步骤

假设你已经通过U盘拿到了nmap源代码压缩包(如nmap-7.80.tar.bz2),并确认系统有编译工具链:

# 解压 tar -xjf nmap-7.80.tar.bz2 cd nmap-7.80 # 配置 ./configure --prefix=/usr/local --without-zenmap # 编译(用多个线程加速) make -j4 # 安装 make install # 验证 /usr/local/bin/nmap --version

源码编译的坑主要在configure阶段。它会检测libpcap、openssl等库是否可用,如果提示“failed to find libpcap”,说明缺少libpcap-devel。这时候要么回到rpm路线补装libpcap-devel,要么从源码编译libpcap。由于我们这是离线环境,建议在在线机器上下载好libpcap-devel的rpm包一并带过去,比从源码编译libpcap要快得多。

另外编译到的nmap默认安装到/usr/local/bin,与rpm安装的/usr/bin路径不同,后续调用时需要注意,必要时做软链接:

ln -s /usr/local/bin/nmap /usr/bin/nmap

6.3 源码编译方案的劣势和我踩过的坑

源码编译对运维后期维护并不友好。rpm包管理安装的nmap可以用dnf remove nmap干净卸载,源码编译的则只能手动删文件,很容易残留库文件或脚本文件。

我之前在一台ARM测试机上源码编译过一次,configure倒是顺利过了,但make的时候因为系统内存只有4GB,make -j8直接把进程挤爆了,报“internal compiler error”。后来改成make -j2才编过去。所以如果你的目标机器内存不大,编译参数一定别贪多核。

7. 常见离线安装问题和排查技巧

7.1 安装时报依赖缺失或版本冲突

这是离线环境里出现频率最高的问题。常见的错误有:

错误:依赖检测失败: libpcap.so.1()(64bit) 被 需要 liblua-5.4.so()(64bit) 被 需要

遇到这种情况,不要急着加--nodeps硬装,先把缺失的库补上。最稳妥的做法是回到联网机器上重新下载对应依赖包,加入离线源再装。如果只是极个别包缺,也可以单独用rpm安装:

rpm -ivh libpcap-1.9.1-8.aarch64.rpm

但要注意版本不能比系统已有库还低或差异过大,否则会导致其他程序崩溃。我在生产环境就见过有人用widthout依赖强装导致curl和wget全挂的例子,最后只能重装系统。

7.2 架构不匹配的rpm包错误

如果你不小心下载了x86_64的nmap包,安装时会报:

错误:包不适用于平台(aarch64)

这就是架构错误。解决办法很简单:回到联网机器确认下载的是aarch64的包,检查文件名中是否带aarch64。有时从某些镜像站下载源里会有noarch包,那种通用包没问题,但包含编译后二进制的主包必须是aarch64。

7.3 本地yum源不识别或找不到仓库

配置了repo文件但dnf repolist看不到,检查以下几点:

  • repo文件是否放在了/etc/yum.repos.d/目录下,并且baseurl路径写得正确
  • baseurl=file:///opt/offline-repo路径最后的斜杠不能多也不能少
  • 用ls /opt/offline-repo/repodata确认元数据是否生成
  • 如果仓库目录里有子目录,createrepo需要指向含有rpm的那一层

有时dnf有缓存,执行dnf clean all后再makecache能解决。

7.4 安装成功但nmap命令找不到

如果你通过rpm包安装,正常nmap会放在/usr/bin/nmap;如果是源码编译,可能在/usr/local/bin。找不到时先执行:

find / -name nmap -type f 2>/dev/null

找到路径后,检查环境变量PATH,或做软链到/usr/bin。不过这类问题在rpm安装中不太会出现,主要出在源码编译场景。

7.5 扫描时报权限不足

nmap的SYN扫描、UDP扫描和OS指纹识别都需要root权限。非root用户执行会提示:

You requested a scan type which requires root privileges. QUITTING!

用sudo执行即可。如果目标机器没有给普通用户sudo权限,就需要用root账户登录执行。后台环境里不建议改sudoers,直接用root或su -。

7.6 内网扫描慢或结果不完整的内情

内网机器中存在防火墙、主机禁ping的情况,nmap的默认扫描行为可能探测不到。这时可以换一种扫描方式:

# 使用TCP连接扫描代替SYN扫描,对权限要求低 sudo nmap -sT -p 1-1000 172.16.10.22 # 提高并发和超时设置 sudo nmap -T5 --min-rtt-timeout 100ms --max-rtt-timeout 500ms 172.16.10.22

不过-T5有时会因包丢得厉害导致误报,实际内网环境中-T4更均衡。

8. 离线安装后的收尾优化和运维建议

nmap装完并不是终点。在信创环境下,后续还可能需要装其他运维工具,我建议你把刚才搭建的本地yum源保留好并扩大它。每次从联网机器上下载新工具的rpm包时,都扔进/opt/offline-repo/Packages/,然后重新执行:

createrepo --update /opt/offline-repo

这样本地源会像一个不断扩充的软件仓库,下次在内网装东西时,只需要dnf install即可,不用再从U盘找包。

另外一个建议是:在离线环境下给nmap准备脚本集环境。nmap的NSE脚本存放在/usr/share/nmap/scripts/,安装rpm包时通常已经自带。如果你需要额外的探测脚本,拷贝进去后要更新索引:

nmap --script-updatedb

离线环境没有网络时,这个命令不会去下载远程脚本,但能刷新本地脚本数据库,确保自定义脚本能立即被识别。

8.1 给目标机器做一次安全基线自检

装好nmap后,我习惯用它做一次本机端口自检,确认没有意外开放的端口。这个习惯在交付项目时很有用:

# 扫描本机所有TCP端口 nmap -sS -p- 127.0.0.1

如果发现某些服务端口不该对外,调整防火墙规则或关闭服务。这属于系统加固的基础功课,nmap在这里不仅是“别人扫我们”的工具,也是自查的利器。

8.2 记录安装档案

信创项目的交付文档通常要求有软件安装记录。我建议把这次离线安装过程中的系统版本、架构、包列表和安装命令整理成一个文档存档。有据可查,后续遇到同样问题可以直接复制执行。

9. 离线环境下的几个铁律和个人体会

最后聊聊我在离线环境安装开源软件过程中悟出来的几条经验。

第一,永远不要在目标机器上直接搜“internet”源。离线就是离线,不要尝试修改DNS或者寻求外部网络,不仅合规是红线,而且效果很差。老老实实准备离线rpm包才最可靠。

第二,依赖包宁多勿少。在联网机器上下载依赖时,我宁可多下几个,也不想漏。因为多下的包放本地源不影响,少了就得再跑一次传输流程。比如libpcap-devel、openssl-devel这些开发包,即使安装nmap本身用不到,后续源码编译其他工具可能用得上,提前放进本地源不亏。

第三,优先使用rpm/本地yum,而不是盲目源码编译。很多初学者拿到离线环境第一反应就是“没网,编译吧”,这是误判。实际上一个软件在发行版里基本都有预编译包,只要架构匹配,准备齐全的rpm包远比源码编译省事且更可控。

第四,安装前先备份系统重要数据。在内网服务器的生产环境上装包,建议先做快照或备份。虽然rpm安装一般很安全,但依赖库升级可能影响现有服务。我在测试机上就经历过一次因为升级libpcap导致tcpdump不可用的问题,虽然影响不大,但也花了十几分钟回滚。所以操作前留个后手,总是对的。

还有一个小小的实用技巧:在联网机器上下载rpm包时,把下载命令写成脚本定期执行,把常用工具的包全部收进本地源。这样即使以后来了一台全新的离线机器,也能几分钟内把基础运维环境搭好。我现在的做法是维护一个/opt/offline-repo镜像目录,里面已经有了nmap、tcpdump、nc、lsof、strace、vim-enhanced等常用的运维工具,全部是aarch64版本,走到哪都能直接装。

麒麟ARM离线安装nmap这件事,说起来是一个很垂直的场景,但它的方法论可以复用到几乎所有开源软件。摸清架构、准备依赖、搭好本地源、验证安装,这套流程跑顺了,信创环境的软件交付效率会提升一大截。希望这篇实战记录能帮你少走些弯路,如果你在实施过程中有其他怪问题,欢迎一起交流。

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

基于ONNX的人脸识别:从模型转换到工程部署实践

1. 项目拆解&#xff1a;人脸识别不是“一个模型”的事1.1 完整链路里的人脸识别到底包含哪些环节前阵子接了一个基于onnx的人脸识别项目&#xff0c;刚开始我以为把训练好的模型转成onnx&#xff0c;再用onnxruntime跑一下就能完事。真正动手才发现&#xff0c;人脸识别从来不…

作者头像 李华
网站建设 2026/10/22 19:21:38

AI编程教程为何能获2万Star?内容设计、维护与AI推荐之道

前两天后台弹出一条新提醒&#xff0c;内容很简单&#xff1a;这份AI编程教程在代码托管平台上的Star总数突破了2万。说实话&#xff0c;看到这个数字的时候&#xff0c;我比当初跑通第一个Demo还要平静——因为更让我在意的&#xff0c;是旁边那条来自某款国产AI助手的收录通知…

作者头像 李华
网站建设 2026/10/22 19:20:57

Unity3D棋牌游戏发牌效果实现:协程+二次贝塞尔曲线动画详解

做棋牌类游戏Demo的时候&#xff0c;发牌效果基本上是我遇到的第一道坎。看起来不过就是把牌从牌堆飞出去、落到某个玩家手边&#xff0c;真上手写了才发现里面全是碎问题&#xff1a;牌飞到一半被别的物体挡住怎么办、左右两家手牌排列方向不一样怎么处理、发到一半点击重新开…

作者头像 李华
网站建设 2026/10/22 19:20:56

开源智能体工作台搭建实战:六组件打造多智能体协作系统

最近我把手头几个智能体相关的开源项目串成了一个完整的工作台&#xff0c;核心组合是 Eigent、Alma、BionicGPT、LobeChat、Aizen、LobeHub 这六个东西。折腾完之后最大的感受是&#xff1a;单聊一个模型、单跑一个聊天框&#xff0c;早就不够用了。真正要落地一个能干活、能检…

作者头像 李华
网站建设 2026/10/22 19:20:48

Unity物体跟随的矩阵方案:从相对位姿到坐标空间换算

1. 这需求为什么值得用矩阵&#xff1a;先聊聊“跟随”的本质 做 Unity 开发久了&#xff0c;你会发现“物体跟随”这四个字能延伸出一大堆玩法&#xff1a;镜头跟着角色、炮塔跟着目标、挂件跟着武器、NPC 跟着巡逻路径点。最直觉的做法无非两种&#xff1a;把跟随者直接拖成目…

作者头像 李华
网站建设 2026/10/22 19:20:29

CARLA分布式自动驾驶仿真平台源码拆解与多机同步实战

简介&#xff1a;本资源为基于CARLA的高性能分布式自动驾驶仿真平台毕业设计完整源码包&#xff0c;面向计算机、人工智能、自动化、通信工程等专业的学生与科研人员&#xff0c;可用于毕业设计、课程设计、作业提交或项目初期演示。包内共17个文件&#xff0c;以13个Python脚本…

作者头像 李华