서버 네트워크 기본 정리

이동제·2026년 8월 20일

네트워크 학습기

목록 보기
10/18

서버가 서비스를 제공하려면 애플리케이션만 정상이어서는 부족하다. 서버가 네트워크에 제대로 연결되어 있어야 사용자가 서비스에 접근할 수 있다.
그래서 서버 엔지니어도 IP, 서브넷, 게이트웨이, DNS, 라우팅, 포트 상태 같은 기본 네트워크 요소를 이해해야 한다.

이번 장에서는 리눅스와 윈도 서버의 네트워크 설정 방법, 라우팅 테이블 관리, 그리고 장애 확인에 자주 쓰이는 명령어를 정리한다.


1. 서버 네트워크 설정 기본

서버가 네트워크에 연결되려면 다음 정보가 필요하다.

항목설명
IP 주소서버가 네트워크에서 사용하는 주소
서브넷 마스크 / Prefix같은 네트워크 범위를 구분하는 기준
게이트웨이다른 네트워크로 나갈 때 거치는 장비
DNS 서버도메인을 IP 주소로 변환해주는 서버

일반 단말은 DHCP로 자동 설정하는 경우가 많지만, 서버는 서비스 주소가 고정되어야 하므로 고정 IP를 사용하는 경우가 많다.
네트워크 설정 변경은 시스템에 직접 영향을 주므로 윈도에서는 관리자 권한, 리눅스에서는 root 또는 sudo 권한이 필요하다.


2. 리눅스 서버 네트워크 설정

리눅스 서버는 보통 GUI보다 CLI와 설정 파일로 네트워크를 관리한다. 배포판마다 설정 파일 위치와 방식이 조금씩 다르다.

CentOS

CentOS의 네트워크 설정 파일은 보통 아래 경로에 있다.

  • /etc/sysconfig/network-scripts
  • 예: /etc/sysconfig/network-scripts/ifcfg-eth0

CentOS는 인터페이스별로 설정 파일을 따로 둔다.

주요 설정 항목은 다음과 같다.

항목설명
ONBOOT부팅 시 인터페이스 활성화 여부
BOOTPROTOstatic, dhcp, none 등 IP 설정 방식
IPADDR서버 IP 주소
NETMASK서브넷 마스크
PREFIXCIDR 표기
GATEWAY기본 게이트웨이
DNS1, DNS2DNS 서버 주소

예시:

  • ONBOOT=yes
  • BOOTPROTO=static
  • IPADDR=10.1.1.5
  • PREFIX=24
  • GATEWAY=10.1.1.1
  • DNS1=219.250.36.130

설정 파일을 수정한 뒤에는 네트워크 서비스를 재시작해야 적용된다.

  • 전체 재시작: systemctl restart network.service
  • 특정 인터페이스 재시작: ifdown ifcfg-eth0, ifup ifcfg-eth0

원격 접속 중인 인터페이스를 내리면 접속이 끊길 수 있으므로 주의해야 한다.

Ubuntu

Ubuntu의 전통적인 네트워크 설정 파일은 다음 경로에 있다.

  • /etc/network/interfaces

CentOS와 달리 Ubuntu는 하나의 interfaces 파일 안에 여러 인터페이스 설정을 함께 적는다.

예시 항목:

  • auto eth0
  • iface eth0 inet static
  • address 10.1.1.6
  • netmask 255.255.255.0
  • gateway 10.10.10.1
  • dns-nameserver 219.250.36.130

네트워크 서비스 제어 명령어는 다음과 같다.

  • /etc/init.d/networking start
  • /etc/init.d/networking stop
  • /etc/init.d/networking restart
  • /etc/init.d/networking reload

3. 리눅스 네트워크 상태 확인

리눅스에서 네트워크 상태를 확인할 때는 ifconfig와 ip 명령어를 사용한다.

ifconfig로 확인할 수 있는 정보:

  • IP 주소
  • 서브넷 마스크
  • MAC 주소
  • MTU
  • RX/TX 패킷 수
  • 에러 및 드롭 패킷 수

