Articles
Testa anslutning till värdar i fil på port 22 med curl-kommando
On december 31, 2020 by adminId som att ansluta följande ”curl” -kommando till ett bash-skript och köra det mot en värdfil av ip-adresser visar sedan utdata som framgång eller misslyckande i en utdatafil.
curl -v telnet 10.10.10.10:22
Är det möjligt?
Svar
Att använda bash-inbyggnaden för att söka efter öppna portar kan också fungera:
#!/bin/bash host_file=/path/to/file.txt out_file=/path/to/out.txt while read -r ip; do if timeout 5 bash -c "cat < /dev/null >/dev/tcp/${ip}/22"; then echo -e "${ip}\tSuccess" else echo -e "${ip}\tFailure" fi >> "$out_file" done < "$host_file"
Kommentarer
- Jag visste inte ' den här. Är det dokumenterat någonstans? Fungerar det också med IPv6?
- @Tomasz: Det ' dokumenteras i bash-referenshandboken 3.6 Omdirigeringar . Jag ' är osäker på om det fungerar med ipv6.
Svar
Jag har ännu inte det anseende som krävs för att kommentera det inlägg som hävdar att curl inte är för ssh eller telnet. Det är inte korrekt. Curl hanterar en mängd protokoll, inklusive telnet, ssh, scp, sftp, ftps och mer.
Detta är den korrekta syntaxen för curl:
curl -v telnet://127.0.0.1:22
Svar
curl
är för HTTP / HTTPS / FTP; inte för SSH eller Telnet.
Jag skulle bara använda netcat:
testport=22 # 22 for ssh; 23 for telnet; 80 for HTTP; etc. while read ip; do if nc -w2 -z $ip $testport; then echo $ip up else echo $ip down fi >> testresults.txt done < hostlist.txt
Lämna ett svar