리눅스 네트워크 명령어 — ip·ping·curl·ss
"인터넷이 안 돼요" — 그게 와이파이 문제인지, DNS 문제인지, 그 서버가 죽은 건지. 한 줄씩 짚어 원인을 좁히는 명령어들.
3편에서 "온라인 계정 연결"·"와이파이 연결"을 GUI로 했죠. 12편에선 tail -f /var/log/syslog로 로그를 봤고요. 이번엔 네트워크가 안 될 때 명령어로 원인을 찾는 법입니다 — "인터넷 안 돼요"라는 막연한 증상을, "와이파이는 붙었나 → IP는 받았나 → 게이트웨이엔 닿나 → 인터넷엔 닿나 → DNS는 되나 → 그 사이트 서버가 죽었나"로 한 단계씩 좁히는 거예요.
핵심 도구 — ip(내 주소·경로), ping(닿나?), dig(DNS), curl·wget(가져오기), ss(열린 포트). 옛날 문서의 ifconfig·netstat는 요즘 ip·ss로 대체됐어요(없으면 sudo apt install net-tools로 옛것도 깔리지만, 새것을 익히세요). 26편 입문 시리즈 16편, "중급" 묶음. 다 보는 명령이라 안전합니다.
내 네트워크 상태 — ip a · ip route
"나는 지금 어떤 IP를 갖고 있고, 어디로 나가나"를 봅니다.
여기서 보는 것: ① 인터페이스가 state UP인가(와이파이/랜이 켜졌나) → ② inet 줄에 192.168.x.x 같은 IP가 있나(공유기한테 주소를 받았나 — 없으면 와이파이 인증 문제) → ③ ip route에 default via가 있나(나갈 문을 아나). 이 셋이 멀쩡하면 "내 쪽 기본"은 OK고, 그다음은 "닿나"를 봅니다.
닿나? — ping · traceroute · dig
연결을 단계별로 테스트합니다. 가까운 데부터 → 먼 데로.
ping 192.168.0.1(공유기) → ping 8.8.8.8(인터넷, IP로) → ping google.com(인터넷, 이름으로). 어디서 처음 실패하는지가 곧 문제 위치 — 공유기에서 실패=내 와이파이/케이블, 8.8.8.8에서 실패=회선/공유기 인터넷, 이름에서만 실패=DNS. DNS 문제면 임시로 resolvectl query google.com으로 확인하거나 설정에서 DNS를 8.8.8.8/1.1.1.1로 바꿔보면 됩니다.뭔가 가져오기 — curl · wget
이 둘은 "URL에서 데이터를 받아오는" 도구. 명령줄에서 웹을 다루는 기본기예요.
요약: 빠르게 "이 URL 살아있나/뭐 응답하나" = curl -I 주소(헤더만). API 응답 보기 = curl -s 주소 | jq. 파일 다운 = wget 주소 또는 curl -LO 주소. (curl은 옵션이 어마어마하게 많은데, -I·-s·-L·-o 넷이면 일상은 됩니다.)
누가 듣고 있나 — ss, 그리고 진단 순서
"내 컴퓨터의 어떤 프로그램이 어느 포트를 열어놓고 연결을 기다리나(LISTEN)" — 서버를 돌릴 때나 "이 포트 이미 쓰는 중" 에러가 날 때 봅니다.
ip a — 와이파이 인터페이스 UP이고 192.168.x.x IP 받았나? (아니면 와이파이 재연결) → ② ip route — default via 있나? → ③ ping -c4 192.168.0.1(또는 ②의 게이트웨이) — 공유기 닿나? (아니면 케이블/와이파이/공유기) → ④ ping -c4 8.8.8.8 — 인터넷 닿나? (아니면 회선/ISP) → ⑤ ping -c4 google.com — 이름도 되나? (8.8.8.8만 되고 이건 안 되면 DNS — 설정에서 DNS 바꿔보기) → ⑥ 그 사이트만 안 되면 → curl -I 그URL로 그쪽 서버 응답 확인 (그쪽이 죽었을 수도). 이 사다리만 따라가면 "그냥 안 돼요"가 "DNS 문제네"로 좁혀집니다.ip a(IP)·ip route(게이트웨이)·hostname -I. 닿나: ping -c4 대상(가까운→먼 순)·traceroute 대상·dig 이름 +short(DNS). 가져오기: curl -I 주소(헤더)·curl -s 주소 | jq(API)·wget 주소(파일). 듣는 포트: ss -tlnp. 옛것↔새것: ifconfig→ip a, netstat→ss, nslookup→dig. 진단은 항상 "가까운 데부터 먼 데로" 사다리.시리즈 흐름
- 1~13편 입문·기초·vim ✔ 14편 프로세스 ✔ 15편 디스크 ✔
- 16편 — 네트워크 명령어 (이 글) ✔
- 17편 — 우분투 방화벽 ufw (어느 포트를 열고 닫나 — 서버 보안의 기본)
- 18편~ — SSH 키 / systemd 서비스 / cron / 셸 스크립트 …
오늘 할 일: ip a·ip route로 내 IP와 게이트웨이를 확인하고, ping -c4 8.8.8.8 → ping -c4 google.com → dig google.com +short 순서로 쳐보세요. (다 잘 되면 다행 — 안 될 때 이 사다리가 진가를 발휘합니다.) 그리고 curl -I https://junai.ai 한 번 — HTTP/2 200이 떠야 정상. ss -tlnp로 내 컴퓨터가 어떤 포트를 열어놨는지도 한 번 보고요. 17편에서 만나요. (네트워크 명령 전체는 man ip·man ss·man curl, 또는 우분투 서버 문서.)