네트워크 디버깅 명령
IP 명령
ip은 기존 ifconfig 명령을 대체합니다.
| 명령 | 설명 |
|---|---|
ip link show | 모든 네트워크 인터페이스 표시 |
ip addr show | IP 주소 표시 |
ip -4 addr show | IPv4 주소만 표시 |
ip -6 addr show | IPv6 주소만 표시 |
ip route show | 라우팅 테이블 표시 |
ip route get 8.8.8.8 | 특정 IP에 대한 경로 표시 |
sudo ip link set enp0s3 up | 네트워크 인터페이스 활성화 |
sudo ip link set enp0s3 down | 네트워크 인터페이스 비활성화 |
sudo ip addr add 192.168.1.100/24 dev enp0s3 | 임시로 IP 추가 |
sudo ip route add 10.0.0.0/8 via 192.168.1.1 | 임시로 경로 추가 |
ip neigh show | 이웃 테이블 표시(ARP) |
ss 명령
ss은 기존 netstat 명령을 대체합니다. 플래그: -t TCP, -u UDP, -l 청취 중, -n 이름 확인 없음, -p 쇼 프로세스.
| 명령 | 설명 |
|---|---|
ss -tlnp | 모든 수신 포트 표시 |
ss -tnp | 모든 TCP 연결 표시 |
ss -ulnp | 모든 UDP 포트 표시 |
ss -tlnp | grep :80 | 특정 포트를 확인하세요 |
ss -tlnp sport = :443 | 포트 번호로 필터링 |
ss -s | 연결 통계 표시 |
ss -tnp | grep process-name | 프로세스에 대한 네트워크 연결 표시 |
핑
| 명령 | 설명 |
|---|---|
ping -c 4 8.8.8.8 | 연결 테스트 |
ping -c 10 -i 0.5 -s 1400 target-IP | 개수, 간격, 패킷 크기 지정 |
ping6 ::1 | IPv6 핑 |
ping -c 1 -W 1 192.168.1.1 && echo "online" || echo "offline" | 빠른 호스트 온라인 확인 |
추적 경로/추적 경로
| 명령 | 설명 |
|---|---|
traceroute www.example.com | 경로 경로 추적 |
sudo traceroute -I www.example.com | ICMP를 사용하여 추적 |
sudo traceroute -T -p 80 www.example.com | TCP를 이용한 추적(방화벽 침투) |
tracepath www.example.com | 경로 추적(루트 필요 없음) |
mtr www.example.com | 핑 + 경로 추적 결합(mtr-tiny 설치) |
발굴 / nslookup
| 명령 | 설명 |
|---|---|
dig www.example.com | DNS 조회 |
dig +short www.example.com | 짧은 출력 |
dig MX example.com | MX 레코드 쿼리 |
dig AAAA www.example.com | IPv6 레코드 쿼리 |
dig NS example.com | 쿼리 네임서버 |
dig TXT example.com | TXT 레코드 쿼리 |
dig @8.8.8.8 www.example.com | 특정 DNS 서버를 사용하여 쿼리 |
dig -x 8.8.8.8 | 역방향 조회 |
nslookup www.example.com | 간단한 DNS 조회 |
nslookup www.example.com 8.8.8.8 | DNS 서버 지정 |
컬
| 명령 | 설명 |
|---|---|
curl https://www.example.com | GET 요청 |
curl -I https://www.example.com | 응답 헤더 표시 |
curl -v https://www.example.com | 자세한 정보 표시 |
curl -o /dev/null -s -w "%{http_code}\n" https://www.example.com | HTTP 상태 코드만 표시 |
curl -X POST -d "key=value" https://api.example.com | POST 요청 |
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com | JSON POST |
curl -O https://example.com/file.zip | 파일 다운로드(원본 이름 유지) |
curl -o newname.zip https://example.com/file.zip | 파일 다운로드(맞춤 이름) |
curl -o /dev/null -s -w "DNS: %{time_namelookup}s\nConnect: %{time_connect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" https://www.example.com | 테스트 연결 타이밍 |
curl -x http://proxy:8080 https://www.example.com | 프록시를 통한 요청 |
wget
| 명령 | 설명 |
|---|---|
wget https://example.com/file.zip | 파일 다운로드 |
wget -c https://example.com/large-file.iso | 중단된 다운로드 재개 |
wget -b https://example.com/large-file.iso | 백그라운드 다운로드 |
wget --limit-rate=1M https://example.com/file.zip | 속도 제한 다운로드 |
NetworkManager 명령
| 명령 | 설명 |
|---|---|
nmcli general status | 연결 상태 확인 |
nmcli connection show | 모든 연결 표시 |
nmcli device wifi list | Wi-Fi 네트워크 나열 |
nmcli device status | 장치 상태 표시 |
sudo systemctl restart NetworkManager | 네트워킹 다시 시작 |
방화벽 디버깅
| 명령 | 설명 |
|---|---|
sudo ufw status verbose | UFW 상태 |
sudo iptables -L -n -v | iptables 규칙 |
sudo nft list ruleset | nftables 규칙 |
포괄적인 문제 해결 흐름
| 단계 | 명령 | 설명 |
|---|---|---|
| 1 | ip link show | 인터페이스가 작동 중인지 확인 |
| 2 | ip addr show | IP 주소 확인 |
| 3 | ip route show | 게이트웨이 확인 |
| 4 | ping -c 2 gateway-IP | 게이트웨이 연결 테스트 |
| 5 | ping -c 2 8.8.8.8 | 인터넷 연결 테스트 |
| 6 | dig www.example.com | DNS 테스트 |
| 7 | curl -I https://www.example.com | HTTP 테스트 |