nc 命令简介

nc 全程是netcat 是Linux下常用的一种网络工具(网络的瑞士尖刀);nc 通信通过TCP/IP协议进行数据的读取和写入,

可以是TCP 、UDP进行网络链接后通信。

nc 扫描端口

  • nc 最重用的功能就是用来扫描端口是否开通,跟telnet 有点类似:


  1. nc -v -w 2 `hostname -i` 3901-3905  

  2. nc: connect to 10.246.46.15 port 3901 (tcp) failed: Connection refused  

  3. nc: connect to 10.246.46.15 port 3902 (tcp) failed: Connection refused  

  4. Connection to 10.246.46.15 3903 port [tcp/charsetmgr] succeeded!  #端口开通  

  5. nc: connect to 10.246.46.15 port 3904 (tcp) failed: Connection refused  

  6. Connection to 10.246.46.15 3905 port [tcp/mupdate] succeeded!     #端口开通  


  •  可以用nc 返回值来判断端口是否开通


  1. nc -v -w 2 `hostname -i` 3901  

  2. nc: connect to 10.246.46.15 port 3901 (tcp) failed: Connection refused  

  3. echo $?  

  4. 1  

  5.   

  6. nc -v -w 2 `hostname -i` 3903  

  7. Connection to 10.246.46.15 3903 port [tcp/charsetmgr] succeeded!  

  8. echo $?  

  9. 0  




nc 聊天工具

nc 是一个TCP/IP 网络协议工具,肯定就可以进行TCP连接后续的通信,可以用nc 模拟一个最简单的聊天工具:


  • server端【任何一方】


[root@server ~]#nc -l 55555  

shi ni   

shiwo

ni  hao shuming  

shmming ni hao  


  • client端【任何一方】


[root@client~]#nc 10.246.46.15 55555  

shi ni   

shiwo  

ni  hao shuming  

shmming ni hao  


nc 传输文件

既然nc 是TCP/IP 协议的网络连接,可以用nc 建立连接来传输文件


  • 传输文件方把文件内容写到nc 开启的端口listen中


[root@server~]#cat rpyc.py |nc -l 33333  


  •  接收文件方,nc 连接传输文件机器的listen 端口,并把文件接收写入指定文件中


[root@client]#nc 10.246.46.15  33333 > rpyc.py