IT 비전공자를 위한 네트워크 기초

네트워크 첫걸음

도메인 하나로 우리 집 리눅스 서버까지

IP · DNS · 라우팅 · 공유기 · VPN — 택배와 전화번호부로 이해하기

1

오늘의 여정

개념 6개를 익힌 뒤, 실제로 도메인을 사서 집 서버에 연결합니다

01

네트워크

택배망처럼 데이터를 나르는 길

02

IPv4 주소

인터넷 세상의 집 주소

03

DNS

이름을 주소로 바꾸는 전화번호부

04

라우팅

길을 찾아 주는 내비게이션

05

인터넷 공유기

우리 집 관리실 겸 교환원

06

VPN

남이 못 보는 비밀 통로

07

실전 연결

후이즈 → Cloudflare → 공유기 → 서버

08

안전하게 운영

보안 점검과 문제 해결 순서

네트워크 첫걸음
2
01

네트워크란?

컴퓨터끼리 택배를 주고받는 약속된 시스템

3

네트워크는 거대한 택배망입니다

생활 속에서

택배를 보낼 때

  • 상자에 보내는 사람·받는 사람 주소를 적는다
  • 택배 회사가 여러 물류센터를 거쳐 배달한다
  • 송장 양식이 정해져 있어 누구나 같은 방식으로 보낸다
≈
네트워크에서

데이터를 보낼 때

  • 데이터 조각(패킷)에 출발지·목적지 IP를 적는다
  • 라우터들이 여러 구간을 거쳐 전달한다
  • 프로토콜(TCP/IP)이라는 공통 규칙을 따른다
네트워크 = 주소가 적힌 작은 상자(패킷)를 규칙대로 나르는 길
네트워크 첫걸음
4

꼭 알아야 할 세 가지 단어

택배로 바꿔 생각하면 어렵지 않습니다

택배 상자

패킷

큰 파일도 작은 상자 여러 개로 나눠 보내고, 받는 쪽에서 다시 조립합니다.

등기 · 전단지

TCP · UDP

TCP는 받았는지 확인하는 등기우편, UDP는 확인 없이 빠르게 뿌리는 전단지입니다.

아파트 호수

포트

IP가 건물 주소라면 포트는 호수입니다. 웹은 80·443호, SSH는 22호에 삽니다.

네트워크 첫걸음
5
02

IPv4 주소

인터넷에 연결된 모든 기기의 집 주소

6

IP 주소는 인터넷의 집 주소입니다

생활 속에서

도로명 주소

  • 경기도 군포시 ○○로 12
  • 주소가 있어야 택배가 찾아온다
  • 같은 주소가 두 집이면 배달 사고
≈
네트워크에서

IPv4 주소

  • 192.168.0.10 처럼 숫자 4묶음
  • 각 묶음은 0~255, 점(.)으로 구분
  • 전체 약 43억 개 → 이미 부족 → IPv6 등장
기기마다 겹치지 않는 주소가 있어야 데이터가 정확히 찾아갑니다
네트워크 첫걸음
7

공인 IP와 사설 IP

회사 대표번호와 내선번호를 떠올리세요

회사 대표번호

공인 IP

전 세계에서 유일한 주소. 통신사가 우리 집 공유기에 1개 줍니다. 밖에서 찾아올 때 쓰는 번호.

내선번호

사설 IP

집 안에서만 통하는 주소. 192.168.x.x, 10.x.x.x, 172.16~31.x.x. 옆집에도 똑같은 번호가 있어도 됩니다.

실습

직접 확인

사설 IP: 리눅스에서 ip addr
공인 IP: curl ifconfig.me
두 값이 다르면 공유기 뒤에 있는 것!

네트워크 첫걸음
8

같은 동네, 다른 동네

서브넷과 게이트웨이 — 우리 동네 안은 직접, 밖은 우체국을 거쳐서

같은 동네

서브넷 /24

