텔넷을 사용하여 원격 호스트 연결 테스트

텔넷을 사용하여 원격 호스트 연결 테스트

원격 호스트에 대한 연결을 테스트하기 위해 명령줄에서 텔넷을 사용하고 있습니다. 아래는 제가 사용하고 있는 명령입니다. 호스트에 연결할 수 있다고 생각하지만 텔넷 출력을 잘 이해할 수 없습니다.

yabhi$ telnet <remote host_ipaddr> 22
Trying <remote host_ipaddr>…
Connected to <remote host>
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3
Connection closed by foreign host.

yabhi$ telnet <remote host_ipaddr> 23
Trying <remote host_ipaddr>…
telnet: connect to address <remote host_ipaddr>: Connection refused
telnet: Unable to connect to remote host

포트 22에 대한 첫 번째 텔넷 명령에서 포트 22(SSH 포트)에 대한 연결이 설정되었다는 확인을 받았습니다. 그러나 "ping" 또는 "date"(인쇄 날짜)와 같은 명령을 테스트하려고 하면 연결이 닫혔다는 오류 메시지가 나타납니다. 이 동작은 원격 호스트에 대한 연결이 설정되었음을 확인합니까?

놀랍게도 포트 23(텔넷 서버가 실행 중인 포트)에 텔넷을 연결하면 연결할 수 없다는 메시지가 나타납니다.

답변1

telnet이런 식으로 사용하면일부원시 TCP 연결. nc또는 netcatIP 네트워크 연결의 명령줄 테스트를 위한 더 나은 도구입니다.

첫 번째 인스턴스에서는 포트 22의 리스너에 연결하고 sshdSSH 핸드셰이크의 첫 번째 부분인 서버 버전 문자열을 가져옵니다.

두 번째 인스턴스에서는 telnetd일반적으로 수신 대기하는 포트 23에 연결합니다. 그러나 telnet보안 수준이 낮기 때문에 ssh일반적으로 최신 시스템에서는 기본적으로 활성화되지 않습니다. telnetd듣고 있는 것이 없기 때문에 연결할 수 없습니다 <remote_host_ipaddr>.

누구세요아니요이렇게 사용하면 원격 쉘 세션이 성립되기 telnet때문에 원격 시스템에서 또는 등의 쉘 명령을 실행할 수 ping없습니다 date. 일반적으로 네트워크를 통해 전송되는 프로토콜 관련 프로토콜의 내용을 수동으로 입력할 수 있는 네트워크 연결을 설정하고 있습니다. SSH를 사용하면 교환된 데이터가 이후에 암호화되기 때문에 초기 버전 교환 이후에 거의 정체됩니다.

보다 일반적인 용도는 HTTP, IMAP 또는 SMTP와 같은 텍스트 기반 프로토콜을 실행하는 서버를 테스트하는 것입니다.예를 들어

$ telnet <remote_host_ipaddr> 80
> GET /index.html HTTP/1.0
>
...
$

답변2

telnet포트가 열려 있고 수신 대기 중인지 확인할 수 있습니다 . 그러나 실제로 원격 호스트에서 명령을 실행하지는 않습니다. telnet주로 안전하지 않으며 모든 최신 시스템에서는 이 기능이 비활성화되어 있습니다. 이것이 포트 23에 대한 연결이 실패하는 이유이기도 합니다. 시스템이 기본 연결을 허용하지 않고 포트가 닫혀 있기 때문입니다. Connection refused방화벽이나 닫힌 포트에 의해 연결이 차단되었음을 나타냅니다.

답변3

보다 전문적인 테스트 접근 방식을 위해 테스트 도구 dda-serverspec(https://github.com/DomainDrivenArchitecture/dda-serverspec-crate) 그러한 작업을 위해. 당신은 당신의 기대치를 정의할 수 있습니다

{:netcat [{:host "mywebserver.com" :port "443"}
          {:host "telnet mywebserver.com" :port "80"}
          {:host "telnet mywebserver.com" :port "8443"}]}

그리고 로컬 호스트 또는 원격 호스트(Ssh를 통해 연결됨)에 대해 이러한 기대치를 테스트하십시오. 원격 테스트의 경우 대상을 정의해야 합니다.

{:existing [{:node-name "test-vm1"
             :node-ip "35.157.19.218"}
            {:node-name "test-vm2"
             :node-ip "18.194.113.138"}]
 :provisioning-user {:login "ubuntu"}}

테스트를 실행할 수 있습니다.java -jar dda-serverspec.jar --targets targets.edn serverspec.edn

뒤에서 우리는 netcat을 사용하여 특별한 시간 초과를 수행하거나 트래픽 설정을 최소화합니다.

관련 정보