telnet命令
telnet可以实现的功能:
1.连接服务器端口,并进行通信
2.登录远程telnet服务器,使用命令行对其进行控制
nc命令
nc可以实现的功能:
1.监听服务器端口,并与客户端通信(最多只能接收一个客户端)
2.对指定服务器进行端口扫描
3.作为客户端连接到远程服务器进行通信.
在使用之前,很多Linux发行版本没有集成这个命令,我的机器是deepin 15.10.1桌面版,需要预装,才能使用。
nc的下载
sudo apt-get install nc
telnet下载
sudo apt-get install telnet
nc -l -p [端口]
如:
nc -l -p 9998
功能:在本机上开启一个TCP服务器端口9998
nc -nvz [服务器地址] [端口区间]
如:
nc -nvz 192.168.1.106 9990-9999
功能:扫描地址192.168.1.106上的9990-9999端口
由于我上一步操作已经通过nc操作监听了端口9998,所以检测出来了该端口
nc [服务器地址] [端口]
如:
nc 192.168.1.106 9998
功能:连接到192.168.1.106上的9998端口(TCP连接)
因为刚才已经用9998端口作为服务器进行监听了,所以这样连接上就可以交互了,当然,使用下面的telnet命令同样可以做到。
telnet [服务器地址] [端口]
如:
telnet 192.168.1.106 9998
这时通过,管道,重定向,等操作也可以实现更多的功能,比如发文件,测电脑tcp带宽等。
使用下面的命令作为客户端连接,服务则选择将客户端发的数据直接导向系统的黑洞,进行测试机器的tcp带宽,我的tcp带宽就是2.1GB每秒,由于dd命令和管道也要占用资源,所以测出来的值偏小。
客户端,当然里面的参数可以适当根据情况改变,比如发2G的数据测试
服务端
当然服务端也可以用下面这个命令,顺便能实时打印带宽
nc -l -p 9998 | pv -W > /dev/mull
通过通过重定向发文件
nc [服务器地址] [端口] < [文件路径]
如:
nc 192.168.1.106 9998 < test
功能:向192.168.1.106上的9998端口(TCP)发送test文件
上面说的测试tcp带宽命令,同样可以利用发文件命令测试,算出时间除以文件大小,因为没有的dd和管道占用带宽,所以测出来的值更加准确。
time nc 192.168.1.106 9998 < test
但是注意如果使用这种放法得测试需要连续测试两遍,第一遍的时候测试数据偏低,是因为数据在磁盘里面,需要先读到内存,这个时间会拖慢整个测试,但是接着第二次在测试时,文件已经读到了内存里,测出来的值是真正的tcp带宽。
其实对于初学者来说,telnet命令这些参数一般用不着,所以记得下面这种写法就可以了,具体用法在后面写着。
telnet [服务器地址] [端口]
如:
telnet 192.168.1.106 9998
telnet 192.168.1.106
telnet 192.168.1.106 8888
如果端口没有开放,则返回下图,无法连接。
如果端口开放,则连接成功,可以通过命令行进行简单的交互,发送数据。
如果是本机可以采用netstat命令来查看端口号的状态
netstat -an | grep 端口号
所以如果是本机的话,telnet命令的功能更多是做一个客户端和服务器进行简单的交互测试
部分内容来自nc命令用法举例