IT 기술 문서

2025.02.01 17:19

CentOS 7 유용한 명령어 시리즈 - ⑬ 네트워크 문제 해결 및 트러블슈팅

  • it2033 4일 전 2025.02.01 17:19
  • 6
    0

alt text

CentOS 7 서버에서 네트워크 문제를 해결하는 것은 원활한 운영을 위해 매우 중요합니다. 네트워크 연결, 포트 상태, 방화벽 문제 등을 진단하고 해결하는 명령어들을 정리하겠습니다.


1. 네트워크 인터페이스 및 IP 주소 확인

1.1. 현재 네트워크 인터페이스 및 IP 주소 확인

ip a
  • 시스템에서 사용 중인 네트워크 인터페이스(IP 주소 포함)를 확인합니다.

출력 예시:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
  • eth0 네트워크 인터페이스가 192.168.1.100 IP를 사용 중입니다.

1.2. 현재 라우팅 테이블 확인

ip route
  • 네트워크 라우팅 경로를 확인하여 기본 게이트웨이를 확인합니다.

출력 예시:

default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100
  • 192.168.1.1이 기본 게이트웨이입니다.


2. 네트워크 연결 확인

2.1. 특정 서버에 대한 연결 상태 확인 (Ping)

ping -c 4 google.com
  • google.com에 4번 ping을 보내 응답 속도를 확인합니다.

출력 예시:

64 bytes from 142.250.190.142: icmp_seq=1 ttl=57 time=25.1 ms
  • 응답이 정상적으로 오면 네트워크 연결이 정상입니다.

2.2. 특정 포트가 열려 있는지 확인 (Telnet)

telnet google.com 80
  • google.com80번 포트(HTTP)가 열려 있는지 확인합니다.

설치가 필요할 경우:

yum install telnet -y

2.3. 특정 포트가 열려 있는지 확인 (Netcat)

nc -zv google.com 443
  • google.com443번 포트(HTTPS)가 열려 있는지 확인합니다.


3. 방화벽 및 포트 상태 확인

3.1. 현재 방화벽 규칙 확인

firewall-cmd --list-all
  • 현재 적용된 방화벽 설정을 확인합니다.

3.2. 특정 포트가 방화벽에서 허용되었는지 확인

firewall-cmd --list-ports
  • 방화벽에서 허용된 포트 목록을 확인합니다.

3.3. 특정 포트를 방화벽에서 허용

firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
  • 8080번 포트를 방화벽에서 영구적으로 허용하고 설정을 다시 로드합니다.

3.4. 특정 포트를 방화벽에서 차단

firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --reload
  • 8080번 포트를 방화벽에서 차단합니다.


4. 네트워크 포트 및 연결 확인

4.1. 현재 열린 포트 및 연결된 프로세스 확인

netstat -tulnp
  • 현재 열려 있는 포트 및 연결된 프로세스를 확인합니다.

설치 필요 시:

yum install net-tools -y

출력 예시:

Proto Recv-Q Send-Q Local Address  Foreign Address   State   PID/Program name
tcp        0      0 0.0.0.0:22     0.0.0.0:*         LISTEN  1234/sshd
tcp6       0      0 :::80          :::*              LISTEN  2345/httpd
  • 22번 포트는 sshd에서 사용 중.

  • 80번 포트는 httpd(Apache)에서 사용 중.

4.2. 특정 프로세스가 사용 중인 포트 확인

lsof -i :80
  • 80번 포트를 사용 중인 프로세스를 확인합니다.

설치 필요 시:

yum install lsof -y

출력 예시:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd    2345 root  10u  IPv4  12345      0t0  TCP *:http (LISTEN)
  • httpd(Apache)80번 포트를 사용 중임을 알 수 있습니다.


5. 네트워크 트래픽 모니터링

5.1. 실시간 네트워크 트래픽 확인 (iftop)

yum install iftop -y
iftop -i eth0
  • eth0 인터페이스의 실시간 네트워크 트래픽을 모니터링합니다.

5.2. 네트워크 패킷 캡처 (tcpdump)

tcpdump -i eth0 port 80
  • eth0 인터페이스에서 80번 포트로 주고받는 패킷을 캡처합니다.

설치 필요 시:

yum install tcpdump -y

출력 예시:

13:21:02.123456 IP 192.168.1.100.50234 > 142.250.190.142.http: Flags [S], seq 0, win 29200, options [mss 1460], length 0
  • 웹 서버로 가는 HTTP 패킷을 실시간으로 확인할 수 있습니다.


6. 네트워크 문제 해결

6.1. DNS 문제 확인

nslookup google.com
  • google.com 도메인이 올바른 IP로 변환되는지 확인합니다.

설치 필요 시:

yum install bind-utils -y

출력 예시:

Non-authoritative answer:
Name:   google.com
Address: 142.250.190.142
  • google.com이 올바르게 142.250.190.142 IP로 변환됨.

6.2. 네트워크 경로 추적 (traceroute)

traceroute google.com
  • google.com으로 가는 경로를 추적하여 특정 구간에서 문제가 발생하는지 확인합니다.

설치 필요 시:

yum install traceroute -y

출력 예시:

 1  192.168.1.1 (192.168.1.1)  1.003 ms
 2  203.0.113.1 (203.0.113.1)  10.456 ms
 3  198.51.100.1 (198.51.100.1)  15.789 ms
 4  142.250.190.142 (google.com)  25.789 ms
  • 특정 구간에서 패킷 지연이나 손실이 있는지 확인할 수 있습니다.


정리

명령어

설명

ip a

네트워크 인터페이스 및 IP 확인

ip route

현재 라우팅 테이블 확인

ping -c 4 google.com

네트워크 연결 확인

netstat -tulnp

열린 포트 및 프로세스 확인

firewall-cmd --list-all

현재 방화벽 규칙 확인

firewall-cmd --permanent --add-port=8080/tcp

특정 포트 방화벽 허용

lsof -i :80

특정 포트 사용 프로세스 확인

iftop -i eth0

실시간 네트워크 트래픽 확인

tcpdump -i eth0 port 80

특정 포트의 패킷 캡처

nslookup google.com

DNS 문제 확인

traceroute google.com

네트워크 경로 추적

이번에는 네트워크 문제 해결 및 트러블슈팅 명령어를 정리했습니다. 다음 시리즈에서는 MySQL / MariaDB 관리 명령어를 다루겠습니다.

  • 공유링크 복사