서비스를 테스트하거나 포트를 열기 위해 텔넷을 사용하시겠습니까?

서비스를 테스트하거나 포트를 열기 위해 텔넷을 사용하시겠습니까?

나는 종종 사람들이 다음과 같은 포트를 테스트하는 것을 봅니다:

//shell
telnet ip-address 80
telnet ip-address 25

AFAIK 텔넷은 원격 장치에 액세스하는 오래된 방법입니다. 그렇죠? 아니면 그렇게 생각했는데...

예를 들어 왜 텔넷을 통해 smtp 포트에 연결할 수 있습니까?

답변1

이는 편의를 위한 것이지만 사용자 수준 이하의 진단이기도 합니다. 이 방법으로 서비스에서 발생한 문제를 격리할 수 있습니다. 예를 들어 Joe는 데이터베이스 서버와 클라이언트를 가지고 있습니다. 그들은 의사소통을 하지 않았습니다. 네트워크에 문제가 있나요? 섬기는 사람? 고객?

Joe는 클라이언트 컴퓨터로 가서 셸을 엽니다. 그는 당신이 설명한 대로 텔넷을 사용합니다:

telnet server.ip.com 3333

클라이언트 프로그램인 것처럼 명령을 입력합니다.

WHO;

서버 응답

'11','JOE.CORP.COM'

(정말 멍청한 서버네요)

이런 방식으로 Joe는 서버에 대한 네트워크 링크가 정상이고 클라이언트가 올바르게 구성되지 않았을 수 있음을 알게 됩니다.

답변2

텔넷은 매우 간단한 프로토콜로, 클라이언트에 입력하는 모든 내용(몇 가지 예외 제외)이 네트워크로 전송되고 네트워크의 모든 내용이 터미널에 표시됩니다. 예외는 일부 특수 통신 상태를 설정하는 0xFF 바이트입니다. 통신에 이 바이트가 포함되지 않는 한 모든 TCP 포트에서 텔넷을 원시 통신 클라이언트로 사용할 수 있습니다.

즉, 이는 순전히 편의를 위한 것입니다.

답변3

예를 들어 왜 텔넷을 통해 smtp 포트에 연결할 수 있습니까?

smtp텔넷 프로토콜은 일반 텍스트로 구현되기 때문입니다 . 따라서 telnet클라이언트를 사용하면 기본적으로 일반 텍스트를 구현하는 특정 프로토콜을 사용하여 모든 포트에 연결할 수 있으며 해당 프로토콜을 사용하여 통신하는 방법을 알 수 있습니다.

답변4

netcat을 사용하지 않고 ncTelnet을 사용하는 이유는 무엇입니까?

테스트 도구 dda-serverspec에서 netcat을 사용합니다 - 정확한 명령

nc [host] [port] -z -w [timeout]

(바라보다https://github.com/DomainDrivenArchitecture/dda-serverspec-crate/blob/61f44990b07779328ffca0ce7081a7eb1ef9d46b/main/src/dda/pallet/dda_serverspec_crate/infra/fact/netcat.clj#L59)

관련 정보