컬 명령을 사용하여 포트 22의 파일에서 호스트에 대한 연결을 테스트합니다.

컬 명령을 사용하여 포트 22의 파일에서 호스트에 대한 연결을 테스트합니다.

다음 "curl" 명령을 bash 스크립트에 삽입하고 IP 주소에 대한 호스트 파일에 대해 실행한 다음 출력 파일에 성공 또는 실패로 출력을 표시하고 싶습니다.

curl -v telnet 10.10.10.10:22

가능합니까?

답변1

나는 아직 컬이 SSH나 텔넷에서 작동하지 않는다고 주장하는 게시물에 댓글을 달 만큼 필요한 평판을 얻지 못했습니다. 이는 정확하지 않습니다. Curl은 telnet, ssh, scp, sftp, ftps 등을 포함한 다양한 프로토콜을 처리할 수 있습니다.

이것은 컬의 올바른 구문입니다.

curl -v telnet://127.0.0.1:22

답변2

열려 있는 포트를 확인하기 위해 bash 내장 명령을 사용하는 것도 가능합니다:

#!/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"

답변3

curl일반적으로 HTTP/HTTPS/FTP에 사용되며 SSH 또는 Telnet에는 덜 중요합니다.

저는 그냥 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

관련 정보