nc / netcat
基本语法(Synopsis)
nc [OPTIONS] HOST PORT
nc -l [OPTIONS] [DESTINATION] [PORT]nc(netcat)直接建立 TCP 或 UDP 连接,适合测试端口、检查明文协议和临时收发数据。本机是 OpenBSD netcat 实现。
常用测试
nc -vz -w 3 example.com 443 # TCP 端口是否可连接
nc -vz -w 3 example.com 22 80 443 # 测试多个 TCP 端口
nc -4 -vz -w 3 example.com 443 # 强制 IPv4
nc -6 -vz -w 3 example.com 443 # 强制 IPv6
nc -vzu -w 3 1.1.1.1 53 # UDP 探测,仅作线索TCP 成功通常表示握手已完成;Connection refused 常表示目标可达但没有服务监听,超时则继续检查路由、防火墙或安全组。
检查明文 HTTP
printf 'HEAD / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n' |
nc -N example.com 80HTTPS 需要 TLS,优先使用 curl;排查 TLS 握手时使用 openssl s_client -connect example.com:443 -servername example.com。
仅在本机临时监听
终端一:
nc -lv 127.0.0.1 9000终端二:
nc 127.0.0.1 9000Danger
nc没有加密、身份认证或访问控制。临时监听默认绑定到明确的本机地址;不要暴露到公网,也不要用它传输密码、令牌或私密文件。
常用选项
| 选项 | 含义 |
|---|---|
-l | 监听连接。 |
-z | 扫描模式,不发送应用数据。 |
-v | 显示连接详情。 |
-w SECONDS | 设置连接或 I/O 超时。 |
-u | 使用 UDP;默认使用 TCP。 |
-4 / -6 | 强制 IPv4 / IPv6。 |
-N | 标准输入结束后关闭网络写方向。 |
UDP 结果不能等同于 TCP
UDP 没有握手;没有收到错误并不证明服务一定存在。应结合协议查询、服务日志或 tcpdump 判断。