Linux Nmap命令解析(Nmap指令)(功能:主机发现、ping扫描、arp扫描、端口扫描、服务版本检测、操作系统识别等)

文章目录

  • Linux Nmap 命令解析
    • 简介
    • Nmap 的核心功能
      • 主机发现
      • 端口扫描
      • 服务版本检测
      • OS 指纹识别(操作系统指纹识别)
      • 脚本扫描
    • 安装 Nmap
    • Nmap 命令结构
    • Nmap 命令文档
      • 英文
      • 中文
    • 主机发现
      • Ping 扫描
      • ARP 扫描
      • 关于`nmap -PR`(ARP Ping Scan)和`nmap -Pn`(No Ping Scan)
        • `-PR` ARP Ping Scan
        • `-Pn` No Ping Scan
        • 示例
        • 总结
    • 端口扫描
      • 常见的端口扫描类型
      • 示例:SYN 扫描
    • 服务版本检测
    • OS 指纹识别
    • 使用 Nmap 脚本引擎 (NSE)
    • 输出和报告
      • 文本输出
      • XML 输出
      • Grepable 输出
    • 高级技术
      • 防火墙绕过
      • 时间和性能
      • 脚本参数
    • 安全性和合法性
    • 结语

Linux Nmap 命令解析

简介

Nmap(Network Mapper)是一款开源的网络探测和安全审核工具。它设计用于快速扫描大型网络,但也适合对单个主机进行各种检查。Nmap 由 Gordon Lyon(又名 Fyodor)编写,并首次发布于 1997 年。

Nmap 的核心功能

主机发现

主机发现是确定哪些主机在网络上活跃并响应的过程。

端口扫描

端口扫描用于发现目标主机上开放的 TCP 和 UDP 端口。

服务版本检测

服务版本检测可以确定端口上运行的应用程序及其版本信息。

OS 指纹识别(操作系统指纹识别)

通过发送特定的数据包序列并分析响应,Nmap 能够推断出目标系统可能运行的操作系统。

操作系统指纹识别,具体参考:nmap os detection原理及golang实现

脚本扫描

Nmap 提供了一个强大的脚本引擎(NSE),可以使用特定的脚本来发现额外的网络信息,或者检测和利用漏洞。

安装 Nmap

Nmap 在大多数 Linux 发行版中都可以通过包管理器轻松安装:

# Debian/Ubuntu 系统:
sudo apt-get install nmap

# Red Hat/CentOS 系统:
sudo yum install nmap

# Fedora 系统:
sudo dnf install nmap

Nmap 命令结构

基本命令格式如下:

nmap [扫描类型...] [选项] {目标规范}

其中,“扫描类型”定义了将执行的扫描方法,“选项”可用于进一步定制扫描,而“目标规范”指定了要扫描的目标。

Nmap 命令文档

nmap -h

英文

