news 2026/9/7 16:53:24

Netcat跨机通信实战:文件传输、端口探测与避坑手册

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Netcat跨机通信实战:文件传输、端口探测与避坑手册

开篇先说明一件事:我这里说的 NC,是指 Netcat,Linux/Windows 圈子里公认的“网络瑞士军刀”,不是硬件设计里那个 NC(Not Connected,未连接引脚),也不是三菱数控系统那套 NC Explorer。搜索资料的时候这两个名字特别容易撞车,我一开始就吃过这个亏,后面会专门展开讲。如果你刚好需要在一台机器和另一台机器之间快速传个文件、探测一下端口通不通、或者临时搭一个最简 TCP/UDP 服务做联调,Netcat 是最直接的工具,没有之一。这篇文章是我把整个跨机通信实验过程完整复盘后整理的笔记,包含环境规划、命令细节、截图内容说明和使用手册,希望能帮你少走一点弯路。

这次实验的初衷很朴素:有两台服务器不在同一个机房,中间只开了最基本的网络策略,我想验证它们之间的 TCP 连通性,并且临时传一个不大的安装包过去。当时手头没有 scp、没有 rsync,SSH 服务也没装,唯一确定可用的是系统自带的 nc。于是我把整个验证过程拆成了几个阶段,从最小化连通验证一路做到文件传输和简易服务搭建,踩了不少坑,也把每个坑的排查思路记了下来。文章适合刚接触网络调试工具的同学,也适合已经在用 NC 但想系统整理用法的人,直接对照命令抄作业就行。

1. 实验背景:为什么我要折腾 NC 跨机通信

1.1 这个实验到底解决什么问题

跨机通信听起来很玄乎,实际上就是两台计算机通过网络互相发数据。最常见的场景无非三种:验证端口是否可达、传输文件或文本、临时搭一个收数据的服务端。大多数时候我们第一反应是 SSH、SCP、或者写个 Python 脚本用 socket 发数据,但这些方案都有前提条件:SSH 需要装服务端、开端口、配密钥;SCP 依赖 SSH;Python 脚本虽然灵活,但目标机器上不一定有 Python 环境,或者版本不一致导致脚本跑不起来。

Netcat 不一样。它就是个单一可执行文件,依赖极低,几乎所有 Linux 发行版都内置了,Windows 上也可以用一个几百 KB 的 exe 解决问题。我这次实验的核心目标就是:在两台“裸得不能再裸”的机器之间,用最少的依赖完成连通性验证和文件传输。整个过程不涉及任何第三方服务,只要 IP 和端口是通的,Netcat 就能干活。

1.2 为什么选择 Netcat 而不是 SSH 和 Python

有人会问:SSH 不香吗?SCP 不香吗?说实话,在条件允许的情况下,SSH 和 SCP 当然更香,它们有加密、有认证、有断点续传,甚至还能跑 rsync。但真实环境往往没有这么理想。我这次遇到的情况是:目标机器是 CentOS 6.5,还是一个最小化安装,连 SSH 服务端都没装,手头也没有系统镜像光盘,只有一台能联网的跳板机可以下载少量依赖包。这种情况下,装一个 SSH 服务端要处理 RPM 依赖链,可能要拉十几个包进来,而 Netcat 只需要一个 RPM 就能搞定。

还有一种方案是 Python one-liner,比如python -m SimpleHTTPServer起一个 HTTP 服务来传文件。这个思路本身没问题,我也经常这么干。但问题在于:如果目标机器的 Python 版本太老、缺少模块,或者出于安全策略禁止了 Python 执行,这条路就走不通了。Netcat 没有任何脚本引擎依赖,它就是一个编译好的二进制文件,扔到机器上就能跑。

1.3 实验环境规划

这次实验我用了两台机器:

  • 机器 A(服务端/监听端):IP 192.168.1.10,CentOS 6.5,最小化安装,已有 nc 命令
  • 机器 B(客户端/连接端):IP 192.168.1.20,Ubuntu 20.04,自带 netcat-openbsd

网络环境是同一个局域网段,中间没有额外的防火墙设备,但两台机器自身的 iptables 都是开着的。这个细节很重要,因为后面的坑基本都出在防火墙和端口绑定上。

我把实验分成了五个阶段:

  1. 最基础的 TCP 端口连通性验证;
  2. 文本消息的实时发送和接收;
  3. 单个文件的传输;
  4. 整个目录的传输(用 tar 配合管道);
  5. 端口探测与批量连通检查。

每个阶段都有明确的成功标准和失败时的大致原因,下面逐一复盘。

2. Netcat 基础认知与安装部署手册

2.1 Netcat 到底是什么?免费吗?

Netcat 最早由 Hobbit 在 1995 年发布,设计目标就是一个“通过网络读写数据的全能工具”。它的工作模式极其简单:从一个端读数据,发送到另一个端,反向也一样。也就是说,你可以把 Netcat 看作一根“网络管道”,把本地文件、标准输入、标准输出和网络端口串在一起。

关于“Netcat 收费吗”这个问题,网上问的人很多。答案是:Netcat 本身完全开源免费,无论是 GNU 版、OpenBSD 版还是 Nmap 项目维护的 Ncat,都是免费软件。那些让你付费的所谓“Netcat 收费版”,基本是商业网络工具套了层壳,或者是一些 Windows 图形化包装程序,和真正的 Netcat 不是一回事。你直接在 Linux 发行版仓库里装的nc命令,就是免费的。

2.2 三套主流版本怎么选

Netcat 的版本有点混乱,不同发行版默认装的实现不一样,参数也不完全兼容。我建议你优先搞清楚自己用的是哪一套:

实现常见包名特点常见系统
GNU Netcatnc / netcat-traditional最经典,参数中规中矩,支持-e(部分编译时禁用)CentOS 6、Debian 老版本
OpenBSD Netcatnetcat-openbsd支持-k持续监听、-N发送完关闭连接、-6IPv6Ubuntu 默认、macOS 自带
Ncatnmap 附带功能最丰富,支持 SSL、代理、--send-only--recv-onlyNmap 安装包内附带

这里最容易踩的坑是:同一条命令行在 Ubuntu 上跑得通,在 CentOS 6 上就跑不通。比如nc -l 8888,OpenBSD 版可以直接用,但传统 GNU 版必须写成nc -l -p 8888,否则会报参数错误。所以使用前先跑一下nc -h看帮助信息,确认你的版本支持哪些参数,这能省掉很多排查时间。

2.3 各系统安装实操(含 CentOS 6.5 离线安装)

联网环境安装 Netcat 非常简单:

# Debian/Ubuntu apt-get install -y netcat-openbsd # CentOS/RHEL 7+ yum install -y nc # CentOS/RHEL 8+/Fedora dnf install -y nc # macOS(自带但可以升级) brew install netcat

但我这次实验中的 CentOS 6.5 是内网环境,没法直接 yum。离线安装的思路是:在一台能联网的同版本机器上把 RPM 包下载下来,再拷贝进去。

# 在能联网的 CentOS 6.5 机器上执行(仅下载不安装) yum install --downloadonly --downloaddir=/tmp/nc_pkg nc # 生成依赖列表,确认是否还有依赖包 rpm -qpR /tmp/nc_pkg/nc-*.rpm

如果机器是 x86_64 架构,通常只需要一个nc-1.84-24.el6.x86_64.rpm这种命名的包,依赖比较少,直接安装即可:

rpm -ivh nc-*.rpm # 验证安装结果 nc -h

如果rpm -ivh提示缺少 glibc 依赖,那说明系统基础库本身就不完整,这种属于极端情况,一般最小化安装不会遇到。另一个可行的替代方案是拷贝一个静态编译的 Netcat 二进制文件过去,比如 Nmap 官方的 ncat 静态版本,解压就能用,连 RPM 都不用装。

3. 跨机通信实验全流程复盘

