Server
[ Linux ] 리눅스 서버에서 port를 체크해보자
Lcoding
2025. 1. 22. 11:29
반응형
안녕하세요.
오늘은 리눅스 서버에서 port를 체크해볼건데요.
리눅스에서 특정 포트에 대한 연결 가능 여부를 확인하기 위해 사용되는 명령어인 telnet, curl, ssh, nc에 대하여 알아보겠습니다.
각각 작동 방식과 용도가 다르기 때문에 결과에 차이가 있을 수 있습니다. 이를 하나씩 살펴보겠습니다:
telnet 127.10.10.101 8000
curl 127.10.10.101:8000
ssh 127.10.10.101 8000
nc 127.10.10.101 8000
예를들어 위와 같이 명령어를 실행할 경우에 어떠한 결과가 나올지 알아보겠습니다.
1. telnet 127.10.10.101 8000
- 작동 방식 -
telnet은 TCP 연결을 시도합니다. 지정한 IP와 포트에 대해 연결이 가능한지 확인하며, 연결이 성공하면 빈 화면(혹은 연결된 서비스의 초기 응답)을 보여줍니다. - 결과 -
- 연결 성공 시: 서비스에 접속하며, 서비스의 응답을 볼 수 있습니다(예: HTTP 서버라면 HTTP 응답).
- 연결 실패 시: "Connection refused" 또는 "Connection timed out" 오류 메시지가 출력됩니다.
2. curl 127.10.10.101:8000
- 작동 방식 -
curl은 HTTP/HTTPS 요청을 보내는 도구입니다. 지정한 포트에서 동작 중인 HTTP 서버가 존재해야 의미 있는 결과를 반환합니다.- TCP 레벨의 연결 성공 여부를 확인하는 데 초점이 맞춰져 있지 않으며, 주로 응답 데이터(예: HTML, JSON)를 받아옵니다.
- 결과 -
- HTTP 서버가 실행 중이라면 정상적으로 데이터를 받아옵니다.
- 포트가 열려 있어도 HTTP 서버가 아니거나, 포트가 닫혀 있다면 오류 메시지가 출력됩니다(예: "Connection refused").
3. ssh 127.10.10.101 8000
- 작동 방식 -
ssh는 TCP 22번 포트(기본 SSH 포트)를 사용해 원격 서버에 접속하기 위한 도구입니다. 명령에서 8000이라는 포트를 명시하면 SSH 클라이언트는 해당 포트에서 SSH 프로토콜에 맞는 응답을 기다립니다.- 지정된 포트에서 SSH 서버가 실행 중이지 않다면 연결이 실패합니다.
- 결과 -
- 8000번 포트에서 SSH 서버가 실행 중이라면 성공적으로 연결됩니다.
- 포트가 닫혀 있거나 SSH 프로토콜이 아닌 서비스가 실행 중이라면 "Connection refused" 또는 "Protocol mismatch" 오류가 발생합니다.
4. nc 127.10.10.101 8000
- 작동 방식 -
nc(Netcat)는 TCP/UDP 연결을 생성하거나 데이터를 전송하는 범용 네트워크 도구입니다. 지정한 IP와 포트에 대해 기본적인 TCP 연결을 시도합니다.- 서비스의 종류에 상관없이 연결 상태를 확인할 수 있습니다.
- 결과 -
- 연결 성공 시: 연결이 성공하고, 추가적으로 데이터를 전송하거나 수신할 수 있습니다.
- 연결 실패 시: "Connection refused" 또는 "Connection timed out" 메시지가 출력됩니다.
5. 결과 요약
명령어 | 프로토콜 | 주 용도 | 결과 차이 |
telnet | TCP | 포트 연결 확인 및 기본 데이터 확인 | TCP 연결 확인에 적합 |
curl | HTTP/HTTPS | HTTP 요청/응답 확인 | HTTP 서버가 있어야 의미 있는 결과 |
ssh | TCP (SSH) | SSH 서버 연결 | SSH 서버가 있어야 연결 가능 |
nc | TCP/UDP | 범용 네트워크 연결 테스트 | 가장 유연하고 다목적 사용 가능 |
- 포트 열림 여부만 확인하려면 telnet이나 nc를 사용하는 것이 적합합니다.
- HTTP 서비스를 확인하려면 curl을 사용합니다.
- SSH 접속 여부 확인에는 ssh가 필요합니다.
반응형