192.168.0.1 ~ 192.168.0.254는 한 동네. 서로 직접 대화할 수 있습니다.

동네 우체국

게이트웨이

동네 밖으로 나가는 모든 짐은 공유기(보통 192.168.0.1)에 맡깁니다.

실습

확인 명령

ip route
→ default via 192.168.0.1
'모르는 곳은 공유기로 보내라'는 뜻

네트워크 첫걸음
9
03

DNS

사람이 기억하는 이름을 컴퓨터의 주소로

10

DNS는 인터넷의 전화번호부입니다

생활 속에서

전화 걸 때

  • '엄마'를 누르면 폰이 번호로 바꿔 건다
  • 번호를 몰라도 이름만 알면 된다
  • 번호가 바뀌면 주소록만 고치면 끝
≈
네트워크에서

웹사이트 접속할 때

  • naver.com → 223.130.x.x 로 바꿔 접속
  • 숫자 IP를 외울 필요가 없다
  • 서버 IP가 바뀌어도 DNS만 고치면 된다
도메인 이름 → (DNS) → IP 주소 → 접속
네트워크 첫걸음
11

이름 하나를 찾는 과정

처음 가는 가게 주소를 물어물어 찾아가는 것과 같습니다

내 PC

최근에 찾은 적 있나? 수첩(캐시) 먼저 확인

➜

리졸버

공유기·통신사 안내원에게 대신 찾아 달라고 부탁

➜

루트 · TLD

'.com 담당은 저쪽'처럼 담당 부서를 안내

➜

권한 네임서버

도메인 주인이 정한 답(예: Cloudflare)을 알려줌

➜

IP 획득

받은 IP로 접속하고, 한동안 수첩에 기록(TTL)

확인 명령: nslookup naver.com 또는 dig naver.com
네트워크 첫걸음
12

DNS 레코드 — 전화번호부의 항목들

실습에서는 A 레코드 하나만 있어도 충분합니다

레코드하는 일생활 비유예시
A이름 → IPv4 주소이름 옆에 적힌 전화번호server → 121.x.x.x
AAAA이름 → IPv6 주소새 형식의 긴 번호server → 2001:db8::1
CNAME이름 → 다른 이름(별명)'김부장' = '김철수'www → myhome-lab.com
MX메일 받을 서버 지정우편물 수령 장소mail.myhome-lab.com
TXT소유 인증·설정 메모주소록 메모란인증 문자열
NS이 도메인의 전화번호부 담당어느 114에 물어볼지xxx.ns.cloudflare.com
네트워크 첫걸음
13
04

라우팅

수많은 갈림길에서 다음 길을 고르는 일

14

라우팅은 택배 허브의 길 안내입니다

생활 속에서

군포 → 부산 택배

  • 군포 대리점 → 중앙 허브 → 부산 터미널
  • 각 거점은 '다음 거점'만 알면 된다
  • 길이 막히면 다른 경로로 돌아간다
≈
네트워크에서

내 PC → 해외 서버

  • 공유기 → 통신사 → 국제망 → 목적지
  • 각 라우터는 '다음 라우터'만 정한다
  • 장애가 나면 우회 경로를 찾는다
전체 지도를 몰라도 각자 '다음 한 칸'만 정확하면 도착합니다
네트워크 첫걸음
15

라우팅 테이블 = 갈림길의 이정표

  • 192.168.0.0/24 → 직접

    같은 동네는 바로 전달

  • default (그 외 전부) → 공유기

    모르는 곳은 동네 우체국에 맡김

  • traceroute 로 경로 보기

    거쳐 가는 라우터가 한 줄씩 보임

$ ip route
default via 192.168.0.1 dev eth0
192.168.0.0/24 dev eth0 src 192.168.0.10

$ traceroute google.com
 1  192.168.0.1     1.2 ms
 2  10.x.x.x        4.8 ms
 3  ...
