우분투 실전 명령어 | 네트워크 점검(ip, ss, ping, curl)
언제 쓰는가
서버는 살아 있는데 API 호출이 느리거나, 특정 도메인만 접속이 안 될 때 가장 먼저 보는 묶음입니다.
"DNS 문제인지", "포트가 닫힌 건지", "그냥 외부 구간이 느린 건지"를 5분 안에 가르는 데 목적이 있습니다.
바로 쓰는 명령어
# 1) 내 NIC/IP/라우팅 상태 확인
ip -br a
ip route
# 2) 열려 있는 포트와 리슨 프로세스 확인
ss -tulpen
# 3) 대상 호스트 연결성/지연 확인
ping -c 4 8.8.8.8
ping -c 4 devlab.kr
# 4) HTTP 레벨 응답 시간/상태 코드 확인
curl -I https://devlab.kr
curl -sS -o /dev/null -w 'code=%{http_code} dns=%{time_namelookup}s conn=%{time_connect}s tls=%{time_appconnect}s ttfb=%{time_starttransfer}s total=%{time_total}s\n' https://devlab.kr
# 5) DNS 질의 결과 확인
getent hosts devlab.kr
# 6) 특정 포트 도달성 빠르게 확인
timeout 3 bash -c 'cat < /dev/null > /dev/tcp/devlab.kr/443' && echo '443 open' || echo '443 blocked'
자주 하는 실수
ping만 보고 "네트워크 정상"이라고 결론 내리기- ICMP가 열려 있어도 443/TCP는 막혀 있을 수 있습니다.
ss,/dev/tcp,curl까지 같이 봐야 정확합니다.
- ICMP가 열려 있어도 443/TCP는 막혀 있을 수 있습니다.
curl응답 코드만 확인하고 느린 구간을 놓치기- 200 OK라도 DNS, TLS, TTFB 중 어디가 느린지 분리해서 봐야 원인 파악이 빨라집니다.
ss -tulpen에서 PID/프로세스를 안 보고 포트만 보기- 같은 포트를 누가 잡고 있는지 확인하지 않으면 서비스 충돌을 놓치기 쉽습니다.
검증 방법
# DNS가 바뀌었거나 hosts를 수정한 뒤 즉시 확인
getent hosts devlab.kr
# 서비스 리슨 상태 확인
ss -tulpen | grep -E ':80 |:443 '
# 실제 HTTPS 요청 성공 여부 + 시간 지표 재확인
curl -sS -o /dev/null -w 'code=%{http_code} total=%{time_total}s\n' https://devlab.kr
정상 기준은 단순합니다.
getent hosts가 기대한 IP를 반환ss에서 필요한 포트가 LISTENcurl이 200~399 범위 코드와 합리적인time_total을 반환
실행 결과 예시
$ ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
ens33 UP 10.0.2.15/24 fe80::a00:27ff:fe4e:66a1/64
$ ip route
default via 10.0.2.2 dev ens33 proto dhcp metric 100
10.0.2.0/24 dev ens33 proto kernel scope link src 10.0.2.15 metric 100
$ ss -tulpen | grep -E ':22 |:80 |:443 '
tcp LISTEN 0 4096 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=812,fd=3))
tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1031,fd=6))
tcp LISTEN 0 511 0.0.0.0:443 0.0.0.0:* users:(("nginx",pid=1031,fd=7))
$ curl -sS -o /dev/null -w 'code=%{http_code} dns=%{time_namelookup}s conn=%{time_connect}s tls=%{time_appconnect}s ttfb=%{time_starttransfer}s total=%{time_total}s\n' https://devlab.kr
code=200 dns=0.006s conn=0.019s tls=0.071s ttfb=0.143s total=0.145s
$ timeout 3 bash -c 'cat < /dev/null > /dev/tcp/devlab.kr/443' && echo '443 open' || echo '443 blocked'
443 open
출처
- Ubuntu Server Guide
- man ip
- man ss
- curl Documentation