다만 CentOS 7 minimal 같은 환경에서는 ifconfig가 기본 설치되어 있지 않을 수 있다. 이 명령어는 net-tools 패키지에 포함되어 있기 때문이다.

요즘은 ip 명령어를 더 많이 사용한다.

  • IP 확인: ip address
  • 인터페이스 통계 확인: ip -s link

4. 윈도 서버 네트워크 설정

윈도 서버는 GUI와 CLI 방식 모두 지원한다.

GUI에서는 다음 경로에서 설정할 수 있다.

  • 제어판 > 네트워크 및 인터넷 > 네트워크 연결
  • 실행 창에서 ncpa.cpl 입력

IPv4 속성에서 IP 주소, 서브넷 마스크, 게이트웨이, DNS 서버를 설정한다.
고급 설정에서는 여러 IP나 게이트웨이 메트릭도 조정할 수 있다.

현재 네트워크 정보는 ipconfig로 확인한다.

  • 기본 확인: ipconfig
  • 상세 확인: ipconfig /all

ipconfig /all에서는 MAC 주소, DHCP 사용 여부, DNS 서버, 게이트웨이, 임대 시간 등을 확인할 수 있다.

CLI 설정에는 netsh를 사용한다.

  • 고정 IP 설정: netsh interface ipv4 set address name="인터페이스명" static IP주소 서브넷마스크 게이트웨이
  • DHCP 설정: netsh interface ipv4 set address name="인터페이스명" source=dhcp
  • DNS 설정: netsh interface ipv4 set dns name="인터페이스명" static DNS서버주소
  • 보조 DNS 설정: netsh interface ipv4 set dns name="인터페이스명" static DNS서버주소 index=2
  • DNS 자동 설정: netsh interface ipv4 set dns name="인터페이스명" source=dhcp

어댑터를 재시작할 때는 다음 명령을 사용할 수 있다.

  • 비활성화: netsh interface set interface name="인터페이스명" admin=disabled
  • 활성화: netsh interface set interface name="인터페이스명" admin=enabled

5. 서버의 라우팅 테이블

서버도 네트워크 장비처럼 라우팅 테이블을 가진다.
라우팅 테이블은 목적지 IP로 패킷을 보낼 때 어떤 게이트웨이와 인터페이스를 사용할지 결정한다.

라우팅 테이블의 주요 항목은 다음과 같다.

항목설명
Destination목적지 네트워크
Genmask / Prefix목적지 네트워크 범위
Gateway다음 홉 주소
Interface패킷을 내보낼 인터페이스
Metric경로 우선순위

네트워크 어댑터가 하나뿐인 서버는 보통 기본 게이트웨이만으로 충분하다.
하지만 프론트엔드망과 백엔드망처럼 NIC가 여러 개인 서버는 라우팅을 직접 조정해야 한다.

두 NIC에 모두 기본 게이트웨이를 설정하면 경로가 꼬일 수 있다. 일반적으로 외부 통신용 NIC에만 기본 게이트웨이를 두고, 내부망은 별도 라우팅을 추가한다.


6. 리눅스 라우팅 관리

리눅스 라우팅 확인:

  • ip route
  • netstat -r
  • netstat -rn

라우팅 추가 예시:

  • 특정 호스트: route add -host 10.10.10.10 gw 10.1.1.1
  • 특정 대역: route add -net 10.10.10.0/24 dev eth0
  • 메트릭 지정: route add -net 10.10.10.0/24 gw 10.1.1.6 metric 20

라우팅 삭제 예시:

  • route del -host 10.10.10.10 gw 10.1.1.1
  • route del -net 10.10.10.0/24 dev eth0

디폴트 라우팅:

  • 추가: route add default gw 10.1.1.1 dev eth0
  • 삭제: route del default gw 10.1.1.1 dev eth0

명령어로 추가한 라우팅은 재부팅 후 사라질 수 있다. 영구 적용하려면 설정 파일에 저장해야 한다.