12  142.250.x.x    35.1 ms
리눅스 서버에서 직접 실행해 보세요
네트워크 첫걸음
16
05

인터넷 공유기

공인 IP 하나를 온 가족이 나눠 쓰게 해 주는 장치

17

공유기가 하는 네 가지 일

작은 상자 하나가 아파트 관리실 역할을 모두 맡습니다

라우터

동네 우체국

집 안과 인터넷 사이에서 패킷의 길을 정합니다.

DHCP

호텔 프런트

기기가 들어오면 빈 방(사설 IP)을 자동으로 배정합니다.

NAT

전화 교환원

내선(사설 IP)을 대표번호(공인 IP)로 바꿔 밖에 연결합니다.

방화벽·Wi-Fi

경비실

밖에서 함부로 들어오는 연결을 막고 무선 신호를 뿌립니다.

네트워크 첫걸음
18

NAT와 포트포워딩

교환원에게 '외부에서 2222번 찾으면 서버 내선으로 돌려주세요'라고 부탁해 두는 것

외부 사용자

카페 노트북에서 내 공인 IP:2222로 접속

➜

공유기(교환원)

규칙표 확인: 2222 → 192.168.0.10:22

➜

리눅스 서버

내선 22번(SSH)에서 연결을 받음

규칙이 없으면? 교환원이 '그런 분 없습니다' 하고 끊음 → 기본적으로 안전한 이유
네트워크 첫걸음
19

주소가 바뀌는 문제와 해결책

서버의 주소는 안 바뀌게, 집의 공인 IP는 바뀌어도 따라가게

지정석

DHCP 고정 할당

서버의 MAC 주소에 192.168.0.10을 고정. 포트포워딩 대상이 바뀌지 않습니다.

가끔 이사

유동 공인 IP

가정용 회선은 공인 IP가 재부팅·계약 변경 시 바뀔 수 있습니다.

자동 주소록 갱신

DDNS

IP가 바뀌면 DNS 기록을 자동으로 고쳐 줍니다. 뒤에서 Cloudflare API로 직접 구현합니다.

네트워크 첫걸음
20
06

VPN

인터넷 위에 나만의 비밀 통로를 놓는 기술

21

VPN은 회사 출입증이 달린 비밀 통로입니다

생활 속에서

사원증 들고 출근

  • 출입증이 있어야 사내에 들어간다
  • 들어가면 내부 회의실을 자유롭게 쓴다
  • 밖에서 보면 누가 무엇을 하는지 모른다
≈
네트워크에서

VPN 접속

  • 인증한 기기만 집·회사망에 들어온다
  • 접속하면 사설 IP(192.168.x)로 바로 통신
  • 통로 안의 데이터는 모두 암호화된다
포트를 외부에 열지 않고도 집 서버에 안전하게 들어가는 방법
네트워크 첫걸음
22

포트포워딩 vs VPN

처음엔 포트포워딩으로 원리를 배우고, 운영은 VPN 방식을 권장합니다

비교포트포워딩VPN (WireGuard · Tailscale)
비유건물 정문 옆 쪽문을 열어 둠출입증 있는 사람만 쓰는 비밀 통로
외부 노출열어 둔 포트가 전 세계에 보임통로 입구 하나(또는 없음)
설정 난이도쉬움 — 공유기 설정만보통 — 각 기기에 앱 설치
도메인 필요있으면 편리(오늘 실습)없어도 됨
추천 용도학습·웹 서비스 공개SSH·관리 화면 등 나만 쓰는 접속
네트워크 첫걸음
23
07

실전: 집 서버 접속

도메인 → Cloudflare DNS → 공유기 → 리눅스

24

전체 그림 한 장

ssh -p 2222 user@server.myhome-lab.com 을 입력하면 일어나는 일

내 노트북

server.myhome-lab.com 의 IP를 묻는다

➜

Cloudflare DNS

A 레코드: 우리 집 공인 IP를 알려준다

➜

집 공유기

