nc是netcat的简写。nc的作用很多,可以实现网络端口监听、网络数据传输等,其用法可以用命令man nc或者nc --help查看。
本文主要介绍nc的一个简单玩法,实现监听一个端口,然后往这个端口写入点数据,在监听终端上看到写入的数据。
打开第一个终端监听某个端口,例如:9999
$ nc -lk 9999
nc参数中 -l(小写的L)表示listen -k表示keep on 持续监听。
开启第二个终端,给9999端口发送一个文本或者字符串:
$ echo "Hello world, hello nc" | nc localhost 9999
第一个终端输出:
Hello world, hello nc
说明第二个终端通过nc命令将内容传输到了9999端口。
继续测试:
将第二个终端命令稍加修改为如下内容,再次执行
扫描二维码关注公众号,回复:
4825825 查看本文章
$ echo "Hello again" | nc localhost 9999
第一个终端输出了第二次传输的内容。
---------------------------------------------------------------------------------------------
通过以上介绍,nc可以实现一个终端(客户端)向第二个终端(服务端)发送内容,类似于单向的聊天。
可以升级以上玩法,实现双向传输内容,也就是双向聊天:
准备两个终端:node1和node2
确保两台机器已经在/etc/hosts文件映射了ip和对应的主机名
在第一个终端:node1,执行命令nc -vl 54321
hadoop@node1:~$ nc -vl 54321
在第二个终端:node2 ,执行命令nc -v node1 54321,如果没有映射ip和主机名,可以将node1换成node1的ip。
hadoop@node2:~$ nc -v node1 54321
在node1上输入内容后,node2能收到并显示node1输入的内容;
在node2上输入内容后,node1能收到并显示node2输入的内容;
互相聊天效果如下:
node1:
node2:
完成! enjoy it!