nc 命令的使用



语  法: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)端口扫描或测试联通
[root@*.*hdpdev02102 ~]# nc -u -v -w 2 *.*.237.104  -z 20011-20015
Connection to *.*.237.104 20011 port [udp/isdnlog] succeeded!
Connection to *.*.237.104 20012 port [udp/vboxd] succeeded!

[root@*.*hdpdev02102 ~]# nc -uvz *.*.237.106 20013
[root@*.*hdpdev02102 ~]# nc -uvz *.*.237.105 20013
Connection to *.*.237.105 20013 port [udp/*] succeeded!
[root@*.*hdpdev02102 ~]# nc -uvz *.*.237.106 20013
[root@*.*hdpdev02102 ~]# nc -uvz -w 2 *.*.237.106 20013

2)传输文件

发送端开启端口监听和被传输的文件
[root@*.*hdpdev02102 ~]# nc -l 1234 < test.txt #此时这个命令不会断掉
再新开一个tty可以看到 已开启监听1234端口

[root@*.*hdpdev02102 ~]# netstat -tunlp|grep 1234
tcp        0      0 0.0.0.0:1234                0.0.0.0:*                   LISTEN      13210/nc  

接收端使用nc访问发送端的端口并接受文件
[root@*.*hdpdev02103 ~]#  nc *.*.237.104 1234 >  test.txt

发送端的临时开启的1234端口被接收端nc访问后自动关闭监听
[root@*.*hdpdev02102 ~]# netstat -tunlp|grep 1234
[root@*.*hdpdev02102 ~]#


3)聊天
nc还可以作为简单的字符下聊天工具使用,同样的,server1上需要启动监听:
[root@*.*hdpdev02102 ~]# nc -l 1234

server2上访问server1的1234
[root@*.*hdpdev02103 ~]# nc *.*.237.104 1234

这样,双方就可以相互交流了。使用Ctrl+D正常退出。

原文地址:https://www.cnblogs.com/dotagg/p/6364146.html