3.1 第一步:TCP 连通性验证

实验的第一步不是急着传文件,而是先验证两台机器之间 TCP 能不能通。我在机器 A 上开启监听:

# 机器 A nc -l -p 8888

这个命令的意思是:监听本机 8888 端口,默认使用 TCP 协议。注意,-l是监听模式,传统 GNU 版必须配-p指定端口;如果是在 Ubuntu 的 OpenBSD 版上,可以直接nc -l 8888

然后在机器 B 上发起连接:

# 机器 B nc -v -w 3 192.168.1.10 8888

如果连接成功,机器 B 的终端会输出类似Connection to 192.168.1.10 8888 port [tcp/*] succeeded!的信息,并且两边都会进入交互状态——你在任意一边输入文字,回车后另一边就能看到。如果连接失败,会出现connection refusedtimed out两种典型报错,前者说明端口没监听或防火墙直接拒绝,后者说明包根本没到达对端,大概率是网段不通或安全组策略拦截。

这一步成功以后,我做的第一件事就是在两边各截一张图:机器 A 显示监听态,机器 B 显示连接成功。这两张图是整个实验的基础证据,后续所有操作的前提都是这一步通过。

3.2 第二步:文本消息互发

TCP 连接建立后,最简单的验证是直接传文本。机器 A 保持监听状态,机器 B 连接后输入一句话,比如hello from B,机器 A 的终端会立刻显示出来。反过来也一样,机器 A 输入的文字会显示在机器 B 的终端上。

这里要解释一下原理:Netcat 把标准输入和标准输出直接映射到了网络 socket 上。你在键盘上敲的每个字符,经过系统标准输入进入 Netcat,Netcat 把它打包成 TCP 数据段发出去;对端 Netcat 收到后写到自己的标准输出,也就是终端屏幕。这就是“网络管道”的含义。

这个阶段有一个容易被忽略的点:默认情况下,Netcat 传输数据是没有加密的,局域网内测试问题不大,但在不可信网络上传输敏感内容属于裸奔。可以用 Wireshark 抓包看一下,数据段里直接就是明文。所以我在笔记里专门标注:Netcat 只适合做调试和临时传输,不能替代 SSH 这类加密通道。

3.3 第三步:文件传输实验

文本互通没问题后,我开始尝试传文件。这是 Netcat 用得最多的场景之一。接收端将网络数据导入文件,发送端把文件内容导向网络连接。

先启动接收端(机器 A):

# 机器 A nc -l -p 8888 > received_file.tar.gz

然后启动发送端(机器 B):

# 机器 B nc -w 3 192.168.1.10 8888 < local_file.tar.gz

注意发送端这里我加了-w 3,意思是当标准输入读取到 EOF 后最多等待 3 秒就关闭连接。这个参数很关键,不加的话,接收端的 Netcat 会一直等连接关闭,可能卡在那里不退出。

传输完成后,接收端需要校验文件的完整性:

# 分别核对两端文件哈希 md5sum original_file.tar.gz received_file.tar.gz sha1sum original_file.tar.gz received_file.tar.gz

我实测传输几十 MB 的文件,在局域网内速度非常快,基本是磁盘读写速度的上限。哈希一致说明文件没有损坏。这里要特别提醒:如果传的是二进制文件(安装包、压缩包、图片),不要在中间环节做任何换行符转换;Netcat 本身不转换,但如果你用的是某些文本传输工具(比如老的 FTP 的 ASCII 模式),二进制文件就可能损坏。Netcat 没有这个坑,传进去什么就是什么。

3.4 第四步:目录实时传输(tar 管道组合)

单个文件传输成功以后,我想验证更进一步的需求:传整个目录,并保持文件权限和目录结构。Netcat 本身不具备打包能力,但它可以和 tar 配合:tar 把目录打包成字节流,Netcat 把字节流通过网络发出去,接收端再用 tar 解包。

接收端(机器 A)先跑:

# 机器 A nc -l -p 8888 | tar xzvf -

发送端(机器 B)执行:

# 机器 B tar czvf - /path/to/dir | nc -w 3 192.168.1.10 8888

注意管道方向:tar czvf -的最后一个-表示输出到标准输出(而不是文件),管道把它交给ncnc发到网络;接收端nc从网络收到数据后,管道传给tar xzvf --表示从标准输入读取并解压。

这个组合非常实用,相当于在没有 rsync 的情况下快速同步一个目录。我在实测中传了一个包含几百个文件的网站目录,解压后文件权限基本保留,只有属主和属组因为两边用户体系不一致而不同(比如发送端是 root,接收端当前用户是普通用户)。如果需要严格保持属主属组,接收端必须用 root 身份来解压,并且发送端 tar 要加--same-owner参数。

3.5 第五步:端口扫描与批量探测

除了监听和传输,Netcat 还可以做端口探测。这个功能用来验证某台机器开了哪些端口,或者某一批端口是否可达。命令格式是:

# 扫描 192.168.1.10 的 20-80 端口 nc -zv -w 1 192.168.1.10 20-80

这里-z是 zero-I/O 模式,只发送连接请求,不传输实际数据;-v是详细输出,会打印每个端口的结果;-w 1是每个端口等待 1 秒超时。扫出来的结果会显示哪些端口是 open 的,哪些是 closed 的。

批量扫描多个主机也可以,直接列 IP 地址:

nc -zv -w 1 192.168.1.10 192.168.1.20 192.168.1.30

这个功能在排查网络策略时很高效。比如我怀疑某个端口被防火墙拦了,用nc -zv一测就知道结果,比 telnet 好用(telnet 在部分系统上还没安装)。但要注意,频繁扫描大量端口可能触发安全设备的告警,生产环境慎用,建议只在自己可控的测试网段操作。

4. 使用手册:常用场景直达区与截图区说明

4.1 高频命令速查表

为了方便复盘和后续查阅,我把这次实验中验证过的命令整理成了速查表。每条命令都标注了适用版本,避免换台机器就踩参数坑。

场景命令(监听端 A)命令(连接端 B)说明
验证 TCP 端口nc -l -p 8888nc -v -w 3 192.168.1.10 8888连接成功后可直接输入文本
验证 UDP 端口nc -u -l -p 8888nc -u -v -w 3 192.168.1.10 8888UDP 无连接,需要两边配合
传文件nc -l -p 8888 > filenc -w 3 192.168.1.10 8888 < file适合单文件,接收端后启动
传目录nc -l -p 8888 | tar xzvf -tar czvf - dir | nc -w 3 192.168.1.10 8888目录会打包成字节流
简易聊天nc -l -p 8888nc 192.168.1.10 8888双向实时文本,仅限调试
端口扫描nc -zv -w 1 192.168.1.20 20-80无需监听端批量探测端口状态
收 HTTP 响应printf 'GET / HTTP/1.1\r\nHost: a.com\r\n\r\n' | nc -w 5 a.com 80无需监听端手动构造 HTTP 请求

提醒一下:表里的 IP 和端口只是示例,实际使用时换成你自己的地址。UDP 测试比 TCP 麻烦一点,因为 UDP 本身不保证送达,两边接收输出可能不直观,建议用-v辅助确认。

4.2 截图区应该记录什么

原笔记里的“截图区”对应的是实验过程中的关键界面记录。虽然这里没法直接放图,但我把每张截图应该拍什么、为什么拍这张列出来,你实际操作时可以对照着留档,方便以后回溯问题。

第一张:监听端开启成功时的终端界面。记录点包括:完整的nc命令、监听端口、没有任何报错输出。这张图能证明监听动作已经生效。

第二张:连接端发起连接成功后的界面。记录点包括:Connection to ... succeeded字样、连接耗时、命令执行前的状态。这张图是验证 TCP 连通性的核心证据。

第三张:双向文本互发的场景。左边窗口显示从客户端收到的消息,右边窗口显示从服务端收到的回复。这张图直观说明数据传输是双向的。

第四张:文件传输前后的文件列表和哈希校验结果。左边是原始文件的ls -lmd5sum,右边是接收文件的同样信息,两张并列才能证明文件内容一致。

第五张:端口扫描结果。记录点包括:探针命令、每个端口的 open/closed 状态、命令执行总时长。这张图能帮你快速发现问题端口。

截图区不是摆设。我后面排查问题时,最常翻的就是这些截图,尤其是文件哈希对比那张,一眼就能定位是不是传输损坏。建议你也养成为每个实验保存截图的习惯。

4.3 NC 与系统工具的搭配技巧

Netcat 单独用已经很方便了,但和系统工具组合起来才是完全体。我在这次实验里还验证了几个组合,分享出来供参考:

nc+pv实现传输进度显示。Netcat 传大文件时没有进度条,看起来很着急。用pv管道包一层就能看到速度和进度:

# 接收端 nc -l -p 8888 | pv -b > received_file.iso # 发送端 pv local_file.iso | nc -w 3 192.168.1.10 8888

pv没有的话,CentOS 可以通过yum install -y pv安装,Ubuntu 是apt-get install -y pv

nc+dd实现裸盘镜像传输。如果要做磁盘备份或恢复,Netcat 可以把分区数据直接导到另一台机器:

# 接收端(目标机) nc -l -p 8888 | dd of=/dev/sdb bs=4M status=progress # 发送端(源机) dd if=/dev/sda bs=4M | nc -w 3 192.168.1.20 8888

这个操作非常猛,相当于整个磁盘对拷,一定要确认接收端的设备名写对了,不然会把别人的盘覆盖掉。我在笔记里用红色标注:这个命令建议只在测试环境跑,生产环境除非明确知道后果,否则别碰。

nc+sleep实现简单的延迟探测。用sleep 1模拟慢速连接,可以测试对端在慢速场景下的行为:

# 监听端 nc -l -p 8888 | while read line; do echo "[$(date +%s)] $line"; done # 连接端 for i in $(seq 1 5); do echo "message $i"; sleep 1; done | nc 192.168.1.10 8888

这组合的作用是验证对端服务是否能处理慢速到达的数据,排查数据积压和缓冲问题。

5. 踩坑记录与排查思路

5.1 连接超时:先查防火墙再查网段

实验过程中最典型的问题是连接端报timed out,不是connection refused。这两个报错有本质区别:refused说明数据包到达了目标机器,但目标端口没人监听或直接被内核拒绝;timed out说明数据包根本没到达目标,或者到达后没有响应。

我遇到的情况是:在机器 A 上启动了nc -l -p 8888,机器 B 执行nc -v -w 3 192.168.1.10 8888,等了 3 秒报timed out。排查步骤:

# 1. 在机器 A 上确认端口是否在监听 netstat -tlnp | grep 8888 ss -tlnp | grep 8888 # 2. 确认防火墙是否放行了端口 iptables -L -n | grep 8888

结果发现机器 A 的 iptables 有一条策略,默认 INPUT 链 DROP,只放行了 22 端口,8888 端口被挡了。解法是加入放行规则:

iptables -I INPUT -p tcp --dport 8888 -j ACCEPT

这个坑的教训是:先确认监听状态,再确认防火墙,最后确认网段路由。顺序不要反,否则容易被表象带偏。如果目标机器有自己的安全组策略,还需要在云控制台或机房防火墙同步放行。

5.2 监听端口被占用:netstat 和 ss 双确认

有一个坑也和端口有关:我启动接收端时,提示端口被占用。原因是一个之前实验的 Netcat 进程没有正常退出,还占着 8888 端口。排查命令:

# 查找占用端口的进程 netstat -tlnp | grep 8888 ss -tlnp | grep 8888 lsof -i :8888

然后 kill 掉老进程:

kill -9 <PID>

这里建议用ss而不是netstat,因为 CentOS 6 上 netstat 依赖 net-tools 包,某些最小化系统里根本没装。ss是 iproute2 自带的,基本都有。还有一点,lsof也不是默认安装的,确认有再使用。

5.3 传完文件卡死不退出:加-w超时

文件传输完成后,接收端 Netcat 经常卡在那里不退出。原因是:接收端在等待连接关闭,而发送端没有主动关闭连接。

解法是发送端加-w参数:

# 发送端,文件发完后最多等 3 秒关闭连接 nc -w 3 192.168.1.10 8888 < local_file.tar.gz

需要注意-w的时机:它不是在连接建立后立刻超时,而是当标准输入 EOF 后,等待接收端最后一次回包的最长时间。对于 OpenBSD 版本,还可以用-N参数,表示读取到 EOF 后立刻关闭连接,语义更清晰:

# Ubuntu / netcat-openbsd nc -N 192.168.1.10 8888 < local_file.tar.gz

如果用的是 GNU 版,没有-N,老老实实用-w就好。

5.4 传的文件损坏:文本模式与二进制模式要分清

有次我用 Netcat 传一个压缩包,接收端解压提示 CRC 错误。一开始以为是网络丢包,后来检查发现是命令里用了重定向方式不当:接收端用nc -l -p 8888 > received.txt没问题,但我当时是在 Windows 环境下用某种终端工具接收,它自动做了换行符转换,导致二进制文件的字节被篡改。

虽然 Netcat 本身不会转换换行符,但如果你的终端、或者中间经过的传输工具(比如某些 Windows 下的 nc.exe 包装器)做了文本处理,就会损坏文件。解决方法是:在接收端严格使用>重定向到文件,不要经过任何文本处理管道;发送端用<从文件读入,不要在中间加 cat 或 echo 之类的文本命令(除非你知道自己在做什么)。

另外,传完文件一定要校验哈希值。图片、压缩包、可执行文件、数据库备份这些内容,只要有一个字节变了,整个文件可能就废了。所以我把 md5sum/sha1sum 校验写进了实验流程的固定步骤,每次传完文件必须做。

5.5 “名字撞车”的坑:NC、ncat、nc.exe 别认错

这个坑不是网络层面的,而是工具命名层面的,但杀伤力极大。搜索 “nc 下载” 时,很容易搜到一堆同名但完全不同的软件:

  • ncat:Nmap 项目维护的 Netcat 增强版,功能更强但参数和传统 nc 不同;
  • nc.exe:Windows 上常见的 Netcat 移植版,来源庞杂,有些是流氓软件改的,下载需要谨慎;
  • NC Explorer:三菱 CNC 数控系统的文件远程浏览工具,和 Netcat 没有一毛钱关系;
  • 硬件设计领域的NC引脚:指的是 Not Connected,比如 AD 原理图设计里用 Variant 区分正常器件和 NC 器件,这里的 NC 是指不焊接/不连接的元件,属于电子设计自动化的概念。

如果对“nc”这个词不敏感,很容易搜到一堆不相干的内容,或者用一个来路不明的 nc.exe 导致安全问题。我的建议是:Linux 下直接用发行版仓库的ncnetcat-openbsd包,Windows 下优先用 Nmap 安装包自带的ncat.exe,或者使用 WSL 里的 Linux 版 Netcat,尽量别从陌生网站单独下载 exe。

5.6 监听在错误的 IP 上:默认只监听所有接口

还有一次,我在机器 A 上执行nc -l -p 8888之后,从机器 B 连接不通,但在机器 A 本机执行nc -v 127.0.0.1 8888又能通。排查半天发现,Netcat 监听时默认绑定的地址是 0.0.0.0,也就是所有接口,按理说应该没问题;但某些版本在指定了-p后行为略有差异,或者系统有 ipv6 禁用策略导致监听绑定在::而不是 IPv4 地址。

解法是显式指定监听地址:

# 监听在 IPv4 所有地址 nc -4 -l -p 8888 # 监听在指定 IP nc -l -p 8888 -s 192.168.1.10

-s参数指定源地址,-4强制 IPv4。如果你的网络环境同时有 IPv4 和 IPv6,建议都加上-4,避免监听在 IPv6 地址上导致客户端用 IPv4 连不上。

6. 常见问题速查表

把这次实验里遇到的典型问题、产生原因和解决方式整理成一个表,方便后续排查时快速定位。

现象可能原因解决方式
timed out防火墙拦截、网段不通、安全组未放行先检查iptables -L -nss -tlnp,再确认网段路由
connection refused端口没监听,或监听地址不对确认监听进程是否还活着,用ss -tlnp查监听 IP
命令报错unknown option -- p用的是 OpenBSD 版,不需要-p改为nc -l 8888,或先看nc -h
传完文件卡住发送端未关闭连接发送端加-w 3(GNU)或-N(OpenBSD)
文件损坏中间环节做了文本转换直接用重定向<>,传完做哈希校验
端口被占用之前有残留进程ss -tlnp找到 PID,kill -9
客户端连不上但本机能连监听了 IPv6 地址-4参数强制 IPv4
UDP 测试没反应UDP 无连接特性-u-v,两边同时启动才容易成功
某些 Linux 没装 nc最小化安装未包含用发行版包管理器安装,或拷贝静态编译的 ncat

排查顺序我总结成一句话:先看端口有没有监听,再看防火墙有没有放行,再看地址有没有绑定错,最后看参数有没有因版本不同而失效。按照这个顺序走,90% 的问题都能定位。

最后再分享一点我个人的体会。整个实验做下来,最大的收获不是学会了多少条 nc 命令,而是理解了“网络调试工具的本质是数据管道”这件事。Netcat 的所有用法,无论是传文件、传目录、扫端口还是搭临时服务,本质上都是把 stdin/stdout 和网络 socket 做映射,明白了这个核心概念,遇到没见过的参数组合也能自己推理出来。另外,工具版本差异带来的坑比想象中多,以后再在任何机器上使用 nc,我都会先瞄一眼nc -h,确认是 GNU、OpenBSD 还是 Ncat,避免凭记忆硬怼命令。这份笔记和速查表就是为这个目的沉淀的,希望对你也有用。

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

Windows搭建Kuikly开发环境:OpenHarmony跨平台应用实战

折腾跨平台开发这件事&#xff0c;最怕的就是环境搭到一半卡住。最近因为项目需要在OpenHarmony设备上跑一套UI&#xff0c;我在Windows平台上花时间折腾了几天Kuikly开发环境&#xff0c;从JDK到SDK再到真机调试&#xff0c;所有步骤和踩过的坑都记了一遍。如果你也想在Window…

作者头像 李华
网站建设 2026/9/7 16:50:12

RabbitMQ与图计算组合:打造实时关系传递的可靠消息链路

最近在整理项目时发现一个有意思的组合&#xff1a;RabbitMQ 和大数据图计算放到一起&#xff0c;专门解决“实时关系传递”这一类需求。单看 RabbitMQ&#xff0c;很多人第一反应是“削峰填谷”&#xff0c;给高并发请求排队&#xff1b;单看图计算&#xff0c;又容易联想到离…

作者头像 李华
网站建设 2026/9/7 16:47:53

宝可梦努力值系统:从游戏机制到工程优化的通用方法论

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

作者头像 李华
网站建设 2026/9/7 16:44:38

麒麟芯片Ping-Pong双缓冲:让数据搬运与计算并行

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

作者头像 李华
网站建设 2026/9/7 16:43:42

2026 具身智能实战:把感知行动契约写进SPEC,MonkeyCode 云端跑通

2026 具身智能实战&#xff1a;把感知行动契约写进SPEC&#xff0c;MonkeyCode 云端跑通 老刘带 6 人小队给省级农业农村厅做温室巡检调度助手。客户口头说&#xff1a;摄像头看到叶片黄了就派小车去、湿度超了就开窗、人在过道里绝对不能撞&#xff0c;高峰响应压到两秒。 上线…

作者头像 李华