■ 1. 네트워크 관리도구 - 3가지 비교
• nm-connection-editor: GUI(그래픽), 데스크탑, 가장직관적
• nmtui: TUI(텍스트UI), SSH접속시 서버환경에서 편리, 키보드조작
• nmcli: CLI(명령줄), 스크립트·자동화, 명령한줄로 처리, 가장강력
• 비전공자 추천순서: 처음엔 nmtui(키보드만으로 설정가능) → 익숙해지면 nmcli로 빠르게 처리
• nmcli 주요명령어
nmcli general(전체상태확인) / nmcli networking on/off(켜기끄기)
nmcli connection show(연결목록) / connection up/down 이름
nmcli device status(장치상태확인)
nmcli con add type ethernet con-name [이름] ifname [장치] ip4 [IP]/[prefix] gw4 [GW] (고정IP연결추가)
옵션: -t(간단출력) -p(보기좋게) -v(버전) -h(도움말)
• 기타 네트워크명령어
nslookup: 도메인→IP주소 조회(DNS서버에 질의)
예) nslookup google.com / nslookup google.com 8.8.8.8(구글DNS로 조회)
traceroute: 목적지까지 거치는 모든 라우터경로 추적 (sudo apt install traceroute로 설치필요)
예) traceroute google.com(각 구간 게이트웨이/라우터·지연시간 표시)
netstat vs ss: 현재 열려있는 포트/소켓 상태확인
netstat는 오래된 net-tools 패키지이므로 현재는 ss 사용권장, 속도도 ss가 훨씬 빠름
모든소켓: -a(all) / TCP만: -at / UDP만: -au / LISTEN만: -l / PID,프로세스명: -p(process) / 숫자주소: -n(number)
가장 자주 쓰는 조합: netstat -antp / ss -antp
특정포트 필터: ss -at ‘( dport = :80 )’ / ESTABLISHED만: ss -t state established
■ 2. 네트워크 설정 - Ubuntu 16.04 vs 20.04
• 버전에 따라 설정방식 완전히 다름 (설정파일 위치, 명령어, 포맷 상이)
• 16.04(구): 도구 /etc/network/interfaces + NetworkManager(데스크탑), 설정파일 텍스트(interfaces문법), CLI ifconfig/ifup/ifdown, DNS관리 /etc/resolv.conf 직접편집, 재시작 service networking restart
주요명령어(16.04): ifconfig -a(확인) / ifconfig eth0 up/down(또는 ifup/ifdown) / sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0(임시IP할당) / route -n 또는 netstat -rn(라우팅확인) / sudo route add default gw 192.168.1.1(게이트웨이추가) / cat /etc/resolv.conf(DNS확인) / sudo service network-manager restart
설정파일: /etc/network/interfaces (리눅스에서 네트워크 설정을 저장하는 파일)
DHCP: auto eth0 / iface eth0 inet dhcp
정적IP: auto eth0 / iface eth0 inet static / address / netmask / gateway / dns-nameservers / dns-search
재시작: sudo ifdown eth0 && sudo ifup eth0(인터페이스만) / sudo service networking restart(전체)
DNS설정: 임시(재부팅시 초기화)는 /etc/resolv.conf 직접편집
영구설정1: /etc/network/interfaces에 dns-nameservers 추가
영구설정2: /etc/resolvconf/resolv.conf.d/head 파일에 추가 후 sudo resolvconf -u 실행
• 20.04(현재, Netplan): Ubuntu 20.04 이후 도입된 통합 네트워크설정시스템. YAML파일로 설정하면 Netplan이 백엔드(NetworkManager 또는 systemd-networkd)를 통해 실제 적용
주요명령어(20.04): ip addr show 또는 ip a(인터페이스확인) / ip link show(링크상태) / ip link set ens33 up/down / ip route show 또는 ip r(라우팅) / ip route add default via 192.168.1.1(게이트웨이) / sudo netplan –debug generate(검증) / sudo netplan try(120초 롤백 안전적용) / sudo netplan apply(즉시적용) / resolvectl status(DNS상태) / ss -tulpn(포트확인)
설정파일위치: /etc/netplan/*.yaml
DHCP: network: version:2 / renderer: networkd(서버환경) / ethernets: ens33: dhcp4:true, dhcp6:false (Tab 들여쓰기 금지, 스페이스 사용)
정적IP: dhcp4:no / addresses: [192.168.1.100/24] / routes: -to:default via:192.168.1.1 / nameservers: addresses:[8.8.8.8,8.8.4.4]
주의: YAML은 들여쓰기가 매우 중요! Tab 대신 반드시 스페이스 사용, 틀리면 netplan apply시 오류. gateway4 방식은 더이상 권장 안됨, routes: -to:default/via: 방식 사용
• 렌더러(Renderer) 비교: Netplan 설정이 실제로 어떤 백엔드서비스를 통해 구현될지 결정하는 엔진
Ubuntu 16.04 Desktop/Server: NetworkManager / ifupdown(Legacy)
Ubuntu 20.04 Desktop: NetworkManager / Server: systemd-networkd
■ 3. 네트워크 패킷캡처
• 패킷캡처 = 네트워크를 오가는 데이터(패킷)를 가로채서 내용을 분석하는것, 보안분석·네트워크디버깅 필수
• Promiscuous Mode(무차별모드): 일반모드에서 NIC는 자신에게 온 패킷만 수신, 무차별모드로 설정하면 네트워크상 모든 패킷 수신 (Wireshark/tcpdump 사용시 필요)
활성화: sudo ip link set ens33 promisc on / ifconfig ens33 promisc
비활성화: sudo ip link set ens33 promisc off / ifconfig ens33 -promisc
• tcpdump vs tshark 비교
tcpdump: 단순캡처·가벼운로깅, libpcap, 레이어3/4중심(IP,TCP/UDP), 리소스 매우적음, 서버부하없이 장시간캡처에 권장
tshark: 상세프로토콜분석·데이터추출, Wireshark엔진, 응용계층(HTTP,SQL등) 상세분석, 리소스 상대적으로높음, 저장된 pcap파일에서 데이터추출에 권장
• tcpdump 주요옵션: -c[숫자](지정수만큼 캡처후 종료) -i[인터페이스] -n(IP를 호스트명변환안함) -q(간단출력) -X(16진수+ASCII출력) -w파일명 -r파일명 host[IP] tcp port[번호] ip
실전예시: tcpdump -i eth0 / tcpdump -c 3 -w dump.pcap / sudo tcpdump -i eth0 host 1.1.1.1 -w out.pcap / tcpdump -r dump.pcap / tcpdump -c3 tcp port 22 and host 192.168.1.90 / tcpdump -Xqr dump.pcap
• tshark 주요필드: ip.src/ip.dst(출발지/목적지IP) ip.ttl ip.proto(1=ICMP,6=TCP,17=UDP) ip.len ip.dsfield icmp.type(8=Request,0=Reply) tcp.srcport/dstport tcp.flags eth.src/eth.dst
실전예시: sudo tshark -i eth0 -f ‘icmp’ -T fields -e ip.src -e ip.dst -e ip.ttl
-f’필터’는 캡처필터(수집단계에서 좁힘), -Y’필터’는 표시필터(캡처후 화면에서 좁힘) - 함께쓰면 더 정밀
■ 4. VM을 Router로 사용하기
• VM에 NIC 2개 달아 네트워크사이 연결하는 라우터 역할 수행, 서로 다른 네트워크 대역 통신가능
• IP포워딩 활성화 (라우터 역할하려면 커널의 IP포워딩 기능 켜야함, eth0→eth1로 전달가능해짐)
일시적: sysctl -w net.ipv4.ip_forward=1
영구적: sudo vi /etc/sysctl.conf → net.ipv4.ip_forward=1 주석제거 → sudo sysctl -p /etc/sysctl.conf
확인(1이면 활성화): sudo cat /proc/sys/net/ipv4/ip_forward
• Server VM: Apache2·SSH 설치, netstat -rn으로 80/22번 포트 LISTEN 확인
• Host PC 라우팅설정: Server 대역으로 통신하려면 라우팅테이블에 경로추가 필요
Windows: route ADD [대역] MASK [마스크] [Router IP] (일시적) / route -p ADD(영구) / route PRINT(확인) / route DELETE(삭제)
Linux: sudo ip route add [대역]/24 via [Router IP] / netstat -rn(확인) / sudo ip route flush table main(전체삭제)
• 접속테스트: curl ServerIP / ssh 사용자@[ServerIP](SSH, Windows는 PuTTY)
• Router VM 트래픽모니터링: tshark -i ens32 port 80/22 / tcpdump -i ens32 port 80/22 / tcpdump -i ens32 host [IP]
'운영체제' 카테고리의 다른 글
| [전공 기말고사 정리] 리눅스 운영체제 – 로그(Log)·syslog·rsyslog·journald·logrotate (0) | 2026.07.30 |
|---|---|
| [전공 기말고사 정리] 리눅스 운영체제 – 디스크 인터페이스·파일시스템·마운트·디스크 (0) | 2026.07.29 |
| [전공 실습 정리] 운영체제 실습 - 패키지 관리·미러 설정·압축과 묶기 (0) | 2026.07.28 |
| [전공 중간고사 정리] 운영체제 – 리눅스 권한 관리 (0) | 2026.07.28 |
| [전공 중간고사 정리] 운영체제 – 리눅스 사용자와 그룹 (0) | 2026.07.28 |