Linux 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输入/输出模式,只在扫描通信端口时使用。
实例
TCP端口扫描
nc -v -z -w2 192.168.0.3 1-100 #扫描192.168.0.3 的端口 范围是 1-100
# nc -v -z -w2 192.168.0.3 1-100
192.168.0.3: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.0.3] 80 (http) open
(UNKNOWN) [192.168.0.3] 23 (telnet) open
(UNKNOWN) [192.168.0.3] 22 (ssh) open
扫描UDP端口
# nc -u -z -w2 192.168.0.1 1-1000 //扫描192.168.0.1 的端口 范围是 1-1000
扫描指定端口
nc -nvv 192.168.0.1 80 //扫描 80端口
# nc -nvv 192.168.0.1 80 //扫描 80端口
(UNKNOWN) [192.168.0.1] 80 (?) open
y //用户输入
文件传输
1. 虚拟机(Linux)与Windows之间传输文件;
2. 不同PC间(可以是不同系统);
无需安装烦人的samba, FTP, httpd, ...
纯粹TCP / UDP传输,方便!!!!
一般先打开监听方。这样就可以快速传输文件了。
use nc to transmit data between hosts
经过上面对nc的简介,估计不少同学已经知道怎么用nc来实现两台机器间的文件传输了。这里对实现流程做简单说明。
1)在数据接收方的机器上侦听指定端口
- nc -l -p 8210 > demo.txt # 在本机8210端口侦听TCP连接,将收到的数据写入文本文件
- nc -l -p 8210 > demo.tar.bz2 # 在本机8210端口侦听TCP连接,将收到的数据写成压缩文件
2)在数据发送方机器上向指定地址(ip+port)以TCP方式发送数据
- nc dest_ip 8210 < demo.txt # 向ip为dest_ip的机器的8210端口发送demo.txt文件
- nc dest_ip 8210 < $(tar -tcvf demo.tar.bz2 demo.txt) # 压缩后发送
3)-v打印出错信息
接收方:nc -v -l -p 8210
发送方:nc -v dest_ip 8210
注意:使用nc传文件时,需注意操作次序,receiver先侦听端口,sender向receiver所在机器的该端口发送数据。否则发送失败
参考:
https://www.cnblogs.com/johnwang/p/3227946.html
https://blog.csdn.net/Zhanglihe992/article/details/78626247