script 腳本 powershell tcp ping ipv6
powershell 傳教士 原創文章,始于 2023-04-03 允許轉載,但必須保留名字和出處
---【前言】---
我寫了個powershell腳本 tcp--ping-v3.ps1,它支持在linux下ping ipv6地址,
但最近接到反饋,說不支持,實際上是幫助資訊不好,所以我做了更改,完善了,就寫了此貼,
先一鍵安裝linux版powershell
https://gitee.com/chuanjiao10/kasini3000_agent_linux
下載地址:
https://gitee.com/chuanjiao10/kasini3000/blob/master/tcp--ping-v5.ps1
腳本功能說明:
先把域名決議成ip,或把k8s的service名決議成pod的ip,然后挨個tcp連接,并用 綠色 表示通了,紅色表示不通,
在linux下,tcping,ipv6埠用法:(用法改了)
./tcp--ping-v5.ps1 ip 埠 -AdapterNameLinux 'eth0'
建議搭配此腳本使用:fh回傳網卡名_mac_ip_linux.ps1

-AdapterNameLinux 'eth0' 是v5版腳本新增引數,在linux下不用ipv6,不需要此引數,
---【正文:憑什么你煉制的是神器?憑什么你這腳本世界第一?】---
1本腳本是【多執行緒】級別:
支持多執行緒并發例子:
$csv = import-csv -path 'd:\file.csv' $csv | foreach-object -Parallel { /xxx/tcp--ping-v5.ps1 -MyComputerName $_.'域名或ip' -port $_.'埠' }
【多行程】級別的壞處很明顯,不適太合批量,你tcping一千個埠,就要fork一千次行程,說白了就是占cpu,記憶體多,
golang做不到;任何二進制程式做不到;py的話分2中情況:如果你從shell命令列呼叫,每次一個ip,那就是python -f x.py,這也是多行程級的,
2腳本是明文的:盡量用開源的二進制程式,減少被藏-毒的風險,
golang做不到;任何二進制程式做不到;
3腳本跨平臺,1個腳本檔案,win,linux通用,
golang做不到;任何二進制程式做不到;py可以,
4本腳本決議dns,是k8s的絕佳伴侶:
一遍遍地tcp--ping.ps1,就可以測驗k8s集群中,
1 測驗k8s cluster 域名決議是否正常,是否少決議出了幾個pod ip,
2 決議10遍k8s cluster域名,測驗是否有幾遍,決議程序會卡住,
3 測驗每個k8s pod的【某埠】是否全通,
為啥必須得用:
1 先把域名決議成ip,然后挨個tcp連接,(如圖所示)linux的tcping無此功能,顧此特色世界唯一!

2 當你使用iptable作為k8s的虛擬路由器時,不能使用ping來測驗集群是否通,因為iptable不轉發icmp,
---【后記】---
問:為什么不用linux的tcping?
答:tcping除了不決議ip外,還不支持ipv6
“linux的tcping還有這等限制,我也算讀過不少上古典籍,怎么沒聽說過此事?”二愣子韓立眉頭皺起說道,
“韓兄以為我想用powershell版嗎?這也是被逼無奈之事,大部分linux古書上只是記載了tcping的神妙,但是卻很少有修士記錄它的缺陷,
我輩修士一用才發現,并不顯示決議的ip,還不支持ipv6,韓兄,不信你試試” 紫靈苦笑一聲無奈的說道,
-煉制神器,必須有精益求精的精神,謝謝觀看完-
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/549161.html
標籤:其他