CentOS 영구 라우팅 파일:

  • /etc/sysconfig/network-scripts/route-eth0

Ubuntu 영구 라우팅은 /etc/network/interfaces 안에 up route add ... 형식으로 추가할 수 있다.


7. 윈도 라우팅 관리

윈도에서는 route 명령어를 사용한다.

라우팅 확인:

  • route print
  • route print 10.10.*

라우팅 추가:

  • route add 192.168.1.0 mask 255.255.255.0 10.0.0.1
  • route add 192.168.1.0 mask 255.255.255.0 10.0.0.1 metric 100

영구 라우팅 추가:

  • route add -p 172.16.0.0 mask 255.255.240.0 10.0.0.1

라우팅 삭제:

  • route delete 192.168.1.0 mask 255.255.255.0 10.0.0.1

라우팅 변경:

  • route change 192.168.1.0 mask 255.255.255.0 10.0.10.1
  • route change 192.168.1.0 mask 255.255.255.0 10.10.10.1 metric 10

삭제할 때 목적지 주소만 입력하면 비슷한 라우팅이 함께 삭제될 수 있으므로, 가능하면 마스크와 게이트웨이까지 정확히 입력하는 것이 좋다.


8. 네트워크 확인 명령어

ping

ping은 목적지까지 IP 통신이 가능한지 확인하는 기본 명령어다.

  • 리눅스: ping 8.8.8.8 -c 2 -s 100
  • 윈도: ping 8.8.8.8 -n 2

응답 여부, 지연 시간, 패킷 손실을 확인할 수 있다.
하지만 ICMP가 차단된 환경에서는 실패할 수 있으므로 ping 실패만으로 서비스 장애를 단정하면 안 된다.

tcping

tcping은 특정 TCP 포트가 열려 있는지 확인한다.

  • 예: tcping naver.com 80

ping은 되지만 실제 서비스 포트가 막힌 경우를 확인할 때 유용하다. 단, 기본 명령어가 아니므로 별도 설치가 필요하다.

traceroute / tracert

목적지까지의 네트워크 경로를 확인한다.

  • 리눅스: traceroute 목적지IP
  • 윈도: tracert 목적지IP

중간 경로 중 어느 구간에서 지연이나 차단이 발생하는지 확인할 수 있다.
다만 보안 장비가 응답을 막으면 *로 표시될 수 있고, 이것이 항상 장애를 의미하지는 않는다.

tcptraceroute / tcproute

특정 TCP 포트를 기준으로 경로를 추적한다.

  • 리눅스: tcptraceroute naver.com 80
  • 윈도: tcproute -p 80 목적지IP

ICMP 기반 확인이 어렵거나 특정 포트 차단 여부를 확인할 때 유용하다.

netstat

서버의 연결 상태와 포트 상태를 확인한다.

  • 리눅스: netstat -ant
  • 윈도: netstat -s -p TCP
  • 리눅스 LISTEN 확인: netstat -an | grep LISTEN
  • 윈도 LISTEN 확인: netstat -an | find "LISTENING"

LISTEN, ESTABLISHED, TIME_WAIT, CLOSE_WAIT 같은 TCP 상태를 확인할 수 있다.

ss

ss는 netstat를 대체하는 리눅스 명령어다.

  • 예: ss -lntp

LISTEN 중인 TCP 포트, 숫자 포트, 프로세스 정보를 빠르게 확인할 수 있다.
상태 필터로 established, time-wait, close-wait, listen 등을 지정할 수도 있다.

nslookup

DNS 질의를 확인하는 명령어다.

  • 기본 질의: nslookup google.com
  • 특정 DNS 지정: nslookup google.com 8.8.8.8
  • 대화형 모드: nslookup

레코드 타입도 바꿀 수 있다.

  • set type=A
  • set type=AAAA
  • set type=MX
  • set type=NS
  • set type=PTR

도메인이 어떤 IP로 해석되는지, DNS 변경 사항이 반영되었는지 확인할 때 사용한다.

telnet

