四層運維工具nc

 
 

 

nc命令全名爲netcat,顧名思義就是經過TCP或UDP從網絡讀寫數據。ios

 

不少事情不必定非得抓包,nc也能發揮巨大做用。redis

 

一、傳輸文件chrome

使用<>重定向符(只適用單文件,不推薦、失敗時 ">" 產生空文件)shell

    nc -l 8888 < demo.txt        # 在本機8888端口偵聽TCP鏈接,將收到的數據寫入文件網絡

    nc ip 8888 > demo.txt       # 文件接收端:將文件內容經過網絡"cat"到遠端運維

使用tar傳輸文件(推薦,好處是保留了原目錄結構和權限)curl

    tar cz demo1.txt demo_dir/ | nc -l 8888  # 監聽8888端口,有鏈接時開始tar打包並"cat"到遠端tcp

    nc ip 8888 | tar zx                                 # 鏈接、接收數據、解壓一步到位。測試


二、創建網絡管道url

    nc -l 8888                            # 接收消息

    echo msg | nc ip 8888           # 發送消息

 


三、遷移生產機房數據到測試機房(運維電腦建管道)

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

    nc -l 8888 | tar zx                                 # 測試機房ipB

    nc ipA 8888 | nc ipB 8888                      # 運維我的電腦,連通兩臺機器的8888端口。


四、測試網絡連通 (排查測試機房的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!

    1、上如何檢查tcp?以上的參數u去掉,默認就是tcp。

    2、進一步寫出nagios插件,檢查udp服務端口(以部署在PP的udp消息推送監控中)


五、代替telnet,測試mc,浮雲等等。

    echo -e "stats\r\n" | nc ipS portMC        # 非交換式查看mc的狀態。

    echo -e "INFO\r\n" | nc ipS portREDIS   # 非交換式查看redis的狀態。

    非交換的set、get檢查浮雲ds        # 已部署到PP的浮雲監控。



六、使用nc發郵件,發送http請求,反彈shell,端口轉發等等,請man nc

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

相關文章
相關標籤/搜索