0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Netcat命令建立和测试TCP和UDP连接

CHANBAEK 来源:myfreax 作者:myfreax 2022-12-12 17:39 次阅读

Netcat或nc是一个命令行程序,它使用TCP或UDP协议通过网络连接读取和写入数据。

它是网络和系统管理员中最强大的工具之一,被视为网络工具的瑞士军刀。

Netcat是跨平台的,可用于Linux,macOS,Windows和BSD。您可以使用Netcat调试和监视网络连接,扫描打开的端口,传输数据,作为代理等等。

Netcat软件包已预安装在macOS和流行的Linux发行版,如Ubuntu,Debian,CentOS,Fedora等。

Netcat命令的最基本语法形式是nc [options] host porthost可以是u远程主机的域名,主机名或者是IP地址。port是端口。

在Ubuntu,您可以使用netcatnc。它们都是Netcat的openBSD版本的符号链接。

默认情况下,Netcat将尝试建立与指定主机的TCP连接。如果要建立UDP连接,请使用-u选项。

nc host port
nc -u host port

端口扫描

在大多数情况下,对于复杂的端口扫描,Nmap是比Netcat更好的工具。

但扫描端口也是Netcat最常见的用途之一。您可以扫描单个端口或端口范围。例如要扫描范围为20-80的端口,请运行命令nc -z -v 10.10.8.8 20-80

nc命令的-z选项将不会不向其发送任何数据,而仅扫描开放的端口,如果你需要更多相信的信息请添加-v选项。

如果只是想打印开放端口的行,则可以使用grep命令过滤结果,在每一行输出的记录中succeeded表示可以成功连接的端口。

nc命令默认仅扫描TCP端口,如果你需要扫描UDP端口,只需将-u选项添加到nc命令。

nc -z -v 10.10.8.8 20-80
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
nc -z -v -u 10.10.8.8 20-80
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused
nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused
...
nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused
Connection to 10.10.8.8 80 port [tcp/http] succeeded!

您也可以使用Netcat查找服务器软件及其版本。例如,如果您在默认的SSH端口22上向服务器发送EXIT命令,输出将包含SSH服务的版本号。

echo "EXIT" | nc 10.10.8.8 22
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4
Protocol mismatch.

Netcat 发送文件

通过创建基本的客户端/服务器模型,可以使用Netcat将数据从一台主机传输到另一台主机。

使用-l选项运行nc命令在接收的主机监听指定端口,然后在另一台远程主机建立TCP连接并且此主机发送文件。

请在接收端的计算机,运行命令nc -l 5555 > file_name,它将打开端口5555并接收来自远程计算机的数据,然后将接收的数据重定向到文件file_name

要在发送端的计算机建立与接收端计算机的TCP连接,请运行命令nc receiving.host.com 5555 < file_name

当两个计算机之间的连接建立时,命令将会开始发送file_name的文件内容到接收端的主机。

nc -l 5555 > file_name #run on receivce of computer
nc receiving.host.com 5555 < file_name #run on send of computer

Netcat 发送目录

如果要递归发送目录数据,可以使用tar命令在发送端的计算机创建归档文件,然后在接收端的计算机提取存档文件。

在接收端的计算机运行命令nc -l 5555 | tar xzvf -设置Netcat监听端口5555并接收数据。

然后将接收到的数据通过管道传递到tar命令,tar命令的xzvf选项表示提取存档.tar.gz文件。

在发送端的计算机运行命令tar czvf - /path/to/dir | nc receiving.host.com 5555,建立与接收端计算机的连接,然后发送由tar命令创建存档文件数据。

您可以在两端观察传输进度。完成后,键入CTRL+C关闭连接。

nc -l 5555 | tar xzvf - #run on receivce of computer
tar czvf - /path/to/dir | nc receiving.host.com 5555 #run on send of computer

创建聊天服务器

在两个或多个主机之间创建在线聊天的过程与传输文件时相同。

首先在第一台主机运行命令nc -l 5555设置Netcat监听5555端口,在第二台主机上,运行命令nc first.host.com 5555连接到第一台主机的5555端口。

现在,如果您键入一条消息并按ENTER,它将同时显示在两台主机上。要关闭连接,请键入CTRL+C

nc -l 5555 #run on receivce of computer
nc first.host.com 5555 #run on send of computer

Netcat HTTP请求

尽管有许多更好的HTTP请求工具,例如curl,您也可以使用Netcat将各种请求发送到远程计算机。

例如,要从OpenBSD网站检索Netcat手册页,请运行以下命令。

命令在终端将会打印HTTP header和HTML代码的完整响应。

printf "GET /nc.1 HTTP/1.1\\r\\nHost: man.openbsd.org\\r\\n\\r\\n" | nc man.openbsd.org 80

结论

在本教程中,您学习如何使用Netcat命令建立和测试TCP和UDP连接。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1272

    浏览量

    78301
  • UDP
    UDP
    +关注

    关注

    0

    文章

    311

    浏览量

    33621
  • 命令行
    +关注

    关注

    0

    文章

    75

    浏览量

    10344
