2026년 11월 13일 금요일

포트 하나 안 열고 홈 서버 운영하기 (0) 전체 구성

남는 PC 한 대로 개인 서비스 여러 개를 운영하고 있다. 공유기 포트 포워딩도, 고정 IP 도 없이 돌아간다. 따라 해 보고 싶다는 사람이 있어서 구성을 몇 편으로 나눠 적는다. 이 글은 전체 그림이고, 각 편은 홈서버-따라하기 라벨에 모여 있다.

전제

  • 서버는 회사나 집의 공유기·방화벽 뒤에 있다. 바깥에서 들어오는 포트는 하나도 열 수 없다고 가정한다.
  • 도메인 하나를 갖고 있고, DNS 는 Cloudflare 에 맡겼다.
  • 서버는 Ubuntu, 서비스는 전부 Docker 컨테이너다.

전체 구성

방문자 ──HTTPS──▶ Cloudflare 엣지 ◀──(바깥으로 나가는 연결)── cloudflared (서버)
                       │                                          │
                 Access (로그인)                         127.0.0.1:포트 로 전달
                                                                  │
                                              Docker 컨테이너들 (루프백에만 바인딩)

핵심은 방향이다. 서버가 Cloudflare 로 먼저 연결을 걸고, 방문자의 요청은 그 연결을 타고 들어온다. 그래서 인바운드 포트가 필요 없다.

편별 내용

  1. Cloudflare Tunnel 로 도메인 연결하기 — 터널 만들기, 서브도메인마다 서비스 연결, 다른 도메인을 붙일 때 주의할 점
  2. git push 로 배포하기 — Portainer git 스택, 이미지 빌드, 시크릿 파일 다루기
  3. 관리 화면 잠그기 — Cloudflare Access 이메일 코드 로그인, 오리진을 루프백에만 여는 이유
  4. 백업과 정기 정비 — 암호화 원격 백업, 업그레이드 전후 점검

이 구성의 장단점

  • 장점: 공인 IP·포트 포워딩이 필요 없다. 서버 IP 가 바뀌어도 상관없다. HTTPS 인증서를 직접 관리하지 않는다.
  • 단점: 모든 트래픽이 Cloudflare 를 지난다. HTTP(S) 가 아닌 프로토콜은 따로 손이 간다. 서버로 SSH 접속할 길은 별도로 마련해야 한다(나는 메시 VPN 을 쓴다).

겪은 문제들

운영하면서 밟은 함정은 따로 글로 적고 있다. 배포 쪽은 Portainer, 컨테이너 쪽은 Docker, 인증 쪽은 Cloudflare 라벨에서 볼 수 있다.

댓글 없음:

댓글 쓰기

반도체 주식을 보기 전에 그려 두는 지도 — 설계, 파운드리, 메모리, 장비, 소재, 후공정

"반도체주"라고 한 묶음으로 부르지만, 그 안의 회사들은 하는 일도 돈 버는 방식도 전혀 다르다. 같은 뉴스에 어떤 회사는 오르고 어떤 회사는 내리는 이유가 여기에 있다. 종목을 들여다보기 전에 머릿속에 그려 두면 좋은 지도를 정리한...