Articles
Otestujte připojení k hostitelům v souboru na portu 22 pomocí příkazu curl
On 31 prosince, 2020 by adminChtěl bych připojit následující příkaz „curl“ do bash skriptu a spustit jej proti hostitelskému souboru IP adres pak zobrazí výstup jako úspěch nebo neúspěch ve výstupním souboru.
curl -v telnet 10.10.10.10:22
Je to možné?
Odpověď
Může také fungovat použití vestavěného bash ke kontrole otevřených portů:
#!/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"
Komentáře
- Ten jsem ' neznal. Je to někde zdokumentováno? Funguje to také s IPv6?
- @Tomasz: Je to ' zdokumentováno v referenční příručce bash 3.6 Přesměrování . ' si nejsem jistý, jestli to funguje s ipv6.
Odpovědět
Ještě nemám pověst potřebnou k komentování příspěvku, který tvrdí, že zvlnění není pro ssh nebo telnet. To není přesné. Curl zpracovává množství protokolů, včetně telnetu, ssh, scp, sftp, ftps a dalších.
Toto je správná syntaxe pro zvlnění:
curl -v telnet://127.0.0.1:22
Odpověď
curl
je pro HTTP / HTTPS / FTP; ne pro SSH nebo Telnet.
Použil bych pouze 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
Napsat komentář