다음 예에서는 다음 명령을 사용하여 텔넷 VIA 포트를 테스트할 수 있습니다. 포트 6667을 테스트합니다.
[root@kafka03 ~]# telnet kafka02 6667
Trying 103.64.35.86...
Connected to kafka02.
Escape character is '^]'.
^CConnection closed by foreign host
일부 시스템에서는 (내부 이유로 인해) 텔넷을 사용할 수 없으므로 포트를 확인하기 위한 어떤 대안이 있습니까(예: 텔넷)?
답변1
답변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 시스템에서 쉽게 작동합니다.
포트가 열려 있지 않으면 다음 출력이 표시됩니다.
[niti@SourceServerName ~]$ curl -vv telnet://DestinationServerName:80 * About to connect() to DestinationServerName port 80 (#0) * Trying 192.168.0.100...
포트가 열려 있으면 다음 출력이 표시됩니다.
[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!