nc,全名叫 netcat,它可以用来完成很多的网络功能,譬如端口扫描、建立TCP/UDP连接,数据传输、网络调试等等,因此,它也常被称为网络工具的 瑞士军刀 。
nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port] [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol] [-x proxy_address[:port]] [hostname] [port[s]]
常用选项:
-4:只使用 IPv4 地址
-6:只使用 IPv6 地址
-l:启动本地监听
-n:不使用 DNS 解析
-p:指定源端口
-s:指定源 IP 地址
-u:使用 UDP,默认是 TCP
-v:显示详细信息
-w:设定超时时间(只适合用在 Client 端)
-d:禁止从标准输入读取数据,也就是客户端输入数据不会发送到服务端
-k:让服务端保持连接,不断开
一、只服务端使用nc
备注:这种方式只能发送一次数据,不能互相发送
1、udp发送接收数据,udp本质不区分客户端服务端
客户端
echo 111 > /dev/udp/192.168.43.102/1234
服务端
nc -u -l 192.168.43.102 1234 #-u代表使用udp 协议 ip为服务器的ip -l 表示监听这个ip端口;
nc -u -l 1234 #ip也可以不写
2、tcp发送接收数据,要先开服务端的nc
客户端
echo 111 > /dev/tcp/192.168.43.102/1234
服务端
nc -l 192.168.43.102 1234 # nc默认使用tcp协议
或
nc -l 1234
二、两端都用nc
备注:这种方式可以多次互相发送数据
1、udp
客户端
nc -u 192.168.43.102 1234
服务端
nc -u -l 1234
2、tcp
客户端
nc 192.168.43.102 1234
服务端
nc -l 1234
更详细的参考:
nc 网络命令,通过TCP和UDP在两台主机间建立连接传递消息、文件
linux环境下nc命令的应用