Cloudflare Tunnel로 쉽고 안전하게 서비스 운영하기

오랜만에 방에 고이 보관 중이던 라즈베리파이 4를 꺼내서 무언가를 해보고 싶었다. 개인 프로젝트를 만들고 저장할 때 Github를 사용하니 Github 레포지토리가 난잡해 보여서, gitea를 통해 나만의 Git 서버를 만들어 보기로 했다. 

그렇게 만들어 본 셀프 호스티드 Git

문제는 외부에서도 접속이 가능케 해야 한다는 것이었다. 처음 Gitea를 설치했을 당시, 외부 접속을 위해 일반적인 포트 포워딩 방식을 고려하였다. 그러나 두 가지 문제로 인해 난관에 부딪혔다. 첫째는 공인 IP 할당의 부재였다. 다이내믹 IP를 사용하고 있었기 때문에, IP가 재할당 되면 레코드를 다시 바꾸어주어야 한다. 둘째는 혹시 모를 보안 문제 때문이다. 외부의 포트 스캔이나 취약점에 노출될 수도 있고, 혹시라도 인터넷이 터지면 집에 연결되어 있는 다수의 기기에도 문제 될 것 같았다.

해결책: Cloudflare Tunnel

이러한 한계를 극복하기 위해 대안을 조사하던 중, Cloudflare Tunnel을 찾았고 이를 적용하였다. Cloudflare Tunnel은 내부 서버에서 Cloudflare 네트워크로의 연결을 생성하여 통로를 만드는 방식이다.

https://blog.cloudflare.com/ko-kr/elevate-load-balancing-with-private-ips-and-cloudflare-tunnels-a-secure-path-to-efficient-traffic-distribution/

 

Cloudflare Tunnel은 Cloudflare에 등록되어 있는 도메인이 있어야 사용가능하다. 나는 seeun.kim 도메인이 이미 CF를 사용 중이었기에, 계속 진행했다.

 

Cloudflare One에 접속해서 간단한 설정 몇개만 해주면 된다. '네트워크' -> '개요' -> '터널 관리' 버튼을 눌러서 새 터널을 만들 수 있다.

사실 별로 설명할 것도 없는 것이, 이미 클라우드플레어 사이트 내에 친절한 튜토리얼이 마련되어 있다. 운영체제와 아키텍처에 맞게 cloudflared를 다운로드하고, 실행하면 된다.

그리고 등록 이후에는 '게시된 응용 프로그램 경로'를 추가해 주면 된다. Nginx 리버스 프록시 비슷한 거라고 보면 되는데, 사용해 보니까 정말 편하다. 프로토콜도 HTTP, HTTPS, SSH, RDP, TCP 등 있을 건 다 있고, 포트도 그대로 입력해도 된다.

 

 

이렇게 외부에서도 내 Git 페이지에 접근할 수 있게 되었다!

Cloudflare Tunnel의 이점

먼저 보안이 좋다는 것이다. 메커니즘 자체가 외부 -> 내부 요청이 아닌 내부에서 외부로 연결을 시작하는 방식이기에, 공인 IP가 없어도 되고 방화벽조차 따로 만져줄 필요가 없다. 또 클라우드플레어를 통해서만 서버에 접근하기 때문에, 홈 서버의 실제 IP 주소가 노출되지 않는다. DDoS나 포트 스캔 등을 원천적으로 막을 수 있게 된 것이다.
관리도 편리하다. 별도의 복잡한 공유기 설정 없이 cloudflared 실행만으로 터널 구축이 가능하며, 대시보드를 통해서 새로 등록할 수도 있다.

결론

개인 서비스를 집에서 운영할 때 정말 추천드린다. Cloudflare Tunnel로 네트워크나 서버 보안을 따로 걱정하지 않아도 되었다. 적극적으로 권장합니다!!

'개발일지' 카테고리의 다른 글

개인 포트폴리오 사이트 제작 후기  (0) 2026.02.15