一、介绍
nc命令,是一个简单可靠地网络工具
二、语法
nc/netcat(选项)(参数)
三、选项
-g<网关>: |
设置路由器远程通信网关,最多设置8个; |
-G<指向器数目>: |
设置来源路由指向器,其数值为4的倍数; |
-h: |
在线帮助; |
-i<延迟秒数>: |
设置时间间隔,以便传送信息及扫描通信端口; |
-l: |
使用监听模式,监控传入的资料; |
-n: |
直接使用ip地址,而不通过域名服务器; |
-o<输出文件>: |
指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存; |
-p<通信端口>: |
设置本地主机使用的通信端口; |
-r: |
指定源端口和目的端口都进行随机的选择; |
-s<来源位址>: |
设置本地主机送出数据包的IP地址; |
-u: |
使用UDP传输协议; |
-v: |
显示指令执行过程; |
-w<超时秒数>: |
设置等待连线的时间; |
-z: |
使用0输入/输出模式,只在扫描通信端口时使用。 |
四、参数
主机:指定主机的IP地址或主机名称;
端口号:可以是单个整数或者是一个范围。
五、实例:
1、扫描指定端口
[root@s1 ~]# nc -zw 1 192.168.110.58 80
Connection to 192.168.110.58 80 port [tcp/http] succeeded!
#查看 192.168.110.58 上的80端口状态
[root@s1 ~]# nc -zw 1 www.baidu.com 80
Connection to www.baidu.com 80 port [tcp/http] succeeded!
#扫描域名的80端口
2、扫描1到100的端口范围,只输出打开端口
[root@s1 ~]# nc -zw 1 192.168.110.55 1-100
Connection to 192.168.110.55 22 port [tcp/ssh] succeeded!
Connection to 192.168.110.55 80 port [tcp/http] succeeded!
[root@s1 ~]#
#远程扫描192.168.110.55这台主机上的1-100端口,只输出打开端口,未打开的不被输出
3、扫描20到25端口,并详细输出
[root@s1 ~]# nc -zvw 1 192.168.110.55 20-25
nc: connect to 192.168.110.55 port 20 (tcp) failed: Connection refused
nc: connect to 192.168.110.55 port 21 (tcp) failed: Connection refused
Connection to 192.168.110.55 22 port [tcp/ssh] succeeded!
nc: connect to 192.168.110.55 port 23 (tcp) failed: Connection refused
nc: connect to 192.168.110.55 port 24 (tcp) failed: Connection refused
nc: connect to 192.168.110.55 port 25 (tcp) failed: Connection refused
#未打开的端口,不能连接
注:使用nc命令进行端口扫描可被用来检测本地端口开启情况,同时也可检测远程主机对端口是否做了防火墙限制。这在服务配置结束后,测试主机间服务连通性非常有用且高效。
4、远程拷贝文件
从server1拷贝文件到server2上。需要先在server2上,用nc激活监听。
server2上运行:nc -l 1234 >a.txt #nc将一直监听1234端口,知道文件传输完毕,如下图:
server1上运行: nc -w 1 192.168.110.58 1234 < zengbei.sh
#文件engbei.sh 中的内容将被传输到192.168.110.58主机的 1234 端口指定的a.txt文件,可在server2上查看文件a.txt的内容验证。
5、传输目录
从server1拷贝ceshi目录内容到server2上。需要先在server2上,用nc激活监听,
server2上运行:
[root@s1 tmp]# nc -l 1234 |tar xzvf -
#1234端口会一直处于监听状态,直到目录传输完毕,传输完毕状态如下图:
server1上运行:tar czvf - ceshi/|nc 192.168.110.58 1234
如图: