nc 命令在有些时候非常有用,它可以用来测试网络端口,基本用法:
`nc -v dest_ip port
示例:
nc -v vcenter01 443
nc -v ave-01 28001
我们在做VMware恢复作业的时候经常需要检查ESXi 是否能连通 DD 的几个NFS端口:
`TCP/111、2049、2052
而ESXi主机命令行不提供 telnet 和 curl 这些我们常用的命令,nc就能有大用:
nc -v ddve-01 111
nc -v ddve-01 2049
nc -v ddve-01 2052
它还可以批量扫描端口:
`nc -v -z -w1 ave-01 28001-28011
如果发现不通,很有可能是vSphere的firewall没有开放这些端口。需要虚拟化管理员调整firewall策略。
nc的作用并不止于此,它既可以做客户端,还可以做服务端,用来通过自定义端口来监听网络包。
服务端:nc -l 28007
客户端:nc -v ave-01 28007
甚至还可以传输文件,对一些不方便收日志的环境比较有用。用法如下:
接收端执行:
`nc -l 28007 > esxi.gz
可以监听本地28007端口(假设在ave-01上监听)并将收到的数据写入 esxi.gz 这个文件
发送端执行:
`nc -v ave-01 28007 < /vmfs/volumes/xxx.gz
可以将本地的日志包文件 /vmfs/volumes/xxx.gz 文件发送到 ave-01 的28007端口