telnet은 원격 접속용 프로토콜이지만, 보안상 서버 관리 용도로는 권장되지 않는다.
다만 특정 포트가 열려 있는지 확인하는 용도로 사용할 수 있다.

  • 예: telnet naver.com 80

접속이 안 된다면 라우팅, 방화벽, 보안 장비, 서버 방화벽, 서비스 프로세스 상태 등을 함께 확인해야 한다.
윈도에서는 Telnet Client 기능이 비활성화되어 있을 수 있으므로 별도 활성화가 필요하다.

ipconfig

윈도 네트워크 설정 확인 명령어다.

  • 기본 확인: ipconfig
  • 상세 확인: ipconfig /all
  • IP 반납: ipconfig /release
  • IP 재요청: ipconfig /renew
  • DNS 캐시 삭제: ipconfig /flushdns
  • DNS 캐시 확인: ipconfig /displaydns

DNS 변경 후 nslookup 결과는 바뀌었는데 실제 접속이 이상하다면 로컬 DNS 캐시 문제일 수 있다. 이때 /flushdns를 사용한다.

DHCP에서 IP를 받지 못하면 윈도는 169.254.0.0/16 대역의 APIPA 주소를 자동 설정할 수 있다. 이 주소가 보이면 DHCP나 네트워크 연결 문제를 의심해야 한다.

tcpdump

tcpdump는 리눅스에서 패킷을 캡처하는 명령어다.

기본 형식:

  • tcpdump -i 인터페이스 조건

예시:

  • HTTP 패킷 확인: tcpdump -i eth0 tcp port 80
  • 특정 IP와 HTTP 확인: tcpdump -i eth0 tcp port 80 and host 172.16.10.10
  • SSH 제외: tcpdump -i eth0 not tcp port 22
  • 파일 저장: tcpdump -i eth0 -w dumpfile.pcap

패킷이 많으면 .pcap 파일로 저장한 뒤 Wireshark에서 분석하는 것이 편하다.


9. 장애 분석 순서

서버 네트워크 문제가 생기면 다음 순서로 확인하면 좋다.

  1. IP, 서브넷, 게이트웨이, DNS 설정 확인
  2. 인터페이스 활성 상태 확인
  3. 라우팅 테이블 확인
  4. 게이트웨이까지 ping 확인
  5. 외부 IP로 통신 확인
  6. 도메인 문제라면 nslookup 확인
  7. 경로 문제라면 traceroute 또는 tracert 확인
  8. 서비스 포트 문제라면 tcping, telnet, tcptraceroute 확인
  9. 서버 내부 포트 상태는 netstat 또는 ss로 확인
  10. 원인이 불분명하면 tcpdump와 Wireshark로 패킷 확인

10. 명령어 요약

목적리눅스윈도
IP 확인ip address, ifconfigipconfig /all
인터페이스 통계ip -s linknetstat -e
라우팅 확인ip route, netstat -rnroute print
라우팅 추가/삭제route add, route delroute add, route delete
연결 확인pingping
경로 확인traceroutetracert
TCP 포트 확인tcping, telnettcping, telnet
포트 기반 경로 확인tcptraceroutetcproute
포트/세션 확인netstat, ssnetstat
DNS 확인nslookupnslookup
DNS 캐시 삭제-ipconfig /flushdns
패킷 캡처tcpdumpWireshark

마무리

이번장의 핵심은 서버도 네트워크의 일부라는 점이다.
서버 장애처럼 보여도 원인은 IP 설정, 라우팅, DNS, 방화벽, 포트 상태, 패킷 흐름 중 하나일 수 있다. 반대로 네트워크 문제처럼 보여도 서버에서 서비스가 실행되지 않았거나 LISTEN 상태가 아닐 수도 있다.

따라서 서버 네트워크 문제는 설정값, 라우팅, DNS, 포트, 패킷 흐름을 단계적으로 확인해야 한다. 서버와 네트워크의 접점을 이해하면 장애 원인을 훨씬 빠르게 좁힐 수 있다.

0개의 댓글