Nmap 7.80 ( https://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
  Can pass hostnames, IP addresses, networks, etc.
  Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
  -iL <inputfilename>: Input from list of hosts/networks
  -iR <num hosts>: Choose random targets
  --exclude <host1[,host2][,host3],...>: Exclude hosts/networks
  --excludefile <exclude_file>: Exclude list from file
HOST DISCOVERY:
  -sL: List Scan - simply list targets to scan
  -sn: Ping Scan - disable port scan
  -Pn: Treat all hosts as online -- skip host discovery
  -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
  -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
  -PO[protocol list]: IP Protocol Ping
  -n/-R: Never do DNS resolution/Always resolve [default: sometimes]
  --dns-servers <serv1[,serv2],...>: Specify custom DNS servers
  --system-dns: Use OS's DNS resolver
  --traceroute: Trace hop path to each host
SCAN TECHNIQUES:
  -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
  -sU: UDP Scan
  -sN/sF/sX: TCP Null, FIN, and Xmas scans
  --scanflags <flags>: Customize TCP scan flags
  -sI <zombie host[:probeport]>: Idle scan
  -sY/sZ: SCTP INIT/COOKIE-ECHO scans
  -sO: IP protocol scan
  -b <FTP relay host>: FTP bounce scan
PORT SPECIFICATION AND SCAN ORDER:
  -p <port ranges>: Only scan specified ports
    Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  --exclude-ports <port ranges>: Exclude the specified ports from scanning
  -F: Fast mode - Scan fewer ports than the default scan
  -r: Scan ports consecutively - don't randomize
  --top-ports <number>: Scan <number> most common ports
  --port-ratio <ratio>: Scan ports more common than <ratio>
SERVICE/VERSION DETECTION:
  -sV: Probe open ports to determine service/version info
  --version-intensity <level>: Set from 0 (light) to 9 (try all probes)
  --version-light: Limit to most likely probes (intensity 2)
  --version-all: Try every single probe (intensity 9)
  --version-trace: Show detailed version scan activity (for debugging)
SCRIPT SCAN:
  -sC: equivalent to --script=default
  --script=<Lua scripts>: <Lua scripts> is a comma separated list of
           directories, script-files or script-categories
  --script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts
  --script-args-file=filename: provide NSE script args in a file
  --script-trace: Show all data sent and received
  --script-updatedb: Update the script database.
  --script-help=<Lua scripts>: Show help about scripts.
           <Lua scripts> is a comma-separated list of script-files or
           script-categories.
OS DETECTION:
  -O: Enable OS detection
  --osscan-limit: Limit OS detection to promising targets
  --osscan-guess: Guess OS more aggressively
TIMING AND PERFORMANCE:
  Options which take <time> are in seconds, or append 'ms' (milliseconds),
  's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m).
  -T<0-5>: Set timing template (higher is faster)
  --min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes
  --min-parallelism/max-parallelism <numprobes>: Probe parallelization
  --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies
      probe round trip time.
  --max-retries <tries>: Caps number of port scan probe retransmissions.
  --host-timeout <time>: Give up on target after this long
  --scan-delay/--max-scan-delay <time>: Adjust delay between probes
  --min-rate <number>: Send packets no slower than <number> per second
  --max-rate <number>: Send packets no faster than <number> per second
FIREWALL/IDS EVASION AND SPOOFING:
  -f; --mtu <val>: fragment packets (optionally w/given MTU)
  -D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys
  -S <IP_Address>: Spoof source address
  -e <iface>: Use specified interface
  -g/--source-port <portnum>: Use given port number
  --proxies <url1,[url2],...>: Relay connections through HTTP/SOCKS4 proxies
  --data <hex string>: Append a custom payload to sent packets
  --data-string <string>: Append a custom ASCII string to sent packets
  --data-length <num>: Append random data to sent packets
  --ip-options <options>: Send packets with specified ip options
  --ttl <val>: Set IP time-to-live field
  --spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address
  --badsum: Send packets with a bogus TCP/UDP/SCTP checksum
OUTPUT:
  -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3,
     and Grepable format, respectively, to the given filename.
  -oA <basename>: Output in the three major formats at once
  -v: Increase verbosity level (use -vv or more for greater effect)
  -d: Increase debugging level (use -dd or more for greater effect)
  --reason: Display the reason a port is in a particular state
  --open: Only show open (or possibly open) ports
  --packet-trace: Show all packets sent and received
  --iflist: Print host interfaces and routes (for debugging)
  --append-output: Append to rather than clobber specified output files
  --resume <filename>: Resume an aborted scan
  --stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML
  --webxml: Reference stylesheet from Nmap.Org for more portable XML
  --no-stylesheet: Prevent associating of XSL stylesheet w/XML output
MISC:
  -6: Enable IPv6 scanning
  -A: Enable OS detection, version detection, script scanning, and traceroute
  --datadir <dirname>: Specify custom Nmap data file location
  --send-eth/--send-ip: Send using raw ethernet frames or IP packets
  --privileged: Assume that the user is fully privileged
  --unprivileged: Assume the user lacks raw socket privileges
  -V: Print version number
  -h: Print this help summary page.
EXAMPLES:
  nmap -v -A scanme.nmap.org
  nmap -v -sn 192.168.0.0/16 10.0.0.0/8
  nmap -v -iR 10000 -Pn -p 80
SEE THE MAN PAGE (https://nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES

中文

Nmap 7.80 ( https://nmap.org )
用法:nmap [扫描类型] [选项] {目标指定}
目标指定:
  可以传递主机名、IP地址、网络等。
  例如:scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
  -iL <输入文件名>:从主机/网络列表中输入
  -iR <主机数>:随机选择目标
  --exclude <主机1[,主机2][,主机3],...>:排除主机/网络
  --excludefile <排除文件>:从文件中排除列表
主机发现:
  -sL:列表扫描 - 仅列出要扫描的目标
  -sn:Ping扫描 - 禁用端口扫描
  -Pn:将所有主机视为在线 - 跳过主机发现
  -PS/PA/PU/PY[portlist]:对给定端口进行TCP SYN/ACK, UDP或SCTP发现
  -PE/PP/PM:ICMP回声请求,时间戳和网络掩码请求探测
  -PO[协议列表]:IP协议Ping
  -n/-R:从不进行DNS解析/总是解析[默认:有时]
  --dns-servers <服务器1[,服务器2],...>:指定自定义DNS服务器
  --system-dns:使用操作系统的DNS解析器
  --traceroute:追踪到每个主机的跳点路径
扫描技术:
  -sS/sT/sA/sW/sM:TCP SYN/Connect()/ACK/Window/Maimon扫描
  -sU:UDP扫描
  -sN/sF/sX:TCP Null, FIN, 和 Xmas扫描
  --scanflags <标志>:自定义TCP扫描标志
  -sI <僵尸主机[:探测端口]>:空闲扫描
  -sY/sZ:SCTP INIT/COOKIE-ECHO扫描
  -sO:IP协议扫描
  -b <FTP中继主机>:FTP弹跳扫描
端口规范和扫描顺序:
  -p <端口范围>:仅扫描指定端口
    例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  --exclude-ports <端口范围>:从扫描中排除指定端口
  -F:快速模式 - 扫描的端口少于默认扫描
  -r:连续扫描端口 - 不随机化
  --top-ports <数字>:扫描最常见的<数字>个端口
  --port-ratio <比率>:扫描比<比率>更常见的端口
服务/版本检测:
  -sV:探测开放端口以确定服务/版本信息
  --version-intensity <级别>:从0(轻量)到9(尝试所有探针)设置
  --version-light:限制最可能的探针(强度2--version-all:尝试每一个探针(强度9--version-trace:显示详细的版本扫描活动(用于调试)
脚本扫描:
  -sC:相当于 --script=default
  --script=<Lua脚本><Lua脚本>是一个以逗号分隔的目录、脚本文件或脚本类别列表
  --script-args=<n1=v1,[n2=v2,...]>:向脚本提供参数
  --script-args-file=filename:在文件中提供NSE脚本参数
  --script-trace:显示发送和接收的所有数据
  --script-updatedb:更新脚本数据库。
  --script-help=<Lua脚本>:显示关于脚本的帮助。
           <Lua脚本>是一个以逗号分隔的脚本文件或脚本类别列表。
操作系统检测:
  -O:启用操作系统检测
  --osscan-limit:将操作系统检测限制为有希望的目标
  --osscan-guess:更积极地猜测操作系统
计时和性能:
  接受<time>的选项单位是秒,或者在数值后面添加'ms'(毫秒)、's'(秒)、'm'(分钟)或'h'(小时),例如30m。
  -T<0-5>:设置计时模板(数字越大速度越快)
  --min-hostgroup/max-hostgroup <size>:并行主机扫描组的大小
  --min-parallelism/max-parallelism <numprobes>:探针并行化
  --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>:指定探针往返时间。
  --max-retries <tries>:限制端口扫描探针重传的次数。
  --host-timeout <time>:在这段时间后放弃目标主机
  --scan-delay/--max-scan-delay <time>:调整探针之间的延迟
  --min-rate <number>:发送包的速度不低于每秒<number>--max-rate <number>:发送包的速度不高于每秒<number>个
防火墙/IDS规避与伪装:
  -f; --mtu <val>:分片数据包(可选择给定MTU)
  -D <decoy1,decoy2[,ME],...>:使用诱饵隐藏扫描
  -S <IP_Address>:伪造源地址
  -e <iface>:使用指定接口
  -g/--source-port <portnum>:使用指定端口号
  --proxies <url1,[url2],...>:通过HTTP/SOCKS4代理转发连接
  --data <hex string>:向发送的数据包附加自定义有效载荷
  --data-string <string>:向发送的数据包附加自定义ASCII字符串
  --data-length <num>:向发送的数据包附加随机数据
  --ip-options <options>:发送带有指定IP选项的数据包
  --ttl <val>:设置IP生存时间字段
  --spoof-mac <mac address/prefix/vendor name>:伪造您的MAC地址
  --badsum:发送带有错误的TCP/UDP/SCTP校验和的数据包
输出:
  -oN/-oX/-oS/-oG <file>:分别以普通、XML、s|<rIpt kIddi3、可搜索格式输出扫描结果到指定文件名。
  -oA <basename>:同时以三种主要格式输出
  -v:提高详细等级(使用-vv或更多获得更大效果)
  -d:提高调试等级(使用-dd或更多获得更大效果)
  --reason:显示端口处于特定状态的原因
  --open:仅显示开放的(或可能开放的)端口
  --packet-trace:显示所有发送和接收的数据包
  --iflist:打印主机接口和路由(用于调试)
  --append-output:附加到指定的输出文件而不是覆盖
  --resume <filename>:恢复中断的扫描
  --stylesheet <path/URL>:XSL样式表将XML输出转换为HTML
  --webxml:引用Nmap.Org的样式表以获得更便携的XML
  --no-stylesheet:阻止将XSL样式表与XML输出关联
杂项:
  -6:启用IPv6扫描
  -A:启用操作系统检测、版本检测、脚本扫描和路由追踪
  --datadir <dirname>:指定自定义Nmap数据文件位置
  --send-eth/--send-ip:使用原始以太网帧或IP数据包发送
  --privileged:假设用户具有完全权限
  --unprivileged:假设用户缺乏原始套接字权限
  -V:打印版本号
  -h:打印此帮助摘要页面。
示例:
  nmap -v -A scanme.nmap.org
  nmap -v -sn 192.168.0.0/16 10.0.0.0/8
  nmap -v -iR 10000 -Pn -p 80
查看手册页(https://nmap.org/book/man.html)了解更多选项和示例

主机发现

Ping 扫描

Ping 扫描用于确定哪些主机正在响应 ICMP 请求,示例如下:

nmap -sn 192.168.1.0/24

这将对 192.168.1.x 的所有地址执行 Ping 扫描,其中 x 是从 0 到 255 的任意值。

在这里插入图片描述

也可以对单个地址扫描:

nmap -sn 192.168.1.116

在这里插入图片描述

ARP 扫描

局域网中,ARP(地址解析协议)扫描通常比标准 ICMP ping 更有效,命令如下:

nmap -PR 192.168.1.0/24

在这里插入图片描述

对单个地址扫描:

nmap -PR 192.168.1.116

在这里插入图片描述

关于nmap -PR(ARP Ping Scan)和nmap -Pn(No Ping Scan)

在Nmap中,-PR-Pn 是两个不同的扫描选项,它们用于不同的场景:

-PR ARP Ping Scan

-PR 选项告诉Nmap使用ARP请求来确定本地网络上的主机是否活跃。这种方法非常适合局域网内部,因为ARP请求无法跨过路由器,所以它只对本地子网有效。当想确认本地网络(同一广播域)中某个IP地址是否被占用时,使用-PR是合适的。

如果尝试对一个响应ARP但是不响应ICMP的设备进行-PR扫描,且结果显示"Host seems down",可能是因为该设备设置了防火墙规则来忽略或阻止ARP请求,或者Nmap没有正确地发送或接收ARP回应。这种情况下,可能需要检查你的网络设置或该设备的安全配置。

-Pn No Ping Scan

-Pn 选项告诉Nmap跳过发现阶段,直接执行端口扫描等后续操作。它假定目标主机是活跃的,不会先检测主机是否在线。这个选项适用于目标主机可能屏蔽了所有类型的ping探针(包括ICMP、ARP、TCP和UDP)的情况。

当使用-Pn选项时,即使目标主机关闭了对ICMP、ARP等探针的响应,Nmap也会尝试连接目标主机的端口来判断其在线状态。这种方法适用于任何网络环境,包括本地网络和跨越路由器的远程网络。

示例
nmap -Pn 192.168.1.215

此命令将对IP地址192.168.1.215执行扫描,不管目标主机是否响应任何形式的探针。

总结

如果确定是在本地网络上,并且知道目标主机可能会响应ARP请求,则使用-PR是合理的。如果-PR报告说主机看起来已经关闭,而怀疑主机实际上是开着的并且可能只是屏蔽了ARP请求,那么你可以尝试使用-Pn来绕过主机发现阶段,直接进行端口扫描。这样,即使ARP发现失败,仍然有机会通过观察端口的响应来确定主机是否在线。

端口扫描

常见的端口扫描类型

  • -sT:TCP 连接扫描
  • -sS:SYN 扫描
  • -sU:UDP 扫描
  • -sA:ACK 扫描
  • -sN-sF-sX:NULL、FIN 和 Xmas 扫描
  • -sP:不扫描端口

示例:SYN 扫描

SYN 扫描是最流行的扫描类型,因为它快速且在网络上的隐蔽性较高:

nmap -sS 192.168.1.1

这将对 IP 地址为 192.168.1.1 的主机执行 SYN 扫描。

在这里插入图片描述

服务版本检测

使用 -sV 参数启动服务版本检测:

nmap -sV 192.168.1.1

这会对目标主机进行端口扫描,并尝试确定每个开放端口上运行的服务及其版本。

在这里插入图片描述

OS 指纹识别

OS 指纹识别可以通过 -O 参数启动:

nmap -O 192.168.1.1

这将提供关于目标主机操作系统的猜测。

在这里插入图片描述
在这里插入图片描述

使用 Nmap 脚本引擎 (NSE)

Nmap 具有广泛的脚本库,可用于进行更复杂的网络探测。运行特定的脚本,可以使用 --script 参数:

nmap --script=http-title 192.168.1.1

这将运行 http-title 脚本,该脚本会抓取 HTTP 服务的标题。

输出和报告

Nmap 支持多种输出格式,包括普通文本、XML 和 grepable 格式。

文本输出

默认情况下,Nmap 以文本形式输出到控制台。

XML 输出

XML 输出可以被许多其他工具用于进一步处理,命令如下:

nmap -oX output.xml 192.168.1.1

Grepable 输出

Grepable 格式便于使用文本处理工具如 grep 进行搜索,命令如下:

nmap -oG output.grep 192.168.1.1

高级技术

防火墙绕过

某些 Nmap 扫描技术可用于绕过防火墙,例如碎片扫描(-f)或者自定义 MTU(--mtu)。

时间和性能

调整扫描速度与准确性之间的平衡,可以使用 -T 选项,它接受从 0(最慢)到 5(最快)的值。

脚本参数

向 NSE 脚本传递参数可以使用 --script-args 选项,这样可以定制脚本的行为。

安全性和合法性

使用 Nmap 进行扫描时,必须遵守当地法律和政策。未经授权扫描他人网络或设备可能违反法律。

结语

Nmap 是网络管理员和安全专家的重要工具。它的灵活性和强大功能使其成为评估网络安全状态的理想选择。正确使用 Nmap 可以帮助识别和缓解网络安全风险。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/198153.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

接口测试工具(Jmeter)必学技巧

安装 使用JMeter的前提需要安装JDK&#xff0c;需要JDK1.7以上版本 目前在用的是JMeter5.2版本&#xff0c;大家可自行下载解压使用 运行 进入解压路径如E: \apache-jmeter-5.2\bin&#xff0c;双击jmeter.bat启动运行 启动后默认为英文版本&#xff0c;可通过Options – Choos…

web:NewsCenter

题目 打开页面显示如下 页面有个输入框&#xff0c;猜测是sql注入&#xff0c;即search为注入参数点&#xff0c;先尝试一下 返回空白显示错误 正常显示如下 是因为单引号与服务端代码中的’形成闭合&#xff0c;输入的字符串hello包裹&#xff0c;服务端代码后面多出来一个‘导…

java学习part18抽象类

Java抽象类 详解-CSDN博客 111-面向对象(高级)-抽象类与抽象方法的使用_哔哩哔哩_bilibili 1.概念 2.抽象类 抽象类不能实例化&#xff0c;可以有属性&#xff0c;也可以有方法。 方法可以实现或者只声明不实现&#xff0c;要加一个abstract abstract class A{//定义一个抽…

51单片机使用串口查看程序执行的数据

51单片机使用串口查看程序执行的数据 1.概述 这篇文章介绍利用串口输出程序执行的数据&#xff0c;辅助我们调试程序&#xff0c;提高代码定位问题的效率。 2.硬件电路原理 3.串口助手查看程序数据 输出串口数据的方式分为CPU查询方式和中断方式。他们各有优缺点&#xff0…

【CVE-2023-49103】ownCloud graphapi信息泄露漏洞(2023年11月发布)

漏洞简介 ownCloud owncloud/graphapi 0.2.x在0.2.1之前和0.3.x在0.3.1之前存在漏洞。graphapi应用程序依赖于提供URL的第三方GetPhpInfo.php库。当访问此URL时&#xff0c;会显示PHP环境的配置详细信息&#xff08;phpinfo&#xff09;。此信息包括Web服务器的所有环境变量&a…

k8s部署sonarqube

1.先决条件需要storageClass,动态制备,自动创建pv/pvc.详情参见 k8s-StoargClass的使用-基于nfs-CSDN博客 部署postgresql 2.创建ServiceAccount,用于权限管控. [rootmaster /zpf/test]$cat init-sc-serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata:nam…

Joint Bilateral Upsampling

Abstract 图像分析和增强任务&#xff08;例如色调映射、着色、立体深度和蒙太奇&#xff09;通常需要在像素网格上计算解决方案&#xff08;例如&#xff0c;曝光、色度、视差、标签&#xff09;。计算和内存成本通常要求在下采样图像上运行较小的解决方案。尽管通用上采样方…

【MySql】14- 实践篇(十二)-grant权限/分区表/自增Id用完怎么办

文章目录 1.grant之后要跟着flush privileges吗&#xff1f;1.1 全局权限1.2 db 权限1.3 表权限和列权限1.4 flush privileges 使用场景 2. 要不要使用分区表?2.1 分区表是什么?2.2 分区表的引擎层行为2.3 分区策略2.4 分区表的 server 层行为2.5 分区表的应用场景 3. 自增Id…

代码随想录算法训练营第四十九天【动态规划part10】 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

121. 买卖股票的最佳时机 题目链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 求解思路&#xff1a; 动规五部曲 确定dp数组及其下标含义&#xff1a;使用一个二维数组dp[i][2]&#xff0c;dp[i][0]代表持有股票的最大收益&…

解决electron-builder打包不成功只能输出tgz文件的问题

现象&#xff1a; 对应项目里配的指令&#xff1a; 但就是死活不成功&#xff0c;只能输出tgz压缩文件。 最后一咬牙下载了官方的electron-quick-start拿来试试&#xff0c;结果还是一样。 一时间没想法了。 后来突然脑袋灵光一闪&#xff0c;去他妈的直接npx 执行看看&…

xxl-job适配postgresql数据库

xxl-job支持了mysql数据库&#xff0c;其他的数据库适配得自己弄一下&#xff0c;下面以目前最新的2.4.1为例进行说明适配postgresql数据库的过程。 获取源代码 从github或gitee获取源代码&#xff0c;目前最新版本2.4.1 xxl官网&#xff1a;分布式任务调度平台XXL-JOB 建立…

docker镜像分层、仓库、容器数据卷与常用软件安装

一、镜像分层 1、镜像概念&#xff1a; 镜像是一种轻量级、可执行的独立软件包&#xff0c;它包含运行某个软件所需的所有内容&#xff0c;将应用程序和配置依赖打包好行成一个可交付的运行环境&#xff0c;这个打包好的运行环境就是image镜像文件。 2、镜像分层&#xff1a…

在VMcentos7上用docker部署SELKS(IDS系统)

基本安装所需环境&#xff1a; 2核&#xff08;至少&#xff09;10 GB 可用 RAM&#xff08;经测试&#xff0c;4GB也能运行但会卡&#xff09;至少 30 GB 可用磁盘空间&#xff08;实际磁盘占用情况主要取决于规则数量和网络流量&#xff09;。建议使用 200GB SSD 级别。git,…

量子计算软件平台

目录 1.量子语言 2.量子软件开发工具 3.量子云计算平台 1.量子语言 量子语言是一种基于量子计算机的语言&#xff0c;用于描述和实现量子算法。与经典计算机语言不同&#xff0c;量子语言需要考虑量子力学的特殊规则和算法的量子化。其中&#xff0c;最常用的量子语言是量子程…

HCIP --- MGRE综合实验

一、总体规划 二、AR1配置思路及步骤 一、接口地址分配及缺省路由&#xff1a; The device is running! AR1&#xff1a; <Huawei>sy Enter system view, return user view with CtrlZ. [Huawei]sy r1 [r1]interface s4/0/0 [r1-Serial4/0/0]ip address 15.0.0.1 255.0…

React 之 airbnb - 项目实战

一、开发前言 1. 规范 2. 创建项目 node -v > 18.0.0 npm -v > 8.6.0 create-react-app star-airbnb 3. 项目基本配置 配置jsconfig.json {"compilerOptions": {"target": "es5","module": "esnext","ba…

C语言——求π的近似值

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> #include<math.h> int main() {int s;double n,t,pi;t1;pi0;n1.0;s1;while (fabs(t)>1e-6){pipit; nn2; s-s; ts/n;}pipi*4;printf("pi%lf\n",pi);return 0; }这里是求小数点后6位——1e-6&#…

灰度发布专题---3、Nginx+Lua灰度发布

上一章已经讲解了配置文件灰度发布、应用版本灰度发布、API网关灰度发布实现&#xff0c;但如果用户这时候在代理层如何做灰度发布呢&#xff1f; 代理层灰度发布分析 用户无论访问应用服务还是静态页&#xff0c;都要经过Nginx代理层&#xff0c;我们可以在Nginx这里做灰度发…

哈希表——闭散列表

该哈希表实现是闭散列实现法。 闭散列表&#xff1a; 闭散列&#xff1a;也叫开放定址法&#xff0c;当发生哈希冲突时&#xff0c;如果哈希表未被装满&#xff0c;说明在哈希表中必然还有空位置&#xff0c;那么可以把key存放到冲突位置中的“下一个” 空位置中去。 那如何寻…

【傻瓜级JS-DLL-WINCC-PLC交互】3.JS-DLL进行交互

思路 JS-DLL-WINCC-PLC之间进行交互&#xff0c;思路&#xff0c;先用Visual Studio创建一个C#的DLL控件&#xff0c;然后这个控件里面嵌入浏览器组件&#xff0c;实现JS与DLL通信&#xff0c;然后DLL放入到WINCC里面的图形编辑器中&#xff0c;实现DLL与WINCC的通信。然后PLC与…