Linux中nc命令是一个功能强大的网络工具,全称是netcat。

1.语法:

nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]

参数说明:
-g<网关> 设置路由器跃程通信网关,最丢哦可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。

2.实例:

2.1 TCP端口扫描

# nc -v -z -w2 127.0.0.1 1-100
Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!
Connection to 127.0.0.1 53 port [tcp/domain] succeeded!
Connection to 127.0.0.1 80 port [tcp/http] succeeded!
...
nc: connect to 127.0.0.1 port 100 (tcp) failed: Connection refused

2.2 从192.168.1.2拷贝文件到192.168.1.3

首先在接收端192.168.1.3上: nc -l 1234 > test.txt

然后在发送端192.168.1.2上: nc 192.168.1.3 < test.txt

注意:先运行接收端,指定一个端口为1234,文件为test.txt,再执行发送端,并且发送端必须存在同名的文件test.txt

2.3 传输目录

从server1(192.168.16.233)拷贝nginx目录内容到server2(192.168.48.47)上。需要先在server2上,用nc激活监听,
server2上运行:# nc -l 1234 | tar xzv-
server1上运行:# tar czv- nginx | nc 192.168.48.47 1234 

2.4 简单聊天工具

在192.168.1.2上: nc -l 1234
在192.168.1.3上: nc 192.168.1.2 1234
这样,双方就可以相互交流了。使用ctrl+C(或D)退出

3.通过Nc 查询 Zookeeper的信息

3.1 取 ZooKeeper 服务的当前状态及相关信息。

ZooKeeper四字命令 功能描述
conf 打印配置
cons 列出所有连接到这台服务器的客户端全部连接/会话详细信息。包括"接受/发送"的包数量、会话id、操作延迟、最后的操作执行等等信息。
crst 重置所有连接的连接和会话统计信息。
dump 列出那些比较重要的会话和临时节点。这个命令只能在leader节点上有用。
envi 打印出服务环境的详细信息。
reqs 列出未经处理的请求
ruok 即"Are you ok",测试服务是否处于正确状态。如果确实如此,那么服务返回"imok",否则不做任何相应。
stat 输出关于性能和连接的客户端的列表。
srst 重置服务器的统计。
srvr 列出连接服务器的详细信息
wchs 列出服务器watch的详细信息。
wchc 通过session列出服务器watch的详细信息,它的输出是一个与watch相关的会话的列表。
wchp 通过路径列出服务器watch的详细信息。它输出一个与session相关的路径。
mntr 输出可用于检测集群健康状态的变量列表

3.2 如何使用Nc命令

echo mntr | nc ip 2181
指标名 解释
zk_version 版本
zk_avg_latency 平均 响应延迟
zk_max_latency 最大 响应延迟
zk_min_latency 最小 响应延迟
zk_packets_received 收包数
zk_packets_sent 发包数
zk_num_alive_connections 活跃连接数
zk_outstanding_requests 堆积请求数
zk_server_state 主从状态
zk_znode_count znode 数
zk_watch_count watch 数
zk_ephemerals_count 临时节点数
zk_approximate_data_size 近似数据总和大小
zk_open_file_descriptor_count 打开 文件描述符 数
zk_max_file_descriptor_count 最大 文件描述符 数
leader才有的指标
zk_followers Follower 数
zk_synced_followers 已同步的 Follower 数
zk_pending_syncs 阻塞中的 sync 操作

3.3 常见操作

3.3.1、 Zookeeper服务器当前节点配置信息: echo conf|nc localhost 2181

3.3.2、cons:echo cons|nc localhost 2181 输出当前服务器所有客户端连接的详细信息:(线上环境谨慎使用)

3.3.3、crst:重置所有客户端连接统计信息

3.3.4、dump:echo dump|nc localhost 2181,输出当前集群的所有会话消息(Lead谨慎使用)

3.3.5、envi:echo envi|nc localhost 2181,输出服务器运行时的环境信息 ![]

3.3.6、ruok:echo ruok|nc localhost 2181,输出当前Zookeeper是否正在运行。是,则返回 'imok'。

3.3.7、stat:echo stat|nc localhost 2181,服务器运行时状态信息:

3.3.8、srvr:和stat功能一致,但不会输出客户端连接情况;

3.3.9、srst:重置所有服务器统计信息;

3.3.10、wchs:echo wchs|nc localhost 2181,输出当前服务器管理的Watcher信息

3.3.11、wchp:echo wchp|nc localhost 2181,与wchs类似,但以节点路径为单位对Watcher信息进行归组;

3.3.12、mntr:echo mntr|nc localhost 2181,比stat更为详尽的服务器信息,

3.3.13、 wchc:echo wchc | nc 127.0.0.1 2181通过 session 列出服务器 watch 的详细信息,它的输出是一个与 watch 相关的会话的列表。
3.3.14、 req:echo reqs | nc 127.0.0.1 2181列出未经处理的请求。
3.3.15、 kill:echo kill | nc 127.0.0.1 2181 关掉server(谨慎操作)