我有一種情況,我需要檢查從客戶端A到40主機的網絡連接,反之亦然。當登錄到每個客戶端需要時間。我想知道是否有一個簡單的方法來實現這一點,請展示一些燈光。易於測試雙向網絡連接
例:
目標1:
目的地的源:OK
目的地來源:KO
來源:
10.1.2.3
目的地:
10.2.2.2
10.3.3.3
10.4.4.4
10.5.5.5
端口:8080
誰能幫助我應該使用哪些模塊?請。
我有一種情況,我需要檢查從客戶端A到40主機的網絡連接,反之亦然。當登錄到每個客戶端需要時間。我想知道是否有一個簡單的方法來實現這一點,請展示一些燈光。易於測試雙向網絡連接
例:
目標1:
目的地的源:OK
目的地來源:KO
來源:
10.1.2.3
目的地:
10.2.2.2
10.3.3.3
10.4.4.4
10.5.5.5
端口:8080
誰能幫助我應該使用哪些模塊?請。
這應該工作,但我沒有測試它。讓我知道它是否對你有幫助。
編輯:我編輯,因爲我意識到你需要一個「反之亦然」的方式。所以在這裏,假設你的主服務器和你正在測試的40臺主機之間有ssh密鑰。正如評論中指出的那樣,這將在Bash中起作用。
#!/bin/bash
port=8080
viceversaIp="10.1.2.3"
while read line
do
result=$(echo > /dev/tcp/$line/$port)
if [ -z "$result" ]
then
echo "Server : $line ; Port : $port ; The port is closed!!"
else
echo "Server : $line ; Port : $port ; The port is open!!"
fi
result=""
viceversa_result=$(ssh -n $line " echo > /dev/tcp/$viceversaIp/$port " | tail -1)
if [ -z "$viceversa_result" ]
then
echo "Server $line can reach $viceversaIp at port $port "
else
echo "Server $line can NOT reach $viceversaIp at port $port "
fi
viceversa_result=""
done <(cat ips.txt)
問候!
這是使用netcatnc
一個oneliner:
cat hosts.txt| xargs -n 1 sh -c 'nc -G1 -w1 -z $1 8080' argv0
在將文件hosts.txt
每行包含一個IP /域。
,如果你有每個IP,你可以按照這個格式自定義端口:
# IP PORT
10.10.0.1 8080
10.10.0.2 80
,做:
cat hosts.txt| xargs -n 2 sh -c 'nc -G1 -w1 -z $1 $2' argv0
的netcat通過TPC其連接是雙向連接(三次握手)所以也許滿足您的「雙向」測試要求
選項-G
和-w
超時:
-G conntimeout TCP connection timeout in seconds
-w If a connection and stdin are idle for more than timeout sec-
onds, then the connection is silently closed.
嘗試'ping'或'telnet'客戶端? –
當指定多個地址時,nmap也很有用 –
@Avihoo Mamka .. telnet .. – Sunny1985