nc 命令是一个功能强大的网络工具,它可以作为一个TCP/UDP的通讯工具,用于连接网络上的各种服务,它能够将任何两个端口之间的数据以二进制方式传输。下面将详细讲解 nc 命令的用法。
1. nc 命令的语法
nc [-lhknrsu][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-w<超时秒数>][主机名称][通信端口号]
参数说明:
- -l:表示监视本地的连线;
- -h:在线帮助;
- -k:启动 keepalive 功能,关闭的连接会自动保持,直到有新数据传送;
- -n:不使用DNS域名解析,直接使用IP地址;
- -r:使用随机端口号(大于1024);
- -s:链接延迟秒数;
- -u:使用UDP传输协议;
- -g:设置网关跃程通信网关,最多支持8个;
- -G:设置来源路由指向,记录并显示数据包的传输路径;
- -i:设置时间间隔,以秒为单位;
- -o:filename:将外层传输的数据输出到文件;
- -p:local_port:设置本地端口号;
- -w:timeout:设置超时间隔时间,以秒为单位。
主机名或 IP地址可以在端口号前或后。
2. nc 命令的使用方法
2.1 使用 nc 命令进行简单数据传输
在两台Linux服务器之间传输数据:
示例1:两台主机之间传输文件
机器A发送文件给机器B,其中,机器A IP为172.16.31.114,机器B IP为172.16.111.128。
在机器B上开启nc监听端口进行侦听,命令为:
nc -l 10000 > file.txt
在机器A发送文件file.txt到机器B的命令为:
nc 172.16.111.128 10000 < file.txt
以上命令执行之后,file.txt文件就被传递到了机器B,并存储为名为file.txt的文件。
示例2:在本地测试 TCP 端口连通性
某Web应用程序,监听在127.0.0.1的80端口。我们可以通过nc命令来检测该端口是否可用,方法如下:
nc -zv 127.0.0.1 80
以上命令执行后,如果返回“Connection to 127.0.0.1 80 port [tcp/http] succeeded!”表示连接成功,否则连接失败。
2.2 使用 nc 命令进行网络扫描
nc 命令也可以用来进行网络扫描,例如,扫描目标机器的21、22、80端口是否开放,命令如下:
nc -zv 192.168.1.1 21 22 80
以上命令执行后,如果返回“Connection to 192.168.1.1 21 port [tcp/ftp] succeeded!”、“Connection to 192.168.1.1 22 port [tcp/ssh] succeeded!”、“Connection to 192.168.1.1 80 port [tcp/http] succeeded!”表示扫描成功。
3. nc 命令的总结
nc命令是一个非常实用的Linux网络工具,它可以用来进行网络数据传输,检测端口连接,扫描网络端口等多种操作,并且使用简单,需要大家多进行实践使用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Linux nc命令:网络工具,用于在两个主机之间传输数据 - Python技术站