텔넷 VIA 포트를 테스트하기 위해 다음을 사용할 수 있습니다. 다음 예제에서 포트 6667을 테스트합니다.
[root@kafka03 ~]# telnet kafka02 6667
Trying 103.64.35.86...
Connected to kafka02.
Escape character is '^]'.
^CConnection closed by foreign host
일부 컴퓨터에서는 텔넷을 사용할 수 없습니다 (내부 이유로) 텔넷으로 포트를 확인하는 대안은 무엇입니까?
답변
Bash Shell을 사용하는 경우 해당 기능을 사용하여 포트가 열려 있는지 또는 닫혀 있는지 확인할 수 있습니다.
(timeout 1 bash -c '</dev/tcp/127.0.0.1/17500 && echo PORT OPEN || echo PORT CLOSED') 2>/dev/null
PORT OPEN
(timeout 1 bash -c '</dev/tcp/127.0.0.1/7500 && echo PORT OPEN || echo PORT CLOSED') 2>/dev/null
PORT CLOSED
1 초 후에 서버가 응답하지 않으면 시간 종료에 도달하면 명령이 '
중단되어 아무 것도 인쇄되지 않습니다.
답변
netcat은 하나의 옵션입니다.
nc -zv kafka02 6667
-z
= 실제로 데몬을 보내지 않고 리스닝 데몬을 스캔하도록 nc를 설정합니다.-v
= 상세 모드를 사용합니다.
답변
골드 표준은 의심 할 여지없이 nmap
( nmap.org ), 일반적으로“최상의 결과”를 위해 근본이 필요합니다. 그러나 독립 실행 형 바이너리를 사용할 수 있으며 성능이 저하 된 권한이있는 권한이없는 사용자로 실행할 수 있습니다. 예를 들어, 스텔스 syn
스캔 ( -sS
) 대신 표준 TCP 연결 스캔 ( -sT
)으로 대체됩니다 . 이것은 기능적으로 netcat과 동일하지만 훌륭한 멀티 호스트 속도 향상 기능이 있습니다.
예를 들면 :
not-root$ nmap -sT google.com
Starting Nmap 7.70 ( https://nmap.org ) at 2018-11-04 21:01 GMT
Nmap scan report for google.com (172.217.23.14)
Host is up (0.12s latency).
rDNS record for 172.217.23.14: lhr35s01-in-f14.1e100.net
Not shown: 998 filtered ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
답변
Perl이 옵션 인 경우 해당 IO::Socket
모듈을 사용 하여 특정 호스트 및 포트에 대한 연결을 테스트 할 수 있습니다 . 아래 스크립트는 TCP를 프로토콜로 하드 코딩합니다 (telnet이 사용하는 것입니다).
#!/usr/bin/perl -w
# tries to connect to the given IP and port (tcp)
use strict;
use IO::Socket;
my $desthost = shift or die "Usage: $0 host port\n";
my $destport = shift or die "Usage: $0 host port\n";
gethostbyname($desthost) || die "Invalid host given\n";
my $handle = IO::Socket::INET->new(
PeerAddr => $desthost,
PeerPort => $destport,
Proto => 'tcp')
or die "can't connect to $desthost:$destport: $!\n";
close $handle;
print "Success!\n"
닫힌 포트의 샘플 출력 :
$ ./above-script kafka02 6667
can't connect to kafka02:6667: Connection refused
열린 포트에서 샘플 출력 :
$ ./above-script kafka02 4200
Success!
답변
텔넷 대신 장치 파일 / dev / tcp 및 / dev / udp를 사용할 수 있습니다. 예 : echo 0> /dev/tcp/103.64.35.86/6667. 그런 다음 #echo $?를 사용하여 종료 상태를 확인하십시오. . 종료 상태가 0이면 포트가 열립니다. 종료 상태가 0이 아닌 경우 포트가 닫힙니다. udp 패킷을 확인하려면 echo 0> /dev/udp/103.64.35.86/6667을 사용하십시오.
답변
ss -lt
이것은 사용할 수있는 또 다른 명령입니다.