收藏 人收藏

    评论

    相关推荐

    通信必备知识!TCPUDP协议介绍及使用

    TCPUDP是两个最常用的通讯协议。TCP是面向连接的协议,需要在收发数据前与对方建立可靠的连接
    的头像 发表于 03-15 08:19 1019次阅读
    通信必备知识!<b class='flag-5'>TCP</b>与<b class='flag-5'>UDP</b>协议介绍及使用

    【Nanopi2试用体验】跟着小狂玩nanopi2项目篇之主控TCP环境搭建

    下边的命令如果出现下面的图片,证明连接成功测试一下通信通信成功,然后反向测试一下,2、TCP服务器搭建先查看nanopi2的ip地址然后输入
    发表于 04-29 12:55

    求助关于TCP/UDP传输的问题

    本帖最后由 思想的小鱼 于 2016-5-20 10:47 编辑 楼主完成了UDPTCP传输的模块,但目的是实现UDP传输和接收命令后,远程
    发表于 05-20 10:43

    如何在Pegasus Wi-Fi IoT智能家居套件上完成UDP服务端实验

    两者之间就会建立连接一条TCP连接,此时你在其中一个终端上输入字符,敲回车就会发送到另一个终端中;UDP服务端模式:
    发表于 08-03 10:30

    如何在Pegasus Wi-Fi IoT智能家居套件上完成UDP客户端实验

    两条命令,它们两者之间就会建立连接一条TCP连接,此时你在其中一个终端上输入字符,敲回车就会发送到另一个终端中;
    发表于 08-03 10:33

    TCP&UDP测试软件

    TCP&UDP测试软件,用于物联网模块 如WIFI模块的数据测试
    发表于 12-14 15:18 6次下载

    TCP如何与UDP命令连接详细指南说明

    本文档的主要内容详细介绍的是TCP如何与UDP命令连接详细指南说明。
    发表于 02-28 08:00 6次下载
    <b class='flag-5'>TCP</b>如何与<b class='flag-5'>UDP</b><b class='flag-5'>命令</b><b class='flag-5'>连接</b>详细指南说明

    TCP, ISO- on- TCP, UDP连接

    TSEND“ & „TRCV “ 发送和接收数据(TCP 和ISO - on- TCP)„TUSEND“ & „TURCV“ 发送和接收数据(UDP) 自动连接管理的通讯块
    的头像 发表于 06-12 15:11 4453次阅读
    <b class='flag-5'>TCP</b>, ISO- on- <b class='flag-5'>TCP</b>, <b class='flag-5'>UDP</b><b class='flag-5'>连接</b>

    tcpudp协议的异同

    UDP 校验和则是包含 UDP 首部和数据在内的校验结果。 TCP协议 TCP协议基于网络层的 IP 协议提供的是有连接、可靠服务,是基于
    的头像 发表于 11-12 14:45 3645次阅读
    <b class='flag-5'>tcp</b>和<b class='flag-5'>udp</b>协议的异同

    UDPTCP的区别

    在上一则文章中,对 TCP 的**三次握手建立连接**和**四次挥手释放连接**进行了详细地阐述,本节教程针对于 TCP 的其他内容进行讲解
    的头像 发表于 01-20 17:05 1237次阅读
    <b class='flag-5'>UDP</b>和<b class='flag-5'>TCP</b>的区别

    TCP连接建立与中止

    常重要的 。 TCP 连接建立可以简单地称为三次握手,而连接的中止则可以称为四次挥手。 建立连接
    的头像 发表于 10-08 16:52 459次阅读

    TCPUDP的区别

    是可靠传输,使用流量控制和拥塞控制;UDP是不可靠传输 TCP首部最小20字节,最大60字节;UDP首部仅8字节。 2.ISO七层模型及相关协议 物理层:建立、维护、断开物理
    的头像 发表于 11-09 09:35 638次阅读
    <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b>的区别

    TCPUDP的基本区别

    TCPUDP基本区别 基于连接与无连接 TCP要求系统资源较多,UDP较少;
    的头像 发表于 11-13 15:27 547次阅读
    <b class='flag-5'>TCP</b>与<b class='flag-5'>UDP</b>的基本区别

    UDPTCP的主要区别 UDP能否像TCP一样实现可靠传输?

    据包的传输不进行确认和重传,而TCP是一种面向连接的协议,通过确认和重传来实现可靠的数据传输。 首先,UDP连接的特点使得它在传输时的开销较小。U
    的头像 发表于 01-22 16:10 188次阅读

    udp是什么意思 简述TCPUDP的区别和联系

    中的两个基本协议。然而,TCPUDP之间存在一些重要的区别和联系。 首先,TCP是一种面向连接的协议,而UDP是无
    的头像 发表于 02-02 16:33 331次阅读