2222번 문 → 192.168.0.10:22로 돌린다

➜

리눅스 서버

SSH 키를 확인하고 접속을 허락한다

※ myhome-lab.com 은 설명용 예시 도메인입니다. 실습 때는 본인이 구입한 도메인으로 바꾸세요.
네트워크 첫걸음
25

후이즈(whois.co.kr)에서 도메인 구입

STEP 1 생활 비유

가게 상호를 등록하는 일 — 이름의 주인이 됩니다

  1. 1

    이름 검색

    원하는 이름과 확장자(.com, .kr, .net 등)가 비어 있는지 확인

  2. 2

    구입 · 결제

    보통 1년 단위. 만료되면 남이 가져갈 수 있으니 자동 연장 권장

  3. 3

    소유자 정보 확인

    연락받을 이메일을 정확히. 인증 메일을 놓치면 도메인이 정지될 수 있음

  4. 4

    관리 화면 위치 기억

    '도메인 관리 → 네임서버 변경' 메뉴를 다음 단계에서 씁니다

네트워크 첫걸음
26

Cloudflare에 도메인 연결 (네임서버 변경)

STEP 2 생활 비유

전화번호부 관리 회사를 후이즈에서 Cloudflare로 바꾸는 일

  1. 1

    Cloudflare 가입 · 도메인 추가

    무료(Free) 요금제로 충분. 기존 DNS 기록을 자동으로 불러옴

  2. 2

    네임서버 2개 받기

    예: ada.ns.cloudflare.com / bob.ns.cloudflare.com (계정마다 다름)

  3. 3

    후이즈에서 네임서버 교체

    후이즈 기본 네임서버를 지우고 Cloudflare가 준 2개를 입력

  4. 4

    활성화 기다리기

    보통 수 분~몇 시간, 길면 최대 48시간. 완료되면 이메일로 알려줌

네트워크 첫걸음
27

STEP 3 Cloudflare DNS 레코드 만들기

주황 구름(Proxied)은 웹 전용 — SSH는 반드시 회색 구름(DNS only)으로

TypeNameContentProxy용도
Aserver우리 집 공인 IP회색 (DNS only)SSH 접속용
A@우리 집 공인 IP주황 (Proxied)웹사이트 (80·443)
CNAMEwwwmyhome-lab.com주황 (Proxied)www 붙여도 접속
주황 구름: Cloudflare가 대신 받아 전달(IP 숨김, 웹만) · 회색 구름: 주소만 알려줌(모든 포트)
네트워크 첫걸음
28

공유기 설정 (ipTIME 기준)

STEP 4 생활 비유

관리실에 '서버 자리 지정'과 '쪽문 연결 규칙'을 등록하는 일

  1. 1

    관리 화면 접속

    브라우저에서 192.168.0.1 → 관리자 로그인 (초기 비밀번호는 꼭 변경)

  2. 2

    서버 IP 고정

    고급 설정 → 네트워크 관리 → 내부 네트워크 설정 → 수동 IP 할당: 192.168.0.10

  3. 3

    포트포워딩 규칙

    고급 설정 → NAT/라우터 관리 → 포트포워드 설정: 외부 2222 → 192.168.0.10:22 (TCP)

  4. 4

    공인 IP 확인

    공유기 첫 화면의 '외부 IP'와 curl ifconfig.me 값이 같은지 비교

네트워크 첫걸음
29

STEP 5 리눅스 서버 준비와 접속

  • SSH 서버 설치

    Ubuntu: openssh-server

  • 방화벽에서 22번만 허용

    ufw로 필요한 문만 엽니다

  • 비밀번호 대신 키로 로그인

    내 노트북의 공개키를 서버에 등록

  • 도메인으로 접속

    외부 2222 → 내부 22로 연결됨

# server (192.168.0.10)
$ sudo apt install -y openssh-server
$ sudo ufw allow 22/tcp && sudo ufw enable

