网络编程利器nc和telnet命令的简单使用

两个命令的介绍

telnet命令
网络编程利器nc和telnet命令的简单使用_第1张图片
telnet可以实现的功能:
1.连接服务器端口,并进行通信
2.登录远程telnet服务器,使用命令行对其进行控制

nc命令
网络编程利器nc和telnet命令的简单使用_第2张图片
nc可以实现的功能:
1.监听服务器端口,并与客户端通信(最多只能接收一个客户端)
2.对指定服务器进行端口扫描
3.作为客户端连接到远程服务器进行通信.

两个命令的下载

在使用之前,很多Linux发行版本没有集成这个命令,我的机器是deepin 15.10.1桌面版,需要预装,才能使用。
nc的下载

sudo apt-get install nc

telnet下载

sudo apt-get install telnet

nc命令的简单使用

(一)nc命令常用参数意义

  1. -l
    由于nc命令默认是做客户端使用的,所以使用-l参数,用于指定nc将处于监听模式。意味着这时的nc被当作server,侦听并接受连接,而非向其它地址发起连接。
  2. -p
    nc需要在端口号前加-p参数
  3. -s
    指定发送数据的源IP地址,适用于多网卡机
  4. -u
    nc命令默认的是TCP连接,-u指定nc使用UDP协议
  5. -v
    输出交互或出错信息
  6. -w
    超时秒数,后面跟数字
  7. -z
    表示zero,表示扫描时不发送任何数据

(二)nc命令的常见使用

1. 监听服务器端口
nc -l -p [端口]
如:
nc -l -p 9998
功能:在本机上开启一个TCP服务器端口9998

在这里插入图片描述

2.端口扫描
nc -nvz [服务器地址] [端口区间]
如:
nc -nvz 192.168.1.106 9990-9999
功能:扫描地址192.168.1.106上的9990-9999端口

在这里插入图片描述
由于我上一步操作已经通过nc操作监听了端口9998,所以检测出来了该端口

3.连接服务器端口
nc [服务器地址] [端口]
如:
nc 192.168.1.106 9998
功能:连接到192.168.1.106上的9998端口(TCP连接)

网络编程利器nc和telnet命令的简单使用_第3张图片
因为刚才已经用9998端口作为服务器进行监听了,所以这样连接上就可以交互了,当然,使用下面的telnet命令同样可以做到。

telnet [服务器地址] [端口]
如:
telnet 192.168.1.106 9998

网络编程利器nc和telnet命令的简单使用_第4张图片
这时通过,管道,重定向,等操作也可以实现更多的功能,比如发文件,测电脑tcp带宽等。

4.通过TCP连接测出电脑的带宽

使用下面的命令作为客户端连接,服务则选择将客户端发的数据直接导向系统的黑洞,进行测试机器的tcp带宽,我的tcp带宽就是2.1GB每秒,由于dd命令和管道也要占用资源,所以测出来的值偏小。
客户端,当然里面的参数可以适当根据情况改变,比如发2G的数据测试
在这里插入图片描述
服务端
在这里插入图片描述
当然服务端也可以用下面这个命令,顺便能实时打印带宽

nc -l -p 9998 | pv -W > /dev/mull
5.通过tcp连接发文件

通过通过重定向发文件

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带宽。

ps:虽然nc命令支持udp连接,但是我还没用过,所以就不说了

telnet命令的简单使用

(一)telnet命令常用参数意义

  1. -a
    企图自动登录,除了当前一登录的用户名以外,与-l 选项相同
  2. -e
    跳过字符直接进入 telnet 客户端提示
  3. -l
    指定远程系统上登录的用户名

其实对于初学者来说,telnet命令这些参数一般用不着,所以记得下面这种写法就可以了,具体用法在后面写着。

telnet [服务器地址] [端口]
如:
telnet 192.168.1.106 9998

(二)telnet命令的常见使用

1.telnet命令可以测试一个IP的连通性
telnet 192.168.1.106

如下图,说明该IP主机没有开放telnet服务
在这里插入图片描述

2.查看远方服务器ssh端口是否开放:
telnet 192.168.1.106 8888

如果端口没有开放,则返回下图,无法连接。
在这里插入图片描述
如果端口开放,则连接成功,可以通过命令行进行简单的交互,发送数据。
网络编程利器nc和telnet命令的简单使用_第5张图片

3.对本机的服务器可以进行调试

如果是本机可以采用netstat命令来查看端口号的状态

netstat -an | grep 端口号

在这里插入图片描述

所以如果是本机的话,telnet命令的功能更多是做一个客户端和服务器进行简单的交互测试
网络编程利器nc和telnet命令的简单使用_第6张图片


部分内容来自nc命令用法举例

你可能感兴趣的:(Unix网络编程相关,Linux操作系统相关)