숏컷 코드
ip addr
ip route
ss -tulpn
ss -ltnp
curl -I http://localhost:8080
curl -v http://example.com| 질문 | 먼저 볼 명령 |
|---|---|
| 서버에 어떤 IP가 붙어 있나 | ip addr |
| 기본 gateway와 route는 무엇인가 | ip route |
| 어떤 포트가 listen 중인가 | ss -ltnp |
| TCP/UDP listen 상태 전체 | ss -tulpn |
| HTTP 헤더만 확인 | curl -I |
| 연결 과정을 자세히 보기 | curl -v |
진단 흐름
네트워크 문제는 보통 세 층으로 나누어 봅니다. 첫째, 서버 자신에게 올바른 IP와 route가 있는지 확인합니다. 둘째, 프로세스가 원하는 포트에서 listen 중인지 확인합니다. 셋째, 실제 HTTP나 TCP 요청이 성공하는지 확인합니다.
ip addr
ip route
ss -ltnp
curl -I http://localhost:8080ss -ltnp는 TCP listen 포트와 프로세스 정보를 보여 줍니다. 권한이 부족하면 프로세스 이름이나 PID가 일부 보이지 않을 수 있으므로, 운영 서버에서는 필요한 경우 sudo ss -ltnp로 확인합니다.
localhost 성공과 외부 접속 성공은 다르다
curl http://localhost:8080이 성공해도 외부에서 접속 가능하다는 뜻은 아닙니다. 서비스가 127.0.0.1에만 바인딩되어 있으면 같은 서버 안에서는 접속되지만 외부에서는 접속할 수 없습니다. 외부 노출이 필요하면 listen 주소, 방화벽, 클라우드 보안 그룹, 포트 포워딩을 함께 확인해야 합니다.
ss -ltnp | grep 8080
curl -I http://127.0.0.1:8080
curl -I http://<server-ip>:8080체크포인트
| 증상 | 확인 순서 |
|---|---|
| 서버 IP가 예상과 다름 | ip addr |
| 외부로 나가지 못함 | ip route, DNS 설정 |
| 포트가 열리지 않음 | ss -ltnp |
| localhost만 됨 | bind address 확인 |
| HTTP 상태가 이상함 | curl -I, curl -v |
| TLS나 redirect 의심 | curl -v |
주의할 점
포트가 listen 중이라는 사실만으로 애플리케이션이 정상이라는 뜻은 아닙니다. 프로세스 listen 상태와 애플리케이션 레벨 응답을 함께 확인하십시오.
ss -ltnp | grep 8080
curl -fsS http://localhost:8080/health참고 링크
3 sources