zoukankan      html  css  js  c++  java
  • 四层运维工具nc

     
     

    nc命令全名为netcat,顾名思义就是通过TCP或UDP从网络读写数据。

    很多事情不一定非得抓包,nc也能发挥巨大作用。

    1、传输文件

    使用<>重定向符(只适用单文件,不推荐、失败时 ">" 产生空文件)

        nc -l 8888 < demo.txt        # 在本机8888端口侦听TCP连接,将收到的数据写入文件

        nc ip 8888 > demo.txt       # 文件接收端:将文件内容通过网络"cat"到远端

    使用tar传输文件(推荐,好处是保留了原目录结构和权限)

        tar cz demo1.txt demo_dir/ | nc -l 8888  # 监听8888端口,有连接时开始tar打包并"cat"到远端

        nc ip 8888 | tar zx                                 # 连接、接收数据、解压一步到位。


    2、建立网络管道

        nc -l 8888                            # 接收消息

        echo msg | nc ip 8888           # 发送消息


    3、迁移生产机房数据到测试机房(运维电脑建管道)

        tar cz demo1.txt demo_dir/ | nc -l 8888  # 生产机房ipA

        nc -l 8888 | tar zx                                 # 测试机房ipB

        nc ipA 8888 | nc ipB 8888                      # 运维个人电脑,连通两台机器的8888端口。


    4、测试网络连通 (排查测试机房的lbg转发udp问题)

        curl 调试http,即7层非常高效。但如何调试4层网络呢?答案就是nc

        测试机房lbg做了公网udp服务的映射,但测试同学发现程序出错,怀疑网络问题,找运维同学排查。

        nc -ul 9999                   # 服务ipS 监听9999端口 该端口映射到公网 ipVS:portVS

        nc -zuv ipS 9999           # 内网udp连通成功   显示Connection to ipS 9999 port [udp/*] succeeded!

        nc -zuv ipVS portVS       # 公网udp连通失败   显示Connection to ipVS portVS port [udp/*] fail!

        一、上如何检查tcp?以上的参数u去掉,默认就是tcp。

        二、进一步写出nagios插件,检查udp服务端口(以部署在PP的udp消息推送监控中)


    5、代替telnet,测试mc,浮云等等。

        echo -e "stats " | nc ipS portMC        # 非交换式查看mc的状态。

        echo -e "INFO " | nc ipS portREDIS   # 非交换式查看redis的状态。

        非交换的set、get检查浮云ds        # 已部署到PP的浮云监控。



    6、使用nc发邮件,发送http请求,反弹shell,端口转发等等,请man nc

         echo -e "GET / HTTP/1.0 " | nc uc.cn 80

     
     
  • 相关阅读:
    命令行程序如何获取HINSTANCE?
    解决C++项目使用sqlite中文乱码问题
    第三章 CLR如何解析引用类型
    第二章 生成、打包、部署和管理应用程序及类型
    第一章 CLR执行模型
    如何快速提升自己硬实力
    前端优化
    Eureka的工作原理以及它与ZooKeeper的区别
    单链表反转
    链表中head->next = p;和p=head->next;之间的区别
  • 原文地址:https://www.cnblogs.com/weishun/p/5061709.html
Copyright © 2011-2022 走看看