Linux瑞士军刀—netccat

netccat是一个通过TCP/UDP在网络中进行读写数据工具(命令),被称为“瑞士军刀”,主要用于调试领域、传输领域甚至黑客攻击领域。利用该工具,可以将网络中一端的数据完整的发送至另一台主机终端显示或存储,常见的应用为文件传输、与好友即时通信、传输流媒体或者作为用来验证服务器的独立的客户端。

一、Netcat语法

首先使用nc -h 命令查看功能说明:

nc [-46DdhklnrStUuvzC] [-i 间隔] [-p 源端口]
[-s 源IP地址] [-T 服务类型] [-w 超时时间] [-X 代理协议]
[-x 代理地址[:端口]] [主机名] [端口[s]]
123

关键参数介绍:

  • -4 强制nc只能使用IPv4地址。
  • -6 强制nc只能使用IPv6地址。
  • -h 打印nc帮助信息。
  • -i 间隔 在发送和接收之间指定一个间隔时间。同时会引起连接多个接口时的延迟。
  • -z Zero-I/O mode [used for scanning] netcat使用0-IO,连接成功后立即关闭连接,不进行数据交换
  • -v 指详细输出
  • -n 告诉netcat 不要使用DNS反向查询IP地址的域名

二、Netcat功能举例

nc(netcat)可以打开TCP连接,发送UDP包,监听任意的TCP和UDP端口,扫描端口,处理IPv4和IPv6。nc脚本跟telnet(1)不一样,它把错误信息输出到标准错误输出上而不是输出到标准输出上。

1. 简单聊天

在Server端:

nc -lp 8888
1

此时默认是TCP连接,在本机Localhost监听8888端口。 在Client端:

nc -nv 127.0.0.1 8888
1

测试效果如下: 客户端通过TCP连接到服务器8888端口,发送hello,服务器对其回复ok,之后即可互相通信。

//陈硕简单用法:
//本地服务器监听
nc -l 1234
//客户端
nc localhost 1234
12345

使用ctrl+C(或D)退出

当然也可以通过telnet命令进行测试: telnet localhost 8888

2)如果是测试局域网两台主机的通信时,客户端连接远程Remote主机的IP地址即可。 命令则为:

nc -nv 113.54.154.215 8888
1

3) 为了观察一个TCP的标准连接,也就是三次握手四次挥手的内部实现,我们通过tcpdump进行监测一个完整的连接。 当连接本地服务器回环地址时,使用的是lo网卡。

sudo tcpdump -i lo -n tcp port 8888
1

当连接为远程服务器时,使用的是此时Ubuntu 16.04环境下的ens33网卡。

sudo tcpdump -i ens33 -n tcp port 8888
1

可以清晰的看到三次握手。

2. 端口扫描

端口扫描经常被系统管理员和黑客用来发现在一些机器上开放的端口,帮助他们识别系统中的漏洞。 nc可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp. 假定服务器此时开启了端口8888。 客户端对IP地址为113.54.154.215的8880附近相邻10个端口进行TCP扫描。 客户端命令为:

nc -nvz 113.54.154.215 8880-8890
1

测试如下: 2)若采用UDP扫描,则服务器和客户端的命令修改如下: 添加-u选项

服务器:
nc -ulp 8888
客户端:
nc -unvz 113.54.154.215 8880-8890
1234

3. 文件传输

大部分时间中,我们都在试图通过网络或者其他工具传输文件。有很多种方法,比如FTP,SCP,TFTP,NFS等等,但是当你只是需要临时或者一次传输文件,真的值得浪费时间来安装配置一个软件到你的机器上嘛。假设你想要传一个文件test.cpp 从A 到B。A或者B都可以作为服务器或者客户端,

让A作为服务器,B为客户端。将服务器A上的文件下载到客户端B上。 Server:

nc -lp 8888 

Client:

nc -n 113.54.154.215 8888  > test.cc
1

这里我们创建了一个服务器在A上并且重定向netcat的输入为文件test.cpp,那么当任何成功连接到该端口,netcat会发送file的文件内容。 在客户端我们重定向输出到test.cc,故意是两个文件的后缀不同,此时查看文件的大小属性。 此时客户端将网络接收到的数据重定向为test.cc,如果数据不需要则将其重定向到/dev/null即可。 2)当然我们可以将客户端的文件发送给服务器,此时将test.cc上传给服务器。 Server

nc -lp 8888 > test.cc
1

Client

nc -n 113.54.154.215 8888  

此时服务器收到的文件重定向到test.cc,我们可以查看此时服务器的文件: 总之,结合管道的用法,使得nc的功能更加强大,比如可以将一个目录压缩为一个文件,之后通过管道与nc结合,传输该目录。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/221794.html<

(0)
管理的头像管理
上一篇2025-04-15 04:59
下一篇 2025-04-15 05:01

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注