Linux命令:nc

nc 命令

基本介绍

nc 命令是 netcat 的缩写,是一个功能强大的网络工具,被称为"瑞士军刀"。它可以用于创建 TCP/UDP 连接、端口扫描、数据传输、网络调试等多种用途。它是 Linux 系统中常用的网络工具之一。

资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a

语法

复制代码
nc [选项] [主机] [端口]

常用选项

  • -4:只使用 IPv4
  • -6:只使用 IPv6
  • -U, --unixsock:使用 Unix 域套接字
  • -l, --listen:监听模式
  • -p, --source-port <端口>:指定源端口
  • -s, --source <地址>:指定源地址
  • -c, --sh-exec <命令>:执行指定命令
  • -e, --exec <命令>:执行指定命令(与 -c 类似)
  • -b, --broadcast:允许广播
  • -D, --debug:启用调试模式
  • -d, --delay <毫秒>:设置发送延迟
  • -h, --help:显示帮助信息
  • -i, --interval <秒>:设置间隔时间
  • -k, --keep-open:保持连接打开
  • -n, --nodns:不进行 DNS 解析
  • -o, --output <文件>:将数据输出到文件
  • -P, --proxy-auth <认证>:代理认证
  • -q, --quit <秒>:指定超时时间后退出
  • -r, --randomize:随机选择端口
  • -S, --sndbuf <大小>:设置发送缓冲区大小
  • -T, --tos <类型>:设置服务类型
  • -t, --telnet:启用 Telnet 选项
  • -u, --udp:使用 UDP 协议
  • -v, --verbose:详细模式,显示更多信息
  • -w, --wait <秒>:设置连接超时时间
  • -X, --proxy-protocol <协议>:指定代理协议
  • -x, --proxy <主机:端口>:指定代理服务器
  • -z, --zero:零数据模式(用于端口扫描)

使用示例

1. 连接到远程主机

bash 复制代码
nc example.com 80

2. 监听模式

bash 复制代码
nc -l 8080

3. 端口扫描

bash 复制代码
nc -zv example.com 1-100

4. UDP 端口扫描

bash 复制代码
nc -zvu example.com 1-100

5. 文件传输(发送)

bash 复制代码
nc -l 8080 > received_file

6. 文件传输(接收)

bash 复制代码
nc example.com 8080 < file_to_send

7. 执行命令

bash 复制代码
nc -lp 8080 -e /bin/bash

8. 简单聊天服务器

bash 复制代码
nc -lp 8080

9. 使用 UDP 协议

bash 复制代码
nc -u example.com 53

10. 指定源端口

bash 复制代码
nc -p 1234 example.com 80

11. 不进行 DNS 解析

bash 复制代码
nc -n example.com 80

12. 设置超时时间

bash 复制代码
nc -w 5 example.com 80

输出格式说明

连接输出

复制代码
HTTP/1.1 200 OK
Date: Mon, 24 Apr 2026 12:00:00 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Type: text/html
...

端口扫描输出

复制代码
Connection to example.com 22 port [tcp/ssh] succeeded!
Connection to example.com 80 port [tcp/http] succeeded!

监听模式输出

复制代码
listening on [any] 8080 ...
connect to [192.168.1.100] from [192.168.1.101] 54321

相关命令

  • telnet:传统的远程登录工具
  • ssh:安全的远程登录工具
  • curl:功能强大的网络工具
  • wget:文件下载工具
  • nmap:专业的端口扫描工具
  • socat:多功能的网络工具
  • netstat:显示网络状态

注意事项

  • nc 命令不需要 root 权限,但某些操作可能需要
  • nc 命令功能强大,可以用于网络调试、端口扫描、文件传输等多种用途
  • nc 命令支持 TCP 和 UDP 协议
  • nc 命令可以用于创建简单的服务器和客户端
  • nc 命令的 -e 选项可以执行命令,但需要谨慎使用
  • 可以使用 man nc 查看完整的命令手册

总结

nc 命令是 Linux 系统中功能强大的网络工具,被称为"瑞士军刀"。通过 nc 命令,用户可以创建 TCP/UDP 连接、进行端口扫描、传输文件、创建简单的网络服务等,对于网络调试和系统管理非常有帮助。

相关推荐
2402_882893864 小时前
Linux 进程概念详解(下)—— 进程调度、环境变量与虚拟地址空间
linux·进程·虚拟地址空间
虚无的纽扣4 小时前
【Linux】揭开文件系统神秘的面纱:第四讲:可执行文件的组装车间
linux·运维·服务器
YMWM_4 小时前
ubuntu系统字体缩放配置
linux·运维·ubuntu
hiahiahia1234 小时前
Agent Tool 执行失败怎么办
服务器·前端
Amelio_Ming4 小时前
rk3588 pcie驱动分析之二 (pcie设备树节点分析)
linux·嵌入式硬件
数据中心论坛(公众号同名)4 小时前
补水管道巨响抖动|数据中心水箱振动故障拆解(下篇)
大数据·运维
yichengerp4 小时前
电子元件ERP软件哪个好用?易呈云ERP与主流方案对比解析
大数据·运维·人工智能·云计算·制造
励志师code5 小时前
Ansible 批量运维实战:从连通性巡检到灰度变更的完整闭环
运维·ansible
zbyyd5 小时前
Linux字符设备驱动:LED驱动实战开发
linux·单片机·arm·驱动
曦夜日长5 小时前
Git系统篇,Git远程仓库(三):本地仓库与远程仓库的交互
linux·服务器·网络·git·交互