docker|Linux|以centos基礎鏡像為基礎制作nmap專用鏡像(鏡像瘦身計劃)

一、

最近由于某些場景下需要使用nmap,而nmap的rpm安裝包在源目標機器上使用有軟件沖突,因此,計劃使用docker部署nmap

具體計劃為

1、使用centos的基礎鏡像,在有網環境下,通過配置阿里云的yum倉庫,在centos基礎鏡像內編譯安裝好nmap

2、制作多版centos鏡像,盡量優化制作出的鏡像大小,合理瘦身,以方便制作出的鏡像上傳和下載

3、在多版鏡像中挑選最小的鏡像,測試鏡像功能是否符合預期

二、

制作鏡像前的準備工作

主要是nmap的源碼包和阿里云的yum倉庫文件

阿里云的yum倉庫文件 兩個文件都修改完成,可以直接使用了,和Dockerfile放置在同一個目錄下,名字分別為CentOS-Base.repo和epel.repo

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#[base]
name=CentOS-7 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/os/$basearch/http://mirrors.aliyuncs.com/centos/7/os/$basearch/http://mirrors.cloud.aliyuncs.com/centos/7/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#released updates 
[updates]
name=CentOS-7 - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/updates/$basearch/http://mirrors.aliyuncs.com/centos/7/updates/$basearch/http://mirrors.cloud.aliyuncs.com/centos/7/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that may be useful
[extras]
name=CentOS-7 - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/extras/$basearch/http://mirrors.aliyuncs.com/centos/7/extras/$basearch/http://mirrors.cloud.aliyuncs.com/centos/7/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-7 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/centosplus/$basearch/http://mirrors.aliyuncs.com/centos/7/centosplus/$basearch/http://mirrors.cloud.aliyuncs.com/centos/7/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#contrib - packages by Centos Users
[contrib]
name=CentOS-7 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/7/contrib/$basearch/http://mirrors.aliyuncs.com/centos/7/contrib/$basearch/http://mirrors.cloud.aliyuncs.com/centos/7/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://mirrors.aliyun.com/epel/7/$basearch/debug
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=0[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://mirrors.aliyun.com/epel/7/SRPMS
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=0
[root@k8s-master dockerbuild]# cat epel.repo 
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://mirrors.aliyun.com/epel/7/$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://mirrors.aliyun.com/epel/7/$basearch/debug
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=0[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://mirrors.aliyun.com/epel/7/SRPMS
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=0

nmap-7.91源碼下載地址:https://nmap.org/dist/nmap-7.91.tar.bz2?,該軟件下載后和Dockerfile放置在同一個目錄下

三、

第一版dockers build

FROM  centos_vim:latest 
COPY  CentOS-Base.repo /etc/yum.repos.d/
COPY  epel.repo /etc/yum.repos.d/
ADD  nmap-7.91.tar.bz2 /root/
RUN  cd /root/nmap-7.91/ &&yum install gcc gcc-c++ make -y && ./configure --prefix=/usr/local/nmap&&make &&make install &&make clean&& cd /root/&& rm -rf /root/nmap-7.91&&yum clean all
ENTRYPOINT [ "/usr/bin/tail", "-f", "/etc/yum.repos.d/epel.repo;" ]

build命令基本不變的:

docker build -t centos-vim-nmap:v2 .

此時,我們觀察鏡像大小,可以看到鏡像還是比較大的,大概400多M,直接用docker images也是可以印證到的:

[root@k8s-master dockerbuild]# docker  history centos-vim-nmap:v2
IMAGE          CREATED       CREATED BY                                      SIZE      COMMENT
cef198ffbf5d   8 hours ago   /bin/sh -c #(nop)  ENTRYPOINT ["/usr/bin/tai…   0B        
eba73e85c735   8 hours ago   /bin/sh -c cd /root/nmap-7.91/ &&yum install…   151MB     
4af8cec1f126   9 hours ago   /bin/sh -c #(nop) ADD file:6f98802f7e9d7e895…   52.6MB    
d63ddcc9393a   9 hours ago   /bin/sh -c #(nop) COPY file:d41ffd9b2808e586…   664B      
c075338a9174   9 hours ago   /bin/sh -c #(nop) COPY file:d7d3b8798da7098c…   2.32kB    
962cf7473955   3 years ago   /bin/sh -c #(nop)  CMD ["/bin/bash" "-D"]       0B        
<missing>      3 years ago   /bin/sh -c #(nop)  EXPOSE 22                    0B        
<missing>      3 years ago   /bin/sh -c yum -y install vim net-tools && y…   73.3MB    
<missing>      3 years ago   /bin/sh -c #(nop)  MAINTAINER by jesse (jess…   0B        
<missing>      8 years ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B        
<missing>      8 years ago   /bin/sh -c #(nop)  LABEL license=GPLv2          0B        
<missing>      8 years ago   /bin/sh -c #(nop)  LABEL vendor=CentOS          0B        
<missing>      8 years ago   /bin/sh -c #(nop)  LABEL name=CentOS Base Im…   0B        
<missing>      8 years ago   /bin/sh -c #(nop) ADD file:b3bdbca0669a03490…   195MB     
<missing>      8 years ago   /bin/sh -c #(nop)  MAINTAINER The CentOS Pro…   0B   
[root@k8s-master dockerbuild]# docker images |grep centos
centos-vim-nmap                                        v1               ba4aaefb21f0   8 hours ago     299MB
centos-vim-nmap                                        v2               cef198ffbf5d   8 hours ago     472MB
centos_vim                                             v1               69b8e7c0ec9f   28 hours ago    824MB
centos_vim                                             v                d0f1a760bf9f   28 hours ago    824MB
centos_vim                                             latest           962cf7473955   3 years ago     268MB

第二版docker build

這一版采用多階段構建,其實RUN命令是可以簡化的,不過不影響最終的容器大小,主要是COPY --from=build /usr/local/nmap /usr/local/nmap 把編譯產出物直接拷貝到下一個階段了

FROM  centos_vim:latest AS build
COPY  CentOS-Base.repo /etc/yum.repos.d/
COPY  epel.repo /etc/yum.repos.d/
ADD  nmap-7.91.tar.bz2 /root/
RUN  cd /root/nmap-7.91/ &&yum install gcc gcc-c++ make -y && ./configure --prefix=/usr/local/nmap&&make &&make install &&make clean&& cd /root/&& rm -rf /root/nmap-7.91&&yum clean all
FROM centos_vim:latest
COPY --from=build /usr/local/nmap /usr/local/nmap
ENTRYPOINT [ "/usr/bin/tail", "-f", "/etc/yum.repos.d/epel.repo;" ]

看build history可以看到明顯變小了,只有300M了

[root@k8s-master dockerbuild]# docker  history centos-vim-nmap:v1
IMAGE          CREATED       CREATED BY                                      SIZE      COMMENT
ba4aaefb21f0   8 hours ago   /bin/sh -c #(nop)  ENTRYPOINT ["/usr/bin/tai…   0B        
28424c28af89   8 hours ago   /bin/sh -c #(nop) COPY dir:c798ee1e3e91fcd7d…   31MB      
962cf7473955   3 years ago   /bin/sh -c #(nop)  CMD ["/bin/bash" "-D"]       0B        
<missing>      3 years ago   /bin/sh -c #(nop)  EXPOSE 22                    0B        
<missing>      3 years ago   /bin/sh -c yum -y install vim net-tools && y…   73.3MB    
<missing>      3 years ago   /bin/sh -c #(nop)  MAINTAINER by jesse (jess…   0B        
<missing>      8 years ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B        
<missing>      8 years ago   /bin/sh -c #(nop)  LABEL license=GPLv2          0B        
<missing>      8 years ago   /bin/sh -c #(nop)  LABEL vendor=CentOS          0B        
<missing>      8 years ago   /bin/sh -c #(nop)  LABEL name=CentOS Base Im…   0B        
<missing>      8 years ago   /bin/sh -c #(nop) ADD file:b3bdbca0669a03490…   195MB     
<missing>      8 years ago   /bin/sh -c #(nop)  MAINTAINER The CentOS Pro…   0B  

docker build的錯誤示范

也就是把RUN命令拆開,不做任何清理,那么這個鏡像會多大呢?

FROM  centos_vim:latest
COPY  CentOS-Base.repo /etc/yum.repos.d/
COPY  epel.repo /etc/yum.repos.d/
ADD  nmap-7.91.tar.bz2 /root/
RUN  cd /root/nmap-7.91/
WORKDIR /root/nmap-7.91/
RUN yum install gcc gcc-c++ make -y && ./configure --prefix=/usr/local/nmap&&make &&make install
ENTRYPOINT [ "/usr/bin/tail", "-f", "/etc/yum.repos.d/epel.repo;" ]

build命令:

docker build -t centos-vim-nmap:v3 .

build history 查看鏡像大小,預估為800多M

[root@k8s-master dockerbuild]# docker  history centos-vim-nmap:v3
IMAGE          CREATED          CREATED BY                                      SIZE      COMMENT
7bd9da6a6834   24 seconds ago   /bin/sh -c #(nop)  ENTRYPOINT ["/usr/bin/tai…   0B        
5638397f6bee   24 seconds ago   /bin/sh -c yum install gcc gcc-c++ make -y &…   491MB     
cc92fafc4d7f   2 minutes ago    /bin/sh -c #(nop) WORKDIR /root/nmap-7.91       0B        
ae1d0b5fc823   4 minutes ago    /bin/sh -c cd /root/nmap-7.91/                  0B        
4af8cec1f126   9 hours ago      /bin/sh -c #(nop) ADD file:6f98802f7e9d7e895…   52.6MB    
d63ddcc9393a   9 hours ago      /bin/sh -c #(nop) COPY file:d41ffd9b2808e586…   664B      
c075338a9174   9 hours ago      /bin/sh -c #(nop) COPY file:d7d3b8798da7098c…   2.32kB    
962cf7473955   3 years ago      /bin/sh -c #(nop)  CMD ["/bin/bash" "-D"]       0B        
<missing>      3 years ago      /bin/sh -c #(nop)  EXPOSE 22                    0B        
<missing>      3 years ago      /bin/sh -c yum -y install vim net-tools && y…   73.3MB    
<missing>      3 years ago      /bin/sh -c #(nop)  MAINTAINER by jesse (jess…   0B        
<missing>      8 years ago      /bin/sh -c #(nop)  CMD ["/bin/bash"]            0B        
<missing>      8 years ago      /bin/sh -c #(nop)  LABEL license=GPLv2          0B        
<missing>      8 years ago      /bin/sh -c #(nop)  LABEL vendor=CentOS          0B        
<missing>      8 years ago      /bin/sh -c #(nop)  LABEL name=CentOS Base Im…   0B        
<missing>      8 years ago      /bin/sh -c #(nop) ADD file:b3bdbca0669a03490…   195MB     
<missing>      8 years ago      /bin/sh -c #(nop)  MAINTAINER The CentOS Pro…   0B  
[root@k8s-master dockerbuild]# docker images |grep centos
centos-vim-nmap                                        v3               7bd9da6a6834   2 minutes ago   811MB
centos-vim-nmap                                        v1               ba4aaefb21f0   8 hours ago     299MB
centos-vim-nmap                                        v2               cef198ffbf5d   8 hours ago     472MB
centos_vim                                             v1               69b8e7c0ec9f   28 hours ago    824MB
centos_vim                                             v                d0f1a760bf9f   28 hours ago    824MB
centos_vim                                             latest           962cf7473955   3 years ago     268MB

可以發現,如果不做任何清理,RUN命令拆分開后,build的鏡像是和直接commit鏡像基本一致的

三、

nmap的功能測試

1、

docker? run 鏡像

docker run -itd --name=centos centos-vim-nmap:v1 /bin/bash

2、

直接運行nmap

[root@k8s-master dockerbuild]# docker exec -it centos /usr/local/nmap/bin/nmap 182.61.244.181
Starting Nmap 7.91 ( https://nmap.org ) at 2025-07-19 13:24 UTC
Nmap scan report for 182.61.244.181
Host is up (0.0096s latency).
Not shown: 997 filtered ports
PORT      STATE SERVICE
80/tcp    open  http
443/tcp   open  https
32768/tcp open  filenet-tmsNmap done: 1 IP address (1 host up) scanned in 4.87 seconds
[root@k8s-master ~]# docker exec -it centos /usr/local/nmap/bin/nmap -iL /root/ip.txt -sS 
Starting Nmap 7.91 ( https://nmap.org ) at 2025-07-19 13:27 UTC
Nmap scan report for 192.168.123.15
Host is up (0.0000040s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
5432/tcp open  postgresqlNmap done: 1 IP address (1 host up) scanned in 6.71 seconds

可以看到,nmap是從容器內向外掃描,數據鏈路會多一層,這些需要特別注意噢

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/915434.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/915434.shtml
英文地址,請注明出處:http://en.pswp.cn/news/915434.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于單片機公交車報站系統/報站器

傳送門 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目速選一覽表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目功能速覽??????? 概述 公交車自動報站系統利用單片機作為核心控制器&#xff0c;結合GPS/北斗定位模塊、語音存…

Oracle 體系結構學習

1 認識Oracle后臺進程Oracle數據庫后臺進程是Oracle數據庫管理系統&#xff08;DBMS&#xff09;的核心組件&#xff0c;它們在后臺運行&#xff0c;負責數據庫的各種管理和維護任務。主要包括以下幾種&#xff1a;SMON (System Monitor)SMON負責數據庫的恢復操作&#xff0c;如…

構建一種安全的老式測試儀,用于具有限流燈泡,模擬儀表和可變輸出的交流設備

這個復古電路和電源測試儀的想法來自我需要一個簡單&#xff0c;安全&#xff0c;時尚的工具來測試和控制工作臺上的線路供電設備。商業解決方案要么太笨重&#xff0c;太昂貴&#xff0c;要么缺乏我喜歡的觸覺和模擬魅力。所以我決定自己造一個。這個測試儀的核心是一個老式的…

Redis5:Redis的Java客戶端——Jedis與SpringDataRedis詳解

目錄 1、Jedis客戶端 1.1使用過程 2、SpringDataRedis 2.1 SpingDataRedis介紹 2.2SpringDataRedis快速入門 2.3RedisTemplate的RedisSerializer 2.3.1RedisTemplate中JDK序列化局限性 2.3.2方式一&#xff1a;改變RedisTemplate的序列化方式 2.3.3RedisTemplate存儲一…

零基礎 “入坑” Java--- 十三、再談類和接口

文章目錄一、Object類1.獲取對象信息2.對象比較&#xff1a;equals方法二、再談接口1.比較相關接口2.Cloneable接口和深拷貝三、內部類1.匿名內部類2.實例內部類3.靜態內部類4.局部內部類在之前的學習中&#xff0c;我們已經了解了有關類以及接口的知識&#xff0c;在本章節中&…

Spring Boot 一個注解搞定「加密 + 解密 + 簽名 + 驗簽」

Spring Boot 一個注解搞定「加密 解密 簽名 驗簽」本文基于 Spring Boot 3.x&#xff0c;通過一個自定義注解 AOP&#xff0c;一行注解即可給任何 Controller 方法加上 請求解密 → 驗簽 → 響應加密 → 加簽 的完整鏈路&#xff0c;并可直接拷貝到生產環境使用。一、最終效…

《計算機網絡》實驗報告二 IP協議分析

目 錄 1、實驗目的 2、實驗環境 3、實驗內容 3.1 tcpdump 基本用法 3.2 wireshark基本用法 3.3 利用tcpdump抓包&#xff0c;wireshark分析包 4、實驗結果與分析 4.1 tcpdump命令的基本用法 4.2 wireshark的基本用法 4.3 利用tcpdump抓包&#xff0c;wireshark分析包…

k8s學習記錄(三):Pod基礎-Node選擇

一、前言 在上一篇文章中我們學習了Pod的一些基本的知識&#xff0c;今天我們將繼續學習Pod。 二、K8S如何選擇節點來運行Pod 我們知道在一個K8S集群中&#xff0c;會有多個工作節點&#xff08;Worker Node&#xff09;&#xff0c;那么k8s會選擇那個node呢&#xff1f;接下…

3天功能開發→3小時:通義靈碼2.0+DEEPSEEK實測報告,單元測試生成準確率92%的秘密

活動鏈接&#xff1a;https://developer.aliyun.com/topic/lingma-aideveloper?spma2c6h.29979852.J_9593490300.2.49b8110eeymlF8 前言 隨著人工智能技術的迅猛發展&#xff0c;AI 賦能編程成為了必然趨勢。通義靈碼應運而生&#xff0c;它是阿里巴巴集團在人工智能與編程領…

【小沐學GIS】基于Rust繪制三維數字地球Earth(Rust、OpenGL、GIS)

&#x1f37a;三維數字地球GIS系列相關文章如下&#x1f37a;&#xff1a;1【小沐學GIS】基于C繪制三維數字地球Earth&#xff08;OpenGL、glfw、glut&#xff09;第一期2【小沐學GIS】基于C繪制三維數字地球Earth&#xff08;OpenGL、glfw、glut&#xff09;第二期3【小沐學GI…

ARM 學習筆記(三)

參考文獻&#xff1a;《ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition》《ARM Cortex-A (ARMv7-A) Series Programmer’s Guide》1、內存類型 ARMv7-A 處理器中&#xff0c;將 Memory 定義為幾種類型&#xff08;Memory Type&#xff09;&#xff1a; Strong…

Flask 框架(一):核心特性與基礎配置

目錄 一、為什么選擇 Flask&#xff1f; 二、Flask 核心概念與初始化 2.1 程序實例初始化 2.2 運行配置&#xff1a;app.run () 參數詳解 2.3 應用配置&#xff1a;三種參數設置方式 1. 字典直接配置&#xff08;簡單臨時場景&#xff09; 2. 配置文件導入&#xff08;生…

社交圈子系統開源社交源碼 / 小程序+H5+APP 多端互通的底層技術分析

伴隨社交產品向“圈子化”、“內容驅動”發展方向演進&#xff0c;打造一套支持小程序、H5、APP 互通的社交圈子系統&#xff0c;已經成為構建垂直社區的基礎架構能力要求。本文圍繞一套典型的多端社交興趣平臺&#xff08;即友貓社區平臺&#xff09;的設計實踐&#xff0c;對…

gitlab-runner配置問題記錄

引言 筆者曾通過2種方式部署過 gitlab-runner&#xff0c;在 gitlab 中使用這個 runner 拉起 ci job 的過程中或多或少遇到些問題&#xff0c;主要都是 job 中無法訪問宿主機的docker 等組件。本篇文檔主要記錄 gitlab-runner 安裝及相關配置。 二進制部署 gitlab-runner 部署 …

每日面試題10:令牌桶

令牌桶算法&#xff1a;優雅的流量控制藝術在現代分布式系統中&#xff0c;流量控制如同交通信號燈般重要——它既不能讓請求"堵死"系統&#xff0c;也不能放任流量"橫沖直撞"。令牌桶算法&#xff08;Token Bucket Algorithm&#xff09;正是這樣一種精妙…

【java】消息推送

文章目錄Java網頁消息推送解決方案 短輪詢、長輪詢、SSE、Websocket

STM32 | 有源蜂鳴器響,無源蜂鳴器播音樂

目錄 Overview 有源蜂鳴器 無源蜂鳴器 有源蜂鳴器控制 GPIO配置 控制程序 無源蜂鳴器控制 反轉GPIO控制 GPIO配置 控制接口 PWM控制 GPIO配置 控制函數 改變頻率播音樂 原理 1. 頻率決定音調 2. 占空比決定音量 GPIO初始化 結構體定義和音符頻率表 播放接口 …

第十四章 gin基礎

文章目錄Gin快速搭建一個web服務Gin數據交互JSON串內容規范Gin使用結構體返回數據給前端Gin配置POST類型的路由Gin獲取GET請求參數Gin獲取POST請求參數-form-data類型Gin獲取POST請求參數-JSON類型Gin獲取參數綁定至結構體Gin快速搭建一個web服務 下載包 \\新建一個文件&…

Baumer工業相機堡盟工業相機如何通過YoloV8的深度學習模型實現PCB的缺陷檢測(C#代碼,UI界面版)

Baumer工業相機堡盟工業相機如何通過YoloV8的深度學習模型實現PCB的缺陷檢測&#xff08;C#代碼&#xff0c;UI界面版&#xff09;工業相機使用YoloV8模型實現PCB的缺陷檢測工業相機實現YoloV8模型實現PCB的缺陷檢測的技術背景在相機SDK中獲取圖像轉換圖像的代碼分析工業相機圖…

【Vivado那些事兒】AMD-XILINX 7系列比特流加密

前提&#xff1a;加密有風險&#xff0c;操作需謹慎前言在許多項目中&#xff0c;經過漫長的等待&#xff0c;我們的 FPGA 設計終于可以投入現場部署了。前期的資金的投入及知識產權的保護&#xff0c;我們需要對現場部署的 FPGA 進行比特流保護以防止逆向工程和未經授權的重復…