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 连接、进行端口扫描、传输文件、创建简单的网络服务等,对于网络调试和系统管理非常有帮助。