扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
nc是linux系统的一个命令,可以用来测试编写的tcp程序,可以有效的与你编写的tcp程序交互。
成都创新互联公司一直通过网站建设和网站营销帮助企业获得更多客户资源。 以"深度挖掘,量身打造,注重实效"的一站式服务,以网站制作、成都网站制作、移动互联产品、成都全网营销推广服务为核心业务。10余年网站制作的经验,使用新网站建设技术,全新开发出的标准网站,不但价格便宜而且实用、灵活,特别适合中小公司网站制作。网站管理系统简单易用,维护方便,您可以完全操作网站资料,是中小公司快速网站建设的选择。
典型的用法:
1. nc address port
键盘输入的信息按下Enter键会立即输入到套接字当中的输出流中,同时也会不断地打印输入流当中的信息!
2. nc address file
将文件中的信息发送出去,并不断地打印输入流中的信息
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 即可。
更多高级应用参考:
用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
这时两台机器间便开始传送数据
Linux中nc命令是一个功能强大的网络工具,全称是netcat。
测试使用
在一个终端上 输入 nc -lk 9999
输入数据。。。
新开启一个终端
输入 nc ip:9999
就可以看到上一个终端输入的数据
你需要安装nc
确定你的DNS可以解析公网地址(命令:vi /etc/resolv.conf,添加:nameserver 222.172.200.68)
使用命令:yum install nc
安装完成再使用命令:nc -l 5001
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流