API를 이용한 개발을 진행하다보면 서버에 해당하는 포트의 방화벽 오픈 및 실제로 서비스가 올라가 있는 지 등의 확인이 필요할 때가 있다. 

 

그럴 때 주로 사용하는 리눅스 명령어로 telnet, netstat -tnlp가 있으며 아래의 순서대로 해야 헤맬 일이 없다.

 

1. 호출 대상이 되는(Target) 서버의 포트가 listen 상태인지 확인한다. 

-> netstat -tnlp* 명령어를 입력하면 Local Address에 0.0.0.0:port의 형태로 source로부터 API 요청을 받는 port가 오픈되어있는지 확인할 수 있다. 

현재 실행되고 있는 서비스를 조회할 수 있다. 

2. netstat -tnlp로 state가 listen인 것을 확인하면 Target을 호출하는 Source 서버에서 telnet 172.0.0.1 8080( telnet target서버 port)의 명령어를 입력한다.

-> telnet IP/도메인 443

telnet을 통한 접속 시도 시 해당 IP/도메인에 해당하는 포트가 정상적으로 열렸을 경우

 

telnet을 통한 접속 시도 시 해당하는 포트가 열리지 않았을 경우
방화벽은 오픈되었으나 프로세스가 꺼져있는 경우

위 두개의 netstat -tnlp, telnet 명령어로 각각 target, source 서버의 호출해야할 포트 listen 상태 및 target 서버의 방화벽이 오픈되어있는지 프로세스가 실행되고 있는지 확인할 수 있다.

 

*tnlp는 netstat 명령어의 옵션이다. 

 

옵션명 의미 설명
t tcp tcp로 연결된 포트
n number port 프로세스의 포트
l listen 프로세스의 연결 상태
p PID 프로세스를 사용하고 있는 서비스명
u udp udp로 연결된 포트
a all 수신 대기 및 연결된 모든 포트
r   라우팅 테이블

 

잘못된 정보 및 추가하면 더 좋을 내용, 문의 사항 댓글로 남겨 주셔도 좋습니다 :)

반응형
Posted by UIJ