nc [-hlnruz][-g网关...][-G指向器数目][-i延迟秒数][-o输出文件][-p通信端口] [-s来源位址][-v...][-w超时秒数][主机名称][通信端口...]
创新互联主营曲江网站建设的网络公司,主营网站建设方案,APP应用开发,曲江h5成都微信小程序搭建,曲江网站营销推广欢迎曲江等地区企业咨询
原文链接:
微信公众号:入门小站
Linux中nc命令是一个功能强大的网络工具,全称是netcat。
语法:
nc [-hlnruz][-g网关...][-G指向器数目][-i延迟秒数][-o输出文件][-p通信端口][-s来源位址][-v...][-w超时秒数][主机名称][通信端口...]
参数说明:
-g网关 设置路由器跃程通信网关,最丢哦可设置8个。
-G指向器数目 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i延迟秒数 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o输出文件 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p通信端口 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s来源位址 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w超时秒数 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
实例:
1、TCP端口扫描
# nc -v -z -w2 127.0.0.1 1-100
Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!
Connection to 127.0.0.1 53 port [tcp/domain] succeeded!
Connection to 127.0.0.1 80 port [tcp/http] succeeded!
...
nc: connect to 127.0.0.1 port 100 (tcp) failed: Connection refused
2、从192.168.1.2拷贝文件到192.168.1.3
首先在接收端192.168.1.3上: nc -l 1234 test.txt
然后在发送端192.168.1.2上: nc 192.168.1.3 test.txt
注意:先运行接收端,指定一个端口为1234,文件为test.txt,再执行发送端,并且发送端必须存在同名的文件test.txt
3、传输目录
从server1(192.168.16.233)拷贝nginx目录内容到server2(192.168.48.47)上。需要先在server2上,用nc激活监听,
server2上运行:# nc -l 1234 | tar xzv-
server1上运行:# tar czv- nginx | nc 192.168.48.47 1234
4、简单聊天工具
在192.168.1.2上: nc -l 1234
在192.168.1.3上: nc 192.168.1.2 1234
这样,双方就可以相互交流了。使用ctrl+C(或D)退出
linux centos7 测试端口的连通性, 分别测试TCP端口与UDP端口
安装nc命令
一、nc命令检测端口的用法
1 这个需要Linux服务器里边支持nc命令,检查NC 是否安装
2 安装nc
3 探测端口
错误信息如下
百度了半天没一个结果, google了一下就有结果了, 经测试成功.
4 原因分析:
-z参数原为扫描目标port是否打开, TCP三次握手成功则ok
但CentOS7新版的nc命令已取消了-z, 需输入重定向 /dev/null 才能成功
5 探测 udp: 通过 nc -h 可以看出,只需要加个 -u 即可。
更多高级应用参考:
场景一:了解系统开放的端口,和正在使用的端口,在各种情况下都会有所帮助。
比如:如果你的服务器正在运行着 Nginx,那么其端口应该为80或者443,可以检查一下。再比如你可以检查一下 SMTP、SSH或者其他服务用的是哪个端口。当有新的服务需要开放端口的时候,你需要知道目前已经被占用的,都有哪些端口。
此外,可以检查一下是否有开放的可用于入侵检测的端口。
Linux 中有多种检查端口的方法,本文将介绍两种。
使用 lsof 检查当前系统开放的端口
不管你是直接登录的系统,还是使用 ssh 连接的,都可以使用 lsof 命令来检查端口:
该命令用于查找用户使用的文件和进程。上述命令中的选项,包括:
但是,这也会展示许多计算机并没有监听的其他端口。
我们可以通过管道将此输出传输到 grep,并匹配模式 “LISTEN”,如下所示:
这样就只显示计算机正在监听的,以及正在运行的服务器所占用的端口。
使用 netcat 命令检查远程服务器上的端口
nc(Netcat) 是一个命令行实用程序,使用TCP和UDP协议在网络计算机之间读取和写入数据。
以下是nc命令的语法:
这个工具有一个很实用的 -z 选项,它会让 nc 命令扫描正在监听的守护进程,但是不会向端口发送任何数据。
将其与 -v 选项结合,启动详细信息,会有详细信息的输出。
losf与nc的不同点:
lsof命令简介
lsof 命令用于显示 Linux 系统当前已打开的所有文件列表。查看进程或系统打开的文件会给调试带来极大的帮助。下面简单地介绍 lsof 常使用的功能。
lsof (list open files)命令用于查看你进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP),还可以用于找回/恢复被删除的文件。lsof 命令需要访问核心内存和各种文件,所以需要具备 root 超级管理员权限的用户才能执行此命令。
linux的nc命令,NetCat,在网络工具中有“瑞士军刀”美誉“,是解决这个问题的工具。 nc命令安装: yum install nc
以上是看来一些文章的总结分享内容,欢迎补充讨论。
用yum进行安装,若安装旧版本的可能会有些命令参数无法正常使用
nc -z -v -n 192.168.137.2 1-100 扫描192.168.137.2地址1-100的端口号
可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp
z 参数告诉netcat使用0 IO,连接成功后立即关闭连接,不进行数据交换
v 参数指使用冗余选项
n 参数告诉netcat不要使用DNS反向查询IP地址的域名
nc -v 192.168.137.2 22
连接该地址开放的22端口,并且打印运行在这个端口上服务的banner信息
现有两台服务器:192.168.137.2和192.168.137.10,分别命名为A和B
使A和B可以互相聊天
A nc -n -l -u -p 1000
B nc -n -u 192.168.137.2 1000
-u参数调整为udp
-l 表示在服务器端启用监听模式
-n 不做域名解析
-p 指定监听的端口
这时A和B两台服务器便可在命令行进行聊天
使A和B之间相互传输单个文件
A nc -l 2000 file.txt 在A中开一个2000端口并进行监听,将写入的内容放到本地命名为file.txt
B nc 192.168.137.2 2000 file.txt 将B中file.txt传送到Aip的2000端口
在A与B之间互传文件夹
在A中/root/下创建ceshi目录,并在ceshi下创建test.txt
A tar -cvf - ceshi |nc -l 1000
B nc 192.168.137.2 1000 |tar -xvf -
这时发现在B中已经有了A传送过去的ceshi目录
=======================================================================
A:192.168.0.131(接收方) B:192.168.0.10(发送方)
本次打算用3333端口传送数据,在操作前先确保两台服务器的防火墙不会禁止3333端口
先在A上操作:进入要接收数据的目录下
while true
do
nc -l 3333|tar -xvf -
done
这时在看该机器3333端口已打开
再去B上操作:进入要传送的目录下
tar -cvf - 文件/目录名 |nc 192.168.0.131 3333
这时两台机器间便开始传送数据