![컬 명령을 사용하여 포트 22의 파일에서 호스트에 대한 연결을 테스트합니다.](https://linux55.com/image/135650/%EC%BB%AC%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8F%AC%ED%8A%B8%2022%EC%9D%98%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%ED%98%B8%EC%8A%A4%ED%8A%B8%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%97%B0%EA%B2%B0%EC%9D%84%20%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%A9%EB%8B%88%EB%8B%A4..png)
다음 "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