Articles
Test forbindelse til værter i fil på port 22 med curl-kommando
On december 31, 2020 by adminId vil gerne tilslutte følgende “curl” -kommando til et bash-script og køre det mod en hostfil af ip-adresser viser derefter output som succes eller fiasko i en outputfil.
curl -v telnet 10.10.10.10:22
Er dette muligt?
Svar
Brug af den indbyggede bash til at kontrollere for åbne porte fungerer muligvis også:
#!/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
- Jeg kendte ikke ' denne. Er det dokumenteret hvor som helst? Fungerer det også med IPv6?
- @Tomasz: Det ' er dokumenteret i bash-referencehåndbogen 3.6 Omdirigeringer . Jeg ' er usikker på, om det fungerer med ipv6.
Svar
Jeg har endnu ikke det nødvendige ry for at kommentere det indlæg, der hævder, at krølle ikke er til ssh eller telnet. Det er ikke korrekt. Curl håndterer en lang række protokoller, herunder telnet, ssh, scp, sftp, ftps og mere.
Dette er den korrekte syntaks for krølle:
curl -v telnet://127.0.0.1:22
Svar
curl
er til HTTP / HTTPS / FTP; ikke til SSH eller Telnet.
Jeg bruger bare 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
Skriv et svar