首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >别只会 telnet!nc 命令才是网络调试天花板,附完整案例

别只会 telnet!nc 命令才是网络调试天花板,附完整案例

作者头像
ICT系统集成阿祥
发布2026-07-07 19:16:42
发布2026-07-07 19:16:42
20
举报
文章被收录于专栏:数通数通

一、引言

nc(Netcat)被誉为网络瑞士军刀,轻量命令行网络工具,支持 TCP/UDP 连接、端口扫描、测速、文件传输、简易聊天、后门调试等,绝大多数 Linux 自带,无自带可通过包管理器安装。

二、安装 Netcat

1. Debian / Ubuntu 系列(apt)

直接装 netcat 会提示虚拟包冲突,二选一安装:

代码语言:javascript
复制
# 推荐 OpenBSD 版本,功能更规范
sudo apt install netcat-openbsd
# 传统版(老旧,部分参数行为不同)
sudo apt install netcat-traditional

报错说明:netcat 只是虚拟包,系统需要你手动指定具体实现包。

2. CentOS / RHEL / Rocky(yum/dnf)

代码语言:javascript
复制
sudo dnf install nc
# 或旧版yum
sudo yum install nc

3. Alpine Linux

代码语言:javascript
复制
apk add netcat-openbsd

三、核心常用参数速览

代码语言:javascript
复制
监听模式,充当服务端

四、实用实操案例

案例1:端口扫描(探测端口开放)

语法:

代码语言:javascript
复制
nc -vz 目标IP 起始端口-结束端口

示例:扫描 192.168.0.102 1~100 端口,打印详细日志

代码语言:javascript
复制
nc -vz 192.168.0.102 1-100

成功开放端口输出示例:

代码语言:javascript
复制
Connection to 192.168.0.102 port 53 [tcp/domain] succeeded!
Connection to 192.168.0.102 port 80 [tcp/http] succeeded!

补充:扫描UDP端口加 -u

代码语言:javascript
复制
nc -vzu 192.168.0.102 53

案例2:两台机器测速

原理:服务端监听并丢弃数据,客户端生成大量零字节流传输,dd统计速度。

  1. 服务端(接收端)
代码语言:javascript
复制
nc -l 9999 > /dev/null
  1. 客户端(发送端)
代码语言:javascript
复制
# 发送100MB数据测试
dd if=/dev/zero bs=1M count=100 | nc 192.168.0.102 9999

输出示例(自动显示传输速率):

代码语言:javascript
复制
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.001434 s, 73.1 GB/s

案例3:文件互传

场景A:A机器发文件 → B机器接收保存
  1. 接收端B(服务端,先执行)
代码语言:javascript
复制
nc -l 9999 > receive.tar.gz
  1. 发送端A
代码语言:javascript
复制
nc 192.168.0.102 9999 < send.tar.gz
场景B:目录打包传输(配合tar)

适合传整个文件夹: 接收端:

代码语言:javascript
复制
nc -l 9999 | tar -zxvf -

发送端:

代码语言:javascript
复制
tar -zcf - /data/test | nc 192.168.0.102 9999

案例4:简易双向聊天

  1. 机器B监听:
代码语言:javascript
复制
nc -l 9999
  1. 机器A连接:
代码语言:javascript
复制
nc 192.168.0.102 9999

两端输入文字会实时互通。

案例5:手动测试TCP服务连通性

替代 telnet 探测端口是否通:

代码语言:javascript
复制
nc -v 192.168.0.102 80
# 可直接发HTTP请求测试网站
GET / HTTP/1.1
Host: 192.168.0.102

五、补充注意事项

  1. 防火墙放行端口 使用 -l 监听端口时,需在防火墙开放对应端口(如9999),否则外部无法连接;
  2. UDP扫描局限性 UDP无握手,nc -zu 扫描准确率低,生产端口探测推荐 nmap;
  3. 安全风险 nc监听不加权限控制可被任意连接,生产环境禁止公网开放nc监听端口,避免被利用反弹shell;
  4. 两个版本差异 netcat-traditional 支持 -e 反弹shell,netcat-openbsd 默认移除 -e 参数,渗透场景需注意。

六、总结

nc 轻量无依赖,日常运维四大核心场景:

  1. 快速端口连通性探测;
  2. 内网两台机器高速传文件;
  3. 内网带宽测速;
  4. 调试TCP/UDP网络服务。 是服务器运维、网络排错必备工具。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ICT系统集成阿祥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、引言
  • 二、安装 Netcat
    • 1. Debian / Ubuntu 系列(apt)
    • 2. CentOS / RHEL / Rocky(yum/dnf)
    • 3. Alpine Linux
  • 三、核心常用参数速览
  • 四、实用实操案例
    • 案例1:端口扫描(探测端口开放)
    • 案例2:两台机器测速
    • 案例3:文件互传
      • 场景A:A机器发文件 → B机器接收保存
      • 场景B:目录打包传输(配合tar)
    • 案例4:简易双向聊天
    • 案例5:手动测试TCP服务连通性
  • 五、补充注意事项
  • 六、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档