仔细读题,发现题目中给出一个公网可访问的示例,来方便测试与查看效果。使用的是nc命令,第一次接触这个命令,先做一个了解。
nc命令
什么是nc
nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具
nc的作用
(1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
(2)端口的扫描,nc可以作为client发起TCP或UDP连接
(3)机器之间传输文件
(4)机器之间网络测速
基本使用
想要连接到某处:
1 | nc[-options]hostnameport[s][ports]... |
绑定端口等待连接:
1 | nc-l-pport[-options][hostname][port] |
参数:
参数 | 说明 |
---|---|
-C | 类似-L选项,一直不断连接[1.13版本新加的功能] |
-d | 后台执行 |
-e prog | 程序重定向,一旦连接,就执行 [危险!!] |
-g gateway | 源路由跳数,最大值为8(source-routing hop point[s],up to 8) |
-G num | 源路由指针:4,8,12,… (source-routing pointer: 4,8,12,…) |
-h | 帮助信息 |
-i secs | 延时的间隔 |
-l | 监听模式,用于入站连接 |
-n | 指定数字的IP地址,不能用hostname |
-o file | 记录16进制的传输 |
-p port | 本地端口号 |
-r | 任意指定本地及远程端口 |
-s addr | 本地源地址 |
-u | UDP模式,[netcat-1.15可以:远程nc -ulp port -e cmd.exe,本地nc -u ip port连接,得到一个shell.] |
-v | 详细输出——用两个-v可得到更详细的内容 |
-w secs | 指定超时的时间 |
-z | 将输入输出关掉——用于扫描时 |
其中端口号可以指定一个或者用lo-hi式的指定范围。
实例
网络连通性测试和端口扫描
使用nc命令作为客户端工具进行端口探测
使用nc传输文件和目录
把在20188端口接收到的数据都写到out文件里
往20188端口发送数据
其实我都没搞清楚到底要测试什么文件?
测试网速
需要使用dstat命令监测网速,先安装dstat工具,Ubuntu系统下,使用命令:
1 | sudo apt-get install dstat |
安装完成后,测试一下
测试网速其实利用了传输文件的原理,就是把一台机器的无限个0,传输给另一个机器的空设备上,然后新开一个窗口使用dstat命令监测网速
使用命令:
1 | nc hostnameport port <dev/zero |
了解了nc命令,让我想到一个跟它很类似的命令,就是telnet命令,我就简单了解了一下Telnet和nc命令的区别。
telnet命令
Telnet
Telnet(远程终端协议),是Internet远程登录服务的标准协议和主要方式,它为用户提供了在本地计算机上完成远程主机工作的能力。
Telnet的作用
(1)连接服务器端口,并进行通信
(2)登录远程telnet服务器,使用命令行对其进行控制
Telnet基本使用
连接服务器端口:telnet [服务器地址] [端口]
远程控制服务器:telnet [服务器地址]
telnet使用明文传输,易泄露数据,因此逐渐被ssh取代。