# laptop
$ ssh-keygen -t ed25519
$ ssh-copy-id user@192.168.0.10

# from outside (cafe, LTE)
$ ssh -p 2222 user@server.myhome-lab.com
집 와이파이가 아닌 휴대폰 핫스팟에서 접속 테스트해야 '외부 접속'이 확인됩니다
네트워크 첫걸음
30

STEP 6 공인 IP가 바뀌어도 자동으로 (DDNS)

  • Cloudflare API 토큰 발급

    권한: Zone · DNS · Edit (해당 도메인만)

  • Zone ID · Record ID 확인

    대시보드 개요 화면과 API 조회로 확인

  • 5분마다 실행

    crontab: */5 * * * * python3 ddns.py

  • 표준 라이브러리만 사용

    pip 설치 없이 바로 실행

import json, os, urllib.request as u
T=os.environ['CF_TOKEN']; Z=os.environ['CF_ZONE']
R=os.environ['CF_RECORD']
ip=u.urlopen('https://api.ipify.org').read().decode()
api='https://api.cloudflare.com/client/v4'
url=f'{api}/zones/{Z}/dns_records/{R}'
body=json.dumps({'type':'A','name':'server',
  'content':ip,'ttl':300,'proxied':False}).encode()
req=u.Request(url,data=body,method='PUT',headers={
  'Authorization':f'Bearer {T}',
  'Content-Type':'application/json'})
print(json.load(u.urlopen(req))['success'], ip)
토큰은 코드에 적지 말고 환경변수로 — 깃에 올라가면 누구나 내 DNS를 바꿀 수 있습니다
네트워크 첫걸음
31

문을 열었다면, 지키는 것도 내 몫

포트를 여는 순간 전 세계 자동 스캐너가 두드리기 시작합니다

비밀번호 로그인 끄기

sshd_config: PasswordAuthentication no — 키로만 접속

필요한 포트만 열기

포트포워딩 규칙을 최소로. 안 쓰는 규칙은 바로 삭제

반복 실패 차단

fail2ban으로 로그인 실패가 잦은 IP를 자동 차단

업데이트 습관

sudo apt update && sudo apt upgrade 를 주기적으로

관리 접속은 VPN으로

SSH는 Tailscale·WireGuard 안쪽에서만 열면 가장 안전

웹은 Cloudflare 뒤로

Proxied 또는 Cloudflare Tunnel로 집 IP를 숨김

네트워크 첫걸음
32

안 될 때는 바깥에서 안쪽으로

택배가 안 오면 주소 → 건물 → 호수 → 사람 순서로 확인하듯

① 이름

dig +short server.myhome-lab.com 이 우리 집 공인 IP인가?

➜

② 공인 IP

curl ifconfig.me 와 공유기 외부 IP가 같은가?

➜

③ 쪽문

포트포워딩 규칙의 내부 IP·포트가 정확한가?

➜

④ 서버

systemctl status ssh 실행 중? ufw가 22를 허용?

집 안에서 도메인으로 접속하면 실패할 수 있습니다(헤어핀 NAT 미지원) → 테스트는 휴대폰 데이터망으로
네트워크 첫걸음
33

한 장으로 정리

개념마다 생활 속 짝꿍 하나만 기억하세요

네트워크

= 택배망

IP 주소

= 집 주소

포트

= 아파트 호수

DNS

= 전화번호부

라우팅

= 택배 허브 길 안내

공유기 · NAT

= 전화 교환원

VPN

= 출입증 비밀 통로

도메인

= 가게 상호

네트워크 첫걸음
34

오늘의 과제

내 도메인으로 집(또는 실습실) 리눅스 서버에 접속하고, 접속 화면을 캡처해 제출하세요

  • dig 결과 · 공유기 포트포워딩 화면 · 외부(LTE)에서 ssh 접속 성공 화면
  • 보너스: STEP 6 DDNS 스크립트를 cron에 등록하고 동작 로그 첨부
35