텔넷 외에 열린 포트를 확인하는 다른 방법은 무엇입니까?

텔넷 외에 열린 포트를 확인하는 다른 방법은 무엇입니까?

다음 예에서는 다음 명령을 사용하여 텔넷 VIA 포트를 테스트할 수 있습니다. 포트 6667을 테스트합니다.

[root@kafka03 ~]# telnet kafka02 6667
Trying 103.64.35.86...
Connected to kafka02.
Escape character is '^]'.
^CConnection closed by foreign host

일부 시스템에서는 (내부 이유로 인해) 텔넷을 사용할 수 없으므로 포트를 확인하기 위한 어떤 대안이 있습니까(예: 텔넷)?

답변1

인터넷 고양이( nc)는 옵션입니다.

nc -zv kafka02 6667
  • -z= 실제로 데이터를 보내지 않고 청취 데몬만 스캔하도록 nc를 설정합니다.
  • -v= 상세 모드 활성화

답변2

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초 후에도 서버가 응답하지 않으면 시간 초과에 도달하고 그 사이의 명령이 '중단되어 아무 것도 인쇄되지 않습니다.

답변3

"컬"은 삶을 더 쉽게 만들어 줄 수 있습니다. 루트가 필요하지 않습니다. 컬은 모든 Linux 시스템에서 쉽게 작동합니다.

  1. 포트가 열려 있지 않으면 다음 출력이 표시됩니다.

    [niti@SourceServerName ~]$ curl -vv telnet://DestinationServerName:80
    
    * About to connect() to DestinationServerName port 80 (#0)
    *   Trying 192.168.0.100...
    
  2. 포트가 열려 있으면 다음 출력이 표시됩니다.

    [niti@SourceServerName ~]$ curl -vv telnet://DestinationServerName:443
    
    * About to connect() to DestinationServerName port 443 (#0)
    *   Trying 192.168.0.100...
    * Connected to DestinationServerName (192.168.0.100) port 443 (#0)
    

Ctrl + C그만두다.

답변4

Perl이 옵션인 경우 이를 사용할 수 있습니다.IO::Socket특정 호스트 및 포트에 대한 연결을 테스트하기 위한 모듈. 다음 스크립트는 TCP를 프로토콜로 하드코딩합니다(텔넷이 사용할 프로토콜).